|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT |
@Retention(value=CLASS) @Target(value=TYPE) public @interface AdapterService
Annotates an Adapater service. Adapters, like AspectService
, are used to "extend"
existing services, and can publish different services based on the existing one.
An example would be implementing a management interface for an existing service, etc ....
When you annotate an adapter class with the @AdapterService
annotation, it will be applied
to any service that matches the implemented interface and filter. The adapter will be registered
with the specified interface and existing properties from the original service plus any extra
properties you supply here. If you declare the original service as a member it will be injected.
Here, the AdapterService is registered into the OSGI registry each time an AdapteeService is found from the registry. The AdapterImpl class adapts the AdapteeService to the AdapterService. The AdapterService will also have a service property (param=value), and will also include eventual service properties found from the AdapteeService:
@AdapterService(adapteeService = AdapteeService.class, properties={@Property(name="param", value="value")}) class AdapterImpl implements AdapterService { // The service we are adapting (injected by reflection) protected AdapteeService adaptee; public void doWork() { adaptee.mehod1(); adaptee.method2(); } }
Required Element Summary | |
---|---|
Class<?> |
adapteeService
Sets the adaptee service interface this adapter is applying to. |
Optional Element Summary | |
---|---|
String |
adapteeFilter
Sets the filter condition to use with the adapted service interface. |
String |
factoryMethod
Sets the static method used to create the adapter service implementation instance. |
Property[] |
properties
Sets some additional properties to use with the adapter service registration. |
Class<?>[] |
provides
Sets the adapter service interface(s). |
Element Detail |
---|
public abstract Class<?> adapteeService
public abstract Class<?>[] provides
public abstract Property[] properties
public abstract String adapteeFilter
public abstract String factoryMethod
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT |