Interface ServiceTrackerCustomizer
- All Known Implementing Classes:
AdapterFilterIndex,AspectFilterIndex,MultiPropertyFilterIndex,ServiceTracker
ServiceTrackerCustomizer interface allows a
ServiceTracker to customize the service objects that are
tracked. A ServiceTrackerCustomizer is called when a service is
being added to a ServiceTracker. The
ServiceTrackerCustomizer can then return an object for the
tracked service. A ServiceTrackerCustomizer is also called when
a tracked service is modified or has been removed from a
ServiceTracker.
The methods in this interface may be called as the result of a
ServiceEvent being received by a ServiceTracker.
Since ServiceEvents are synchronously delivered by the
Framework, it is highly recommended that implementations of these methods do
not register (BundleContext.registerService), modify (
ServiceRegistration.setProperties) or unregister (
ServiceRegistration.unregister) a service while being
synchronized on any object.
The ServiceTracker class is thread-safe. It does not call a
ServiceTrackerCustomizer while holding any locks.
ServiceTrackerCustomizer implementations must also be
thread-safe.
- Version:
- $Revision: 5874 $
-
Method Summary
Modifier and TypeMethodDescriptionvoidaddedService(org.osgi.framework.ServiceReference reference, Object service) marrs: A service has been added to the ServiceTracker.addingService(org.osgi.framework.ServiceReference reference) A service is being added to theServiceTracker.voidmodifiedService(org.osgi.framework.ServiceReference reference, Object service) A service tracked by theServiceTrackerhas been modified.voidremovedService(org.osgi.framework.ServiceReference reference, Object service) A service tracked by theServiceTrackerhas been removed.voidswappedService(org.osgi.framework.ServiceReference reference, Object service, org.osgi.framework.ServiceReference newReference, Object newService) A service tracked by theServiceTrackerhas an aspect service added or removed for a tracked service.
-
Method Details
-
addingService
A service is being added to theServiceTracker.This method is called before a service which matched the search parameters of the
ServiceTrackeris added to theServiceTracker. This method should return the service object to be tracked for the specifiedServiceReference. The returned service object is stored in theServiceTrackerand is available from thegetServiceandgetServicesmethods.- Parameters:
reference- The reference to the service being added to theServiceTracker.- Returns:
- The service object to be tracked for the specified referenced
service or
nullif the specified referenced service should not be tracked.
-
addedService
marrs: A service has been added to the ServiceTracker. -
modifiedService
A service tracked by theServiceTrackerhas been modified.This method is called when a service being tracked by the
ServiceTrackerhas had it properties modified.- Parameters:
reference- The reference to the service that has been modified.service- The service object for the specified referenced service.
-
swappedService
void swappedService(org.osgi.framework.ServiceReference reference, Object service, org.osgi.framework.ServiceReference newReference, Object newService) A service tracked by theServiceTrackerhas an aspect service added or removed for a tracked service.This method is called when an aspect service has been either added or removed for a tracked service. This method will only be called when there's a new highest ranked service as result of adding or removal of the aspect service. In this case the previously highest ranked service is 'swapped' for the new highest ranked service ensuring the client always gets the highest ranked aspect.
- Parameters:
reference- The reference for the old highest ranked service.service- The service object for the old highest ranked service.newReference- The reference to the new highest ranked service.newService- The service object for the new highest ranked service.
-
removedService
A service tracked by theServiceTrackerhas been removed.This method is called after a service is no longer being tracked by the
ServiceTracker.- Parameters:
reference- The reference to the service that has been removed.service- The service object for the specified referenced service.
-