| <!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> |