org.eclipse.ecf.osgi.services.remoteserviceadmin
Interface IHostContainerSelector

All Known Implementing Classes:
HostContainerSelector

public interface IHostContainerSelector

Host container selector service contract. When an ECF RemoteServiceAdmin instance is asked to import a service (i.e. via RemoteServiceAdmin.exportService(ServiceReference, java.util.Map) ), the RSA first gets an instance of this service via the service registry, and then uses it to select an array of ECF host container instances by calling #selectHostContainers(ServiceReference, String[], String[], String[]) .

The IRemoteServiceContainer array returned is then used to actually export the remote service (typically via IRemoteServiceContainerAdapter.registerRemoteService(String[], Object, java.util.Dictionary)

If no other instances of this service have been registered, a default instance of HostContainerSelector will be used. Note that this default instance is registered with the lowest possible priority, so that if other IHostContainerSelector instances are registered, they will be preferred/used over the default.


Method Summary
 IRemoteServiceContainer[] selectHostContainers(org.osgi.framework.ServiceReference serviceReference, java.util.Map<java.lang.String,java.lang.Object> overridingProperties, java.lang.String[] exportedInterfaces, java.lang.String[] exportedConfigs, java.lang.String[] serviceIntents)
          Select host containers to use to export a remote service.
 

Method Detail

selectHostContainers

IRemoteServiceContainer[] selectHostContainers(org.osgi.framework.ServiceReference serviceReference,
                                               java.util.Map<java.lang.String,java.lang.Object> overridingProperties,
                                               java.lang.String[] exportedInterfaces,
                                               java.lang.String[] exportedConfigs,
                                               java.lang.String[] serviceIntents)
                                               throws SelectContainerException
Select host containers to use to export a remote service.

Parameters:
serviceReference - the service reference given by the RemoteServiceAdmin.exportService(ServiceReference, java.util.Map)
overridingProperties - the map portion given by the RemoteServiceAdmin.exportService(ServiceReference, java.util.Map)
exportedInterfaces - the exportedInterfaces (typically associated with RemoteConstants.SERVICE_EXPORTED_INTERFACES ). Will not be null.
exportedConfigs - the exportedConfigs (typically associated with RemoteConstants.SERVICE_EXPORTED_CONFIGS ). May be null.
serviceIntents - the service intents (typically associated with RemoteConstants.SERVICE_EXPORTED_INTENTS and RemoteConstants.SERVICE_EXPORTED_INTENTS_EXTRA ). May be null.
Returns:
IRemoteServiceContainer[] of remote service containers that should be used to export the given remote service (typically via IRemoteServiceContainerAdapter.registerRemoteService(String[], Object, java.util.Dictionary) ). Will not be null, but may be empty array.
Throws:
SelectContainerException - thrown if the host container selection or creation/configuration fails.
Since:
2.0