[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| [ecf-dev] plan for remote services admin | 
 Hi Folks,
I've begun work on the OSGI 4.2 remote service admin specification (chap 
122)....and I wanted to throw out a short proposed plan for further 
coordinated work on the implementation.  Please comment on the 
plan...and if you are able/willing to contribute to some part of this, 
please make it known on the relevant bug (see below).
a) The plan bug for this enhancement is [1].  Let's use this bug (as 
well as this mailing list) to coordinate further work on the ECF remote 
service admin implmentation.
b) The OSGi 4.2 spec is available here from the OSGi alliance [2].  The 
remote services admin spec (chap 122) is part of the Enterprise Experts 
group.
c) There are OSGi API classes that are part of the spec, and I've 
submitted a CQ for use/redistribution of these classes.  Happily the CQ 
for our use is a piggy-back CQ, and has already been approved [3].   
Just for everyone's reference, the spec also has a piggyback CQ that's 
been approved as well [4].
d) I've committed a new project to hold these OSGi classes for our 
usage/ecf impl development...it's now here
host:  dev.eclipse.org
cvsroot: /cvsroot/rt
path:  org.eclipse.ecf/osgi/bundles
project:  org.eclipse.osgi.services.remoteserviceadmin
NOTE: These are classes from the OSGi alliance...they are not ECF 
classes...and we cannot modify them (the src is actually in 
src.zip...and the src can be accessed by opening the associated class 
file in the Eclipse java editor).
e) I've created the following new project and started the implementation 
of remote service admin.  The implementation is just beginning and I've 
so far focused on just implementing the 'discovery' part of remote 
service admin (i.e. implementing EndpointListener with the ECF discovery 
API/IServiceListener).   Even this is not completed yet, but it's pretty 
close at this point.
The next steps are to
f) Finish implementation of the discovery portion.  Support needs to be 
added to a) use the Equinox eventmgr to asynchronously (with 
queue/thread) call the registered EndpointListeners; b) on startup of 
the ECF remote services admin bundle to call any previously registered 
event listeners with any extant EndpointDescriptions; c) support the 
modification of the filter service property for EndpointListeners 
(according to spec the filter property on EndpointListeners can be 
modified, and this changes the matching behavior for notification of 
those EndpointListeners).
g) Begin the implementation of the Topology manager and the Remote 
Services Admin service (defined by the RemoteServiceAdmin OSGi 
interface).  These two pieces will be where integration with the 
existing ECF remote services implementation (discovery and distribution) 
will be necessary.  In most cases it will be straightforward to have the 
functions in the current ECF remote services implementation be replaced 
by and use the API classes from the remote service specification.  For 
example, in the current distribution implementation we have the 
equivalent of this function of remote services admin 
(org.osgi.service.remoteserviceadmin.RemoteServiceAdmin service 
interface class):
Collection<ExportRegistration> exportService(ServiceReference reference, 
Map<String, Object> properties);
Now that these classes are available (ExportRegistration) we will be 
able to make implementations (and/or subclasses) that represent the 
ExportRegistration created by exporting a service via ECF remote 
services API.
So in general this will be an exercise in taking the OSGi API classes, 
and creating ECF-specific implementations that take the existing 
distribution code and perform the appropriate ECF operations (e.g. 
exporting/distributing a service via the appropriate remote service 
containers).
That's the basic plan...it's frankly not a huge thing, but it will take 
some coordination/effort by several people over the next few weeks.  
Please let all know what you think via the mailing list...and register 
your own interest and ability to participate in the implementation 
effort, integration, testing, documentation, etc by adding yourself to 
the bug [1].
Thanks,
Scott
[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=324215
[2] http://www.osgi.org/Download/Release4V42
[3] http://dev.eclipse.org/ipzilla/show_bug.cgi?id=4470
[4] http://dev.eclipse.org/ipzilla/show_bug.cgi?id=4471