<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>ECF New and Noteworthy</title>
<link rel="stylesheet" href="http://www.eclipse.org/default_style.css"
	type="text/css">

</head>

<body bgcolor="#FFFFFF">
	<table border=0 cellspacing=5 cellpadding=2 width="100%">
		<tbody>
			<tr>
				<td width="69%" class="bannertext">
				<img src="https://wiki.eclipse.org/images/b/b8/Logo128x37.png" alt="ECF Logo"/>
				<font class="indextop style">Eclipse Communication Framework (ECF)</font>
						
						<br>
				<br> <font class="indexsub">an eclipse runtime project</font> <br>
				<br> <font class="indextop style2">New and Noteworthy</font><br>
					3.13.0 Release <br> <br>
				<br> Return to <a href="downloads.php">ECF download page</a><br>
					<br>

				<br><a
					href="NewAndNoteworthy_3.12.0.html">New and Noteworthy for 3.12.0/Mars</a><br>
					<br>
				<br><a
					href="NewAndNoteworthy_3.12.1.html">New and Noteworthy for 3.12.1</a><br>
					<br>
				<br></td>
				<td width="31%">
					<div align="center">
						<img src="images/Idea.jpg" width="120" height="86" hspace="50"
							align="middle" alt="Idea Icon">
					</div>
				</td>
			</tr>
		</tbody>
	</table>

	<hr>

	<table>
				 <tr>
			<td valign="top" align="left" width="15%">
				<p align="left">
					<b>API to Create Distribution Providers</b>
				</p>
			</td>
			<td valign="top" width="85%"><p>For some time, it has been possible to create custom remote service distribution
			providers.  A number of distribution providers <a href="https://wiki.eclipse.org/Distribution_Providers">already exist</a>,
			but with 3.13.0 new API has been added to simplify the creation of new distribution providers.  This API is described
			with examples in a new <a href="https://wiki.eclipse.org/Tutorial:_Creating_Custom_Distribution_Providers">Tutorial: Creating 
			Custom Distribution Providers</a>.  See <a href="https://wiki.eclipse.org/Tutorial:_Creating_Custom_Distribution_Providers">new tutorial
			for details</a>
			</td>
		</tr>
	
					 <tr>
			<td valign="top" align="left" width="15%">
				<p align="left">
					<b>Remote Management for OSGi Runtimes and Eclipse</b>
				</p>
			</td>
			<td valign="top" width="85%"><p>At the <a href="https://github.com/ECF">ECF Github organization</a>, we've created OSGi Remote Services allow remote monitoring and management
			of any OSGi container (e.g. Eclipse, Equinox, Karaf, Concierge, others).   The repository containing the service APIs, implementations, and tooling for Remote Management are 
			<a href="https://github.com/ECF/OSGIRemoteManagement">here</a>.  Each management service is declared and implemented in separate bundles,
			so that only relevant services may be installed and used in appropriate environments.  For example, if <a href="https://wiki.eclipse.org/EIG:Install_into_Apache_Karaf">Karaf server environments</a> the
			OSGi management services would be completely appropriate, and the Eclipse-specific services listed below would not be needed.
			
			<ul>
			   <li><b>Framework Management Services</b>
			      <ul>
			         <li>
			           <a href="https://github.com/ECF/OSGIRemoteManagement/tree/master/bundles/org.eclipse.ecf.mgmt.framework/src/org/eclipse/ecf/mgmt/framework/IFrameworkManager.java">Framework Manager</a> - Remotely access framework-level information such as framework properties, and get/set start levels.
			         </li>
			      	 <li>
			           <a href="https://github.com/ECF/OSGIRemoteManagement/tree/master/bundles/org.eclipse.ecf.mgmt.framework/src/org/eclipse/ecf/mgmt/framework/IServiceManager.java">Service Manager</a> - Remotely access information about running services.
			         </li>
			      	 <li>
			           <a href="https://github.com/ECF/OSGIRemoteManagement/tree/master/bundles/org.eclipse.ecf.mgmt.framework/src/org/eclipse/ecf/mgmt/framework/IBundleManager.java">Bundle Manager</a> - Remotely access information about bundles in framework, and remotely start/stop bundles.
			         </li>

			          <li>
			           <a href="https://github.com/ECF/OSGIRemoteManagement/tree/master/bundles/org.eclipse.ecf.mgmt.framework/src/org/eclipse/ecf/mgmt/framework/wiring/IWiringManager.java">Wiring Manager</a> - Remotely access information about bundle wiring.
			         </li>
			          <li>
			           <a href="https://github.com/ECF/OSGIRemoteManagement/blob/master/bundles/org.eclipse.ecf.mgmt.application/src/org/eclipse/ecf/mgmt/application/IApplicationManager.java">Application Manager</a> - Remotely access information about OSGi applications.  Also allows remotely starting/stopping applications.
			         </li>
			          <li>
			           <a href="https://github.com/ECF/OSGIRemoteManagement/blob/master/bundles/org.eclipse.ecf.mgmt.scr/src/org/eclipse/ecf/mgmt/scr/ISCRManager.java">Service Component Runtime (SCR) Manager</a> - Remotely access meta-data about SCR/DS components.  Also allows remotely enabling/disabling components.
			         </li>
			          <li>
			           <a href="https://github.com/ECF/OSGIRemoteManagement/blob/master/bundles/org.eclipse.ecf.mgmt.rsa/src/org/eclipse/ecf/mgmt/rsa/IRemoteServiceAdminManager.java">Remote Service Admin Manager</a> - Remotely access meta-data about RSA such as RSA events, and remote service registrations and references.  Also allows remotely exporting, importing, updating, and closing remote services.
			         </li>
			      </ul>
			   </li>
			   			      <li><b>ECF Management Services</b>
				      <ul>
				         <li>
				           <a href="https://github.com/ECF/OSGIRemoteManagement/blob/master/bundles/org.eclipse.ecf.mgmt.identity/src/org/eclipse/ecf/mgmt/identity/IIdentityFactoryManager.java">Identity Manager</a> - Remotely access meta-data about ECF Namespaces and IDs, and remotely create/add namespaces and IDs.
				         </li>
				      	 <li>
				           <a href="https://github.com/ECF/OSGIRemoteManagement/blob/master/bundles/org.eclipse.ecf.mgmt.container/src/org/eclipse/ecf/mgmt/container/IContainerFactoryManager.java">Container Manager</a> - Remotely access meta-data about existing and active ECF Containers, and remotely create new containers.
				         </li>
				      	 <li>
				           <a href="https://github.com/ECF/OSGIRemoteManagement/tree/master/bundles/org.eclipse.ecf.mgmt.sharedobject">Shared Object Manager</a> - Remotely access information about existing meta-data about shared object containers and shared objects, and remotely create and delete shared objects.
				         </li>
				      </ul>
				  </li>
			   
			   <li><b>Eclipse-specific Management Services</b>
			      <ul>
			      <li><b>P2 Management Services</b>
				      <ul>
				         <li>
				           <a href="https://github.com/ECF/OSGIRemoteManagement/blob/master/bundles/org.eclipse.ecf.mgmt.p2.install/src/org/eclipse/ecf/mgmt/p2/install/IFeatureInstallManager.java">Feature Install Manager</a> - Remotely access feature meta-data and install, update, and install P2 feature groups.
				         </li>
				      	 <li>
				           <a href="https://github.com/ECF/OSGIRemoteManagement/blob/master/bundles/org.eclipse.ecf.mgmt.p2.profile/src/org/eclipse/ecf/mgmt/p2/profile/IProfileManager.java">Profile Manager</a> - Remotely access meta-data about existing and active P2 profiles.
				         </li>
				      	 <li>
				           <a href="https://github.com/ECF/OSGIRemoteManagement/blob/master/bundles/org.eclipse.ecf.mgmt.p2.repository/src/org/eclipse/ecf/mgmt/p2/repository/IRepositoryManager.java">Repository Manager</a> - Remotely access meta-data about repositories and their contents, and remotely add, refresh, and remove repositories.
				         </li>
				      </ul>
				  </li>
			      </ul>
			   </li>  
			</ul>
			</p><p></p>
			<p>
			Each of the above services also has an async proxy service interface (e.g. IServiceManagerAsync), allowing the remote service to be accessed via a non-blocking<a href="https://wiki.eclipse.org/ECF/Asynchronous_Remote_Services">async proxy</a> created automatically for the 
			service by ECF's Remote Services implementation.  Host implementations of each of these services are also available in corresponding <a href="https://github.com/ECF/OSGIRemoteManagement/tree/master/bundles/org.eclipse.ecf.mgmt.framework.host">host bundles</a>.
			</p>
			<p>
			Also included in the OSGi Remote Management repository are Eclipse plugins to expose a running Eclipse as a host for remote management, or to use Eclipse views as a consumer to manage a remote host.  
			For example, here is a new Eclipse Preferences user interface for exporting a Service Manager and an RSA Manager remote services:
			</p>
	        <p>
			<img src="images/screens/remotemanagementhost.png">
			</p>
			<p>
			Once exported, then on Eclipse consumers where the service can be discovered (e.g. on same LAN), a Remote OSGi Service view and 
			a Remote RSA Manager views may be displayed, showing the remote host's currently Exported remote services (above) and the remote host's
			currently running OSGi services.
			</p>
	        <p>
			<img src="images/screens/remotemanagementconsumer.png">
			</p>
			<p>
			A P2 Repo containing the Remote Management API, Eclipse Remote Management Host and Eclipse Remote Management Consumer 
			along with the Remote OSGi Services,
			and Remote RSA Manager views shown above can be found  <a href="https://github.com/ECF/OSGIRemoteManagement/tree/master/builds">here</a>.  
			The P2 Repo containing the 5 Remote Management Features can be accessed directly or via the zip.
			</p>
			</td>
		</tr>
	
			 <tr>
			<td valign="top" align="left" width="15%">
				<p align="left">
					<b>Enhanced Remote Services/Remote Service Admin Tooling</b>
				</p>
			</td>
			<td valign="top" width="85%"><p>In <a
					href="NewAndNoteworthy_3.10.0.html">ECF 3.10.0/Mars a Remote Services Perspective</a> was introduced.   This perspective included
					an Endpoint Discovery View allowing endpoints to be discovered (via network discovery and/or xml/EDEF-file-based discovery), examined,
					and imported for use as a remote service.   
			<p>
			<p>
			In this release, there's a new Remote Service Admin (RSA) manager view.  This view presents the Exported Services and Imported Endpoints 
			for the RSA running within Eclipse, allowing the programmer to <a href="http://wiki.eclipse.org/Remote_Services_Admin">examine and manipulate exported services and imported endpoints</a>.  
			This tooling may be used to test and debug ECF Remote Services by monitoring and managing the remote services export, discovery, and import.
			<p>
			<p>
			For example, here is a screenshot showing an endpoint that has been exported and published for 
			by a remote  
			host (e.g. by a <a href="http://wiki.eclipse.org/EIG:Install_Timeline_Example_into_Apache_Karaf">Karaf-based host</a>),
			and then <a href="http://wiki.eclipse.org/Discovery_Providers">discovered via the Zeroconf protocol</a> (presented
			in the Endpoint Discovery View)<p>
			<p>
			<img src="images/screens/remoteserviceperspective.3.12.1.png">
			</p>
			The user can select this Discovered Endpoint, open the context menu, and select the 'Import Remote Service' menu.
			The selected Endpoint will then be imported, and the Imported Endpoint will appear in the RSA Manager view.
			<p>
			<p>
			<img src="images/screens/remoteserviceperspective.3.12.2.png">
			</p>
			<p>
			Note that the imported endpoint (the remote service proxy) is also presented in the OSGi Services View, and the properties
			associated with the selected mported endpoint are presented in the properties view.<p>
			<p>
			The Imported Endpoints presented in the RSA Manager view can be Unimported (again via context menu).  As well,
			if remote service hosts are exported, they will appear under the Exported Services group in the RSA Manager, and
			can also be unexported via the RSA Manager context menu.
			</p>
			</td>
		</tr>
	
				 <tr>
			<td valign="top" align="left" width="15%">
				<p align="left">
					<b>New Distribution Providers and Distribution Provider documentation</b>
				</p>
			</td>
			<td valign="top" width="85%"><p>Using the remote services distribution provider API above, several new 
			distribution providers have been created:
			<ul>
			<li><a href="https://github.com/ECF/JaxRSProviders">Jax-RS Providers (Jersey, CXF, Resteasy)</a></li>
			<li><a href="https://github.com/ECF/HazelcastProvider">Hazelcast</a></li>
			<li><a href="https://github.com/ECF/Mqtt-Provider">MQTT</a></li>
			</ul>
			</p>
			<p><a href="https://wiki.eclipse.org/Distribution_Providers">Detailed documentation of existing distribution providers</a>
			</td>
		</tr>
		
		
</table> 
 
</body> 
</html> 
