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, waitforEach, spliteratorpublic 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.