|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.ibm.wsspi.kernel.service.utils.AtomicServiceReference<T>
public class AtomicServiceReference<T>
Small class performing atomic operations to find/retrieve/cache the instance of a DeclarativeServices component reference from service registry via the service reference.
Use this to maintain a lazy-resolved reference of cardinality one (single service reference associated with a single, lazily-resolved service instance).
Usage (following OSGi DS naming conventions/patterns):
private final AtomicServiceReference<T> serviceRef = new AtomicServiceReference<T>("referenceName"); protected void activate(ComponentContext ctx) { serviceRef.activate(ctx); } protected void deactivate(ComponentContext ctx) { serviceRef.deactivate(ctx); } protected void setReferenceName(ServiceReference<T> ref) { serviceRef.setReference(ref); } protected void unsetReferenceName(ServiceReference<T> ref) { serviceRef.unsetReference(ref); } private T getReferenceName() { return serviceRef.getService(); }
Constructor Summary | |
---|---|
AtomicServiceReference(java.lang.String name)
Create a new AtomicServiceReference for the named service. |
Method Summary | |
---|---|
void |
activate(org.osgi.service.component.ComponentContext context)
|
void |
deactivate(org.osgi.service.component.ComponentContext context)
|
org.osgi.framework.ServiceReference<T> |
getReference()
|
T |
getService()
|
T |
getServiceWithException()
|
boolean |
setReference(org.osgi.framework.ServiceReference<T> reference)
Update service reference associated with this service. |
java.lang.String |
toString()
|
boolean |
unsetReference(org.osgi.framework.ServiceReference<T> reference)
Clear the service reference associated with this service. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public AtomicServiceReference(java.lang.String name)
name
- Name of DS referenceMethod Detail |
---|
public void activate(org.osgi.service.component.ComponentContext context)
public void deactivate(org.osgi.service.component.ComponentContext context)
public boolean setReference(org.osgi.framework.ServiceReference<T> reference)
referenceName
- ServiceReference for the target service. Service references are
equal if they point to the same service registration, and are ordered by
increasing service.ranking and decreasing service.id. ServiceReferences hold
no service properties: requests/queries for properties are forwarded onto
the backing service registration.
public boolean unsetReference(org.osgi.framework.ServiceReference<T> reference)
reference
- ServiceReference associated with service to be unset.
public org.osgi.framework.ServiceReference<T> getReference()
public T getService()
public T getServiceWithException()
java.lang.IllegalStateException
- if the internal state is such that
locating the service is not possible or if the service
is not retrievablepublic java.lang.String toString()
toString
in class java.lang.Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |