<!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.12.1 Release <br> <br>
				<br> Return to <a href="downloads.php">ECF download page</a><br>
					<br>

				<br><a
					href="NewAndNoteworthy_3.11.0.html">New and Noteworthy for 3.11.0/Mars</a><br>
					<br>
				<br><a
					href="NewAndNoteworthy_3.12.0.html">New and Noteworthy for 3.12.0</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>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>Remote Services Distribution Provider API</b>
				</p>
			</td>
			<td valign="top" width="85%"><p>Remote Services distribution providers are responsible for implementing the remote method call...i.e. the 
			serialization of parameters and return values, and the communications protocol used to communicate between the caller and the
			remote service.
			caller.  
			</p>
			<p>
			ECF's Remote Services implementation allows the use of custom or alternative distribution providers.  Allows ECF's
			Remote Services implementation to be used with any desired serialization mechanism and any suitable communications protocol.
			</p> 
			<p>For easy creation of distribution providers, we've added a new <a href="http://download.eclipse.org/rt/ecf/3.11.0/javadoc/org/eclipse/ecf/remoteservice/provider/IRemoteServiceDistributionProvider.html">IRemoteServiceDistributionProvider</a>
			interface so that a distribution provider may be registered for use via the <a href="http://www.osgi.org/wiki/uploads/Links/whiteboard.pdf">OSGi whiteboard pattern</a>.  
			<a href="http://download.eclipse.org/rt/ecf/3.11.0/javadoc/org/eclipse/ecf/remoteservice/provider/package-frame.html">Here is the org.eclipse.ecf.remoteservice.provider</a> package.
			</p>
			<p>
			For example, <a href="https://github.com/ECF/JaxRSProviders/blob/master/bundles/org.eclipse.ecf.provider.jersey.client/src/org/eclipse/ecf/provider/jersey/client/JerseyClientDistributionProvider.java">here is a distribution
			provider</a> implemented using <a href="http://jersey.java.net">Jersey Jax-RS</a> REST framework.   A single instance of this class
			is <a href="https://github.com/ECF/JaxRSProviders/blob/master/bundles/org.eclipse.ecf.provider.jersey.server/OSGI-INF/distributionprovider.xml">registered via Declarative Services</a> and any remote services using the 'ecf.jaxrs.jersey.server' config type will
			use Jersey as the distribution mechanism.  See the <a href="https://github.com/ECF/JaxRSProviders/tree/master/examples">examples</a> in 
			the <a href="https://github.com/ECF/JaxRSProviders">JaxRSProviders</a> repo for complete examples of using this provider. 
			</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> 
