blob: 7bd281466b21ff501c8e8e693023604c0782b32e [file] [log] [blame]
<!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>