Class ManagedServiceTracker

java.lang.Object
org.osgi.util.tracker.ServiceTracker<org.osgi.service.cm.ManagedService,ConfigurationMap<?>>
org.apache.felix.cm.impl.helper.BaseTracker<org.osgi.service.cm.ManagedService>
org.apache.felix.cm.impl.helper.ManagedServiceTracker
All Implemented Interfaces:
org.osgi.util.tracker.ServiceTrackerCustomizer<org.osgi.service.cm.ManagedService,ConfigurationMap<?>>

public class ManagedServiceTracker extends BaseTracker<org.osgi.service.cm.ManagedService>
  • Constructor Details

    • ManagedServiceTracker

      public ManagedServiceTracker(org.apache.felix.cm.impl.ConfigurationManager cm)
  • Method Details

    • createConfigurationMap

      protected ConfigurationMap<?> createConfigurationMap(String[] pids)
      Specified by:
      createConfigurationMap in class BaseTracker<org.osgi.service.cm.ManagedService>
    • getServicePid

      public String getServicePid(org.osgi.framework.ServiceReference<org.osgi.service.cm.ManagedService> service, TargetedPID pid)
      Description copied from class: BaseTracker
      Returns the String to be used as the PID of the service PID for the pid retrieved from the configuration.

      This method will return TargetedPID.getServicePid() most of the time except if the service PID used for the consumer's service registration contains one or more pipe symbols (|). In this case TargetedPID.getRawPid() might be returned.

      Specified by:
      getServicePid in class BaseTracker<org.osgi.service.cm.ManagedService>
      Parameters:
      service - The reference ot the service for which the service PID is to be returned.
      pid - The TargetedPID for which to return the service PID.
      Returns:
      The service PID or null if the service does not respond to the targeted PID at all.
    • provideConfiguration

      public void provideConfiguration(org.osgi.framework.ServiceReference<org.osgi.service.cm.ManagedService> service, TargetedPID configPid, TargetedPID factoryPid, Dictionary<String,?> properties, long revision, ConfigurationMap<?> configs)
      Provides the given configuration to the managed service.

      Depending on targeted PIDs this configuration may not actually be provided if the service already has more strictly binding configuration from a targeted configuration bound.

      If the revision is a negative value, the provided configuration is assigned to the ManagedService in any case without further checks. This allows a replacement configuration for a deleted or invisible configuration to be assigned without first removing the deleted or invisible configuration.

      Specified by:
      provideConfiguration in class BaseTracker<org.osgi.service.cm.ManagedService>
      Parameters:
      service - The reference to the service to update
      configPid - The targeted configuration PID
      factoryPid - The targeted factory PID or null for a non-factory configuration
      properties - The configuration properties, which may be null if this is the provisioning call upon service registration of a ManagedService
      revision - The configuration revision or -1 if there is no configuration actually to provide.
      configs - The PID to configuration map for PIDs used by the service to update
      See Also:
    • removeConfiguration

      public void removeConfiguration(org.osgi.framework.ServiceReference<org.osgi.service.cm.ManagedService> service, TargetedPID configPid, TargetedPID factoryPid)
      Description copied from class: BaseTracker
      Remove the configuration indicated by the configPid from the service.
      Specified by:
      removeConfiguration in class BaseTracker<org.osgi.service.cm.ManagedService>
      Parameters:
      service - The reference to the service from which the configuration is to be removed.
      configPid - The TargetedPID of the configuration
      factoryPid - The factory PID of the configuration. This may be null for a non-factory configuration.