Interface IServiceInfoFactory

All Known Implementing Classes:

public interface IServiceInfoFactory
Service info factory service contract. A service info factory is used to convert EndpointDescriptions to IServiceInfo instances (via createServiceInfo. The resulting IServiceInfo instances are then used to publish the EndpointDescription metadata to a IDiscoveryAdvertiser.

If no other instances of this service have been registered, a default instance of ServiceInfoFactory will be used. Note that this default instance is registered with the lowest possible priority, so that if other IServiceInfoFactory instances are registered, they will be preferred/used over the default. This means that Those wishing to customize/control this process of converting EndpointDescriptions to IServiceInfo must

  • create their own implementation of IServiceInfoFactory
  • register it with the OSGi service registry with a priority ({org.osgi.framework.Constants#SERVICE_RANKING}) higher than Integer.MIN_VALUE
Then at runtime, when needed by the EndpointDescriptionAdvertiser, the new service info factory will be used.
See Also:
  • Method Details

    • createServiceInfo

      IServiceInfo createServiceInfo(IDiscoveryAdvertiser advertiser, EndpointDescription endpointDescription)
      Create an service info instance to represent the given endpointDescription for discovery using the given discovery advertiser.
      advertiser - the advertiser to use for creating the service info result. Must not be null.
      endpointDescription - the endpoint description that the service info is to represent. Must not be null.
      IServiceInfo to use to publish the endpointDescription for discovery (via IDiscoveryAdvertiser.registerService(IServiceInfo). If a service info instance has previously been created for the given endpointDescription by this service info factory, then that serviceInfo will be returned in favor of creating a new one. Otherwise, a new service info will be created and returned. If some error occurs in the creation of the serviceInfo, null will be returned.