@Retention(value=CLASS)
@Target(value=TYPE)
public @interface AdapterService
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();
     }
 }
 
 | Modifier and Type | Required Element and Description | 
|---|---|
| java.lang.Class<?> | adapteeServiceSets the adaptee service interface this adapter is applying to. | 
| Modifier and Type | Optional Element and Description | 
|---|---|
| java.lang.String | adapteeFilterSets the filter condition to use with the adapted service interface. | 
| java.lang.String | addedThe callback method to be invoked when the original service is available. | 
| java.lang.String | changedThe callback method to be invoked when the original service properties have changed. | 
| java.lang.String | factoryMethodSets the static method used to create the adapter service implementation instance. | 
| java.lang.String | fieldSets the field name where to inject the original service. | 
| boolean | propagateSpecifies if adaptee service properties should be propagated to the adapter service. | 
| Property[] | propertiesSets some additional properties to use with the adapter service registration. | 
| java.lang.Class<?>[] | providesSets the adapter service interface(s). | 
| java.lang.String | removedThe callback method to invoke when the service is lost. | 
| java.lang.String | swapname of the callback method to invoke on swap. | 
public abstract java.lang.Class<?> adapteeService
public abstract java.lang.Class<?>[] provides
public abstract Property[] properties
public abstract java.lang.String adapteeFilter
public abstract java.lang.String factoryMethod
public abstract java.lang.String field
public abstract java.lang.String added
public abstract java.lang.String changed
public abstract java.lang.String swap
public abstract java.lang.String removed
public abstract boolean propagate