[
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