org.eclipse.ecf.osgi.services.remoteserviceadmin
Class RemoteServiceAdmin

java.lang.Object
  extended by org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin
All Implemented Interfaces:
RemoteServiceAdmin

public class RemoteServiceAdmin
extends java.lang.Object
implements RemoteServiceAdmin

ECF implementation of OSGI 4.2 Remote Service Admin service. This service can be used by topology managers to to export and/or import remote services with any ECF container that implements the ECF remote service API.


Nested Class Summary
 class RemoteServiceAdmin.ExportReference
           
 class RemoteServiceAdmin.ExportRegistration
           
 class RemoteServiceAdmin.ImportReference
           
 class RemoteServiceAdmin.ImportRegistration
           
protected  class RemoteServiceAdmin.ProxyClassLoader
           
 class RemoteServiceAdmin.RemoteServiceAdminEvent
           
 
Field Summary
static java.lang.String SERVICE_PROP
           
 
Constructor Summary
RemoteServiceAdmin(org.osgi.framework.Bundle clientBundle)
           
RemoteServiceAdmin(org.osgi.framework.Bundle clientBundle, java.util.Collection<ExportRegistration> exportedRegistrations, java.util.Collection<ImportRegistration> importedRegistrations)
           
 
Method Summary
 void close()
           
 java.util.Collection<ExportRegistration> exportService(org.osgi.framework.ServiceReference<?> serviceReference, java.util.Map<java.lang.String,?> op)
          Export a service to a given Endpoint.
protected  IConsumerContainerSelector getConsumerContainerSelector()
           
 java.util.List<RemoteServiceAdmin.ExportRegistration> getExportedRegistrations()
           
 java.util.Collection<ExportReference> getExportedServices()
          Return the currently active Export References.
protected  IHostContainerSelector getHostContainerSelector()
           
 java.util.Collection<ImportReference> getImportedEndpoints()
          Return the currently active Import References.
 java.util.List<RemoteServiceAdmin.ImportRegistration> getImportedRegistrations()
           
 ImportRegistration importService(EndpointDescription endpointDescription)
          Import a service from an Endpoint.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SERVICE_PROP

public static final java.lang.String SERVICE_PROP
See Also:
Constant Field Values
Constructor Detail

RemoteServiceAdmin

public RemoteServiceAdmin(org.osgi.framework.Bundle clientBundle)

RemoteServiceAdmin

public RemoteServiceAdmin(org.osgi.framework.Bundle clientBundle,
                          java.util.Collection<ExportRegistration> exportedRegistrations,
                          java.util.Collection<ImportRegistration> importedRegistrations)
Since:
4.1
Method Detail

getExportedRegistrations

public java.util.List<RemoteServiceAdmin.ExportRegistration> getExportedRegistrations()
Since:
4.2

getImportedRegistrations

public java.util.List<RemoteServiceAdmin.ImportRegistration> getImportedRegistrations()
Since:
4.2

exportService

public java.util.Collection<ExportRegistration> exportService(org.osgi.framework.ServiceReference<?> serviceReference,
                                                              java.util.Map<java.lang.String,?> op)
Description copied from interface: RemoteServiceAdmin
Export a service to a given Endpoint. The Remote Service Admin must create an Endpoint from the given description that can be used by other Distribution Providers to connect to this Remote Service Admin and use the exported service. The property keys of a Service Reference are case insensitive while the property keys of the specified properties map are case sensitive. A property key in the specified properties map must therefore override any case variant property key in the properties of the specified Service Reference.

If the caller does not have the appropriate EndpointPermission[endpoint,EXPORT] for an Endpoint, and the Java Runtime Environment supports permissions, then the getException method on the corresponding returned ExportRegistration will return a SecurityException.

Specified by:
exportService in interface RemoteServiceAdmin
Parameters:
serviceReference - The Service Reference to export.
op - The properties to create a local Endpoint that can be implemented by this Remote Service Admin. If this is null, the Endpoint will be determined by the properties on the service. The properties are the same as given for an exported service. They override any properties in the specified Service Reference (case insensitive). The properties objectClass and service.id, in any case variant, are ignored. Those properties in the Service Reference cannot be overridden. This parameter can be null, this should be treated as an empty map.
Returns:
A Collection of ExportRegistrations for the specified Service Reference and properties. Multiple Export Registrations may be returned because a single service can be exported to multiple Endpoints depending on the available configuration type properties and the intents that they support. The result is never null but may be empty if this Remove Service Admin does not recognize any of the configuration types, or if they Remote Service Admin cannot support the relevant intents.

importService

public ImportRegistration importService(EndpointDescription endpointDescription)
Description copied from interface: RemoteServiceAdmin
Import a service from an Endpoint. The Remote Service Admin must use the given Endpoint to create a proxy. This method can return null if the service could not be imported.

Specified by:
importService in interface RemoteServiceAdmin
Parameters:
endpointDescription - The Endpoint Description to be used for import.
Returns:
An Import Registration that combines the Endpoint Description and the Service Reference or null if the Endpoint could not be imported.

getExportedServices

public java.util.Collection<ExportReference> getExportedServices()
Description copied from interface: RemoteServiceAdmin
Return the currently active Export References.

If the caller does not have the appropriate EndpointPermission[endpoint,READ] for an Endpoint, and the Java Runtime Environment supports permissions, then returned collection will not contain a reference to the exported Endpoint.

Specified by:
getExportedServices in interface RemoteServiceAdmin
Returns:
A Collection of ExportReferences that are currently active.

getImportedEndpoints

public java.util.Collection<ImportReference> getImportedEndpoints()
Description copied from interface: RemoteServiceAdmin
Return the currently active Import References.

If the caller does not have the appropriate EndpointPermission[endpoint,READ] for an Endpoint, and the Java Runtime Environment supports permissions, then returned collection will not contain a reference to the imported Endpoint.

Specified by:
getImportedEndpoints in interface RemoteServiceAdmin
Returns:
A Collection of ImportReferences that are currently active.

getHostContainerSelector

protected IHostContainerSelector getHostContainerSelector()

getConsumerContainerSelector

protected IConsumerContainerSelector getConsumerContainerSelector()

close

public void close()