Package org.apache.felix.cm.impl.helper
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<?>>
-
Field Summary
Fields inherited from class org.apache.felix.cm.impl.helper.BaseTracker
cmFields inherited from class org.osgi.util.tracker.ServiceTracker
context, filter -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected ConfigurationMap<?> createConfigurationMap(String[] pids) getServicePid(org.osgi.framework.ServiceReference<org.osgi.service.cm.ManagedService> service, TargetedPID pid) Returns the String to be used as the PID of the service PID for thepidretrieved from the configuration.voidprovideConfiguration(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.voidremoveConfiguration(org.osgi.framework.ServiceReference<org.osgi.service.cm.ManagedService> service, TargetedPID configPid, TargetedPID factoryPid) Remove the configuration indicated by theconfigPidfrom the service.Methods inherited from class org.apache.felix.cm.impl.helper.BaseTracker
addingService, getAccessControlContext, getProperties, getRealService, getServices, handleCallBackError, modifiedService, removedService, ungetRealServiceMethods inherited from class org.osgi.util.tracker.ServiceTracker
close, getService, getService, getServiceReference, getServiceReferences, getServices, getServices, getTracked, getTrackingCount, isEmpty, open, open, remove, size, waitForService
-
Constructor Details
-
ManagedServiceTracker
public ManagedServiceTracker(org.apache.felix.cm.impl.ConfigurationManager cm)
-
-
Method Details
-
createConfigurationMap
- Specified by:
createConfigurationMapin classBaseTracker<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:BaseTrackerReturns the String to be used as the PID of the service PID for thepidretrieved 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 caseTargetedPID.getRawPid()might be returned.- Specified by:
getServicePidin classBaseTracker<org.osgi.service.cm.ManagedService>- Parameters:
service- The reference ot the service for which the service PID is to be returned.pid- TheTargetedPIDfor which to return the service PID.- Returns:
- The service PID or
nullif 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:
provideConfigurationin classBaseTracker<org.osgi.service.cm.ManagedService>- Parameters:
service- The reference to the service to updateconfigPid- The targeted configuration PIDfactoryPid- The targeted factory PID ornullfor a non-factory configurationproperties- The configuration properties, which may benullif this is the provisioning call upon service registration of a ManagedServicerevision- 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:BaseTrackerRemove the configuration indicated by theconfigPidfrom the service.- Specified by:
removeConfigurationin classBaseTracker<org.osgi.service.cm.ManagedService>- Parameters:
service- The reference to the service from which the configuration is to be removed.configPid- TheTargetedPIDof the configurationfactoryPid- Thefactory PIDof the configuration. This may benullfor a non-factory configuration.
-