T
- Service type@ProviderType public final class RankedServices<T> extends Object implements Iterable<T>
Usage example:
1. Define a dynamic reference with cardinality OPTIONAL_MULTIPLE in your service:
@Reference(name = "myService", referenceInterface = MyService.class, cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, policy = ReferencePolicy.DYNAMIC) private final RankedServices<MyService> myServices = new RankedServices<MyService>();
2. Define bind/unbind methods that delegate to the RankedServices instance:
void bindMyService(MyService service, Map<String, Object> props) { myServices.bind(service, props); } void unbindMyService(MyService service, Map<String, Object> props) { myServices.unbind(service, props); }
To access the list of referenced services you can access them in a thread-safe manner:
for (MyService service : myServices) { // your code... }
Optionally you can pass in a RankedServices.ChangeListener
instance to get notified when the list
of referenced services has changed.
Modifier and Type | Class and Description |
---|---|
static interface |
RankedServices.ChangeListener
Notification for changes on services list.
|
Constructor and Description |
---|
RankedServices()
Instantiate without change listener.
|
RankedServices(RankedServices.ChangeListener changeListener)
Instantiate with change listener.
|
Modifier and Type | Method and Description |
---|---|
void |
bind(T service,
Map<String,Object> props)
Handle bind service event.
|
Collection<T> |
get()
Lists all services registered in OSGi, sorted by service ranking.
|
Iterator<T> |
iterator()
Iterates all services registered in OSGi, sorted by service ranking.
|
void |
unbind(T service,
Map<String,Object> props)
Handle unbind service event.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEach, spliterator
public RankedServices()
public RankedServices(RankedServices.ChangeListener changeListener)
changeListener
- Change listenerpublic void bind(T service, Map<String,Object> props)
service
- Service instanceprops
- Service reference propertiespublic void unbind(T service, Map<String,Object> props)
service
- Service instanceprops
- Service reference propertiespublic Collection<T> get()
Copyright © 2015 The Apache Software Foundation. All rights reserved.