[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[ecf-dev] IHostContainerSelector fix
|
Hi Folks,
Shortly after release of ECF 3.5's impl of Remote Service Admin (RSA) I
realized that the API for IHostContainerSelector was not sufficiently
general (isn't that how it always happens? :).
Specifically, here's the signature of the only method in
IHostContainerSelector
IRemoteServiceContainer[] selectHostContainers(
ServiceReference serviceReference, String[] exportedInterfaces,
String[] exportedConfigs, String[] serviceIntents);
RSA's exportService, however, has both a ServiceReference and a
Map<String,Object> that allows the properties on the ServiceReference to
be overridden...i.e. here is the OSGI RemoteServiceAdmin exportService
method signature:
Collection<ExportRegistration> exportService(ServiceReference
reference,
Map<String, Object> properties);
The 'properties' argument is intended to be interpreted to override the
properties on the service reference.
I realized that the ECF IHostContainerSelector should *also* allow the
ServiceReference properties to be overridden...and so should almost
certainly have a signature like this:
IRemoteServiceContainer[] selectHostContainers(
ServiceReference serviceReference, String[] exportedInterfaces,
String[] exportedConfigs, String[] serviceIntents,
Map<String, Object> overrideProperties);
This would allow the host container selector implementation to also use
the overrideProperties in the selection/creation/configuration of a
remote service host container. This is not critical, but it is a
desirable generalization and IMHO should be fixed.
So...the upshot is that I would like to add this overrideProperties
argument to IHostContainerSelector API (and implementations, obviously)
to ECF as soon as possible.
The IHostContainerSelector is API...albeit ECF-internal API ...as it
allows people to easily customize ECF's RSA implementation. It does not
represent any change in the RSA-specified standard API.
My proposal is to introduce this API change right away, and release it
in ECF 3.5.1. I would like to seek a waiver to include in the 3.5.1
maintenance release (with approximate release date of mid-May 2011). I
think it would be a bit much to go through a minor release review (i.e.
3.6) for this ECF-internal API change.
Any opinions/views/comments?
Thanks,
Scott