diff --git a/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/AdapterService.java b/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/AdapterService.java
index 7bfdb8f..5f1f816 100644
--- a/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/AdapterService.java
+++ b/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/AdapterService.java
@@ -38,13 +38,13 @@
     /**
      * Sets the adapter service interface(s). By default, the directly implemented interface(s) is (are) used.
      */
-    Class<?>[] adapterService() default {};
+    Class<?>[] provides() default {};
 
     /**
      * Sets some additional properties to use with the adapter service registration. By default, 
      * the adapter will inherit all adaptee service properties.
      */
-    Property[] adapterProperties() default {};
+    Property[] properties() default {};
 
     /**
      * Sets the adaptee service interface this adapter is applying to.
diff --git a/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/BundleAdapterService.java b/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/BundleAdapterService.java
index 648ee8a..d0c25f8 100644
--- a/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/BundleAdapterService.java
+++ b/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/BundleAdapterService.java
@@ -39,6 +39,17 @@
 @interface BundleAdapterService
 {
     /**
+     * The interface(s) to use when registering adapters. By default, the interface(s) directly implemented
+     * by the annotated class is (are) used.
+     */
+    Class<?>[] provides() default {};
+    
+    /**
+     * Additional properties to use with the service registration
+     */
+    Property[] properties() default {};
+    
+   /**
      * The filter used to match a given bundle.
      */
     String filter();
@@ -49,17 +60,6 @@
     int stateMask() default Bundle.INSTALLED | Bundle.RESOLVED | Bundle.ACTIVE;
     
     /**
-     * The interface(s) to use when registering adapters. By default, the interface(s) directly implemented
-     * by the annotated class is (are) used.
-     */
-    Class<?>[] service() default {};
-    
-    /**
-     * Additional properties to use with the service registration
-     */
-    Property[] properties() default {};
-    
-    /**
      * Specifies if properties from the bundle should be propagated to the service.
      */
     boolean propagate() default true;
diff --git a/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/FactoryConfigurationAdapterService.java b/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/FactoryConfigurationAdapterService.java
index d1482d9..fd0bee5 100644
--- a/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/FactoryConfigurationAdapterService.java
+++ b/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/FactoryConfigurationAdapterService.java
@@ -36,6 +36,18 @@
 public @interface FactoryConfigurationAdapterService
 {
     /**
+     * The interface(s) to use when registering adapters. By default, directly implemented 
+     * interfaces will be registered in the OSGi registry.
+     */
+    Class<?>[] provides() default {};
+
+    /**
+     * Adapter Service properties. Notice that public factory configuration is also registered in service properties,
+     * (only if propagate is true). Public factory configuration properties are those which don't starts with a dot (".").
+     */
+    Property[] properties() default {};
+
+    /**
      * Returns the factory pid whose configurations will instantiate the annotated service class. (By default, the pid is the 
      * service class name).
      */
@@ -54,18 +66,6 @@
     boolean propagate() default false;
 
     /**
-     * The interface(s) to use when registering adapters. By default, directly implemented 
-     * interfaces will be registered in the OSGi registry.
-     */
-    Class<?>[] service() default {};
-
-    /**
-     * Adapter Service properties. Notice that public factory configuration is also registered in service properties,
-     * (only if propagate is true). Public factory configuration properties are those which don't starts with a dot (".").
-     */
-    Property[] properties() default {};
-
-    /**
      * The label used to display the tab name (or section) where the properties are displayed. Example: "Printer Service".
      * @return The label used to display the tab name where the properties are displayed.
      */
diff --git a/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/ResourceAdapterService.java b/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/ResourceAdapterService.java
index 3875038..287eb48 100644
--- a/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/ResourceAdapterService.java
+++ b/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/ResourceAdapterService.java
@@ -38,20 +38,20 @@
 public @interface ResourceAdapterService
 {
     /**
-     * The filter condition to use with the resource.
-     */
-    String filter();
-
-    /**
      * The interface(s) to use when registering adapters
      */
-    Class<?>[] service() default {};
+    Class<?>[] provides() default {};
 
     /**
      * Additional properties to use with the adapter service registration
      */
     Property[] properties() default {};
 
+   /**
+     * The filter condition to use with the resource.
+     */
+    String filter();
+
     /**
      * <code>true</code> if properties from the resource should be propagated to the service.
      */
diff --git a/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/AnnotationCollector.java b/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/AnnotationCollector.java
index c1814e8..08bda25 100644
--- a/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/AnnotationCollector.java
+++ b/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/AnnotationCollector.java
@@ -489,10 +489,10 @@
         writer.putClass(annotation, EntryParam.adapteeService, null);
 
         // Parse Adapter properties.
-        parseProperties(annotation, EntryParam.adapterProperties, writer);
+        parseProperties(annotation, EntryParam.properties, writer);
 
-        // Parse the optional adapter service (use directly implemented interface by default).
-        writer.putClassArray(annotation, EntryParam.adapterService, m_interfaces);
+        // Parse the provided adapter service (use directly implemented interface by default).
+        writer.putClassArray(annotation, EntryParam.provides, m_interfaces);
         
         // Parse factoryMethod attribute
         writer.putString(annotation, EntryParam.factoryMethod, null);
@@ -529,7 +529,7 @@
         parseProperties(annotation, EntryParam.properties, writer);
 
         // Parse the optional adapter service (use directly implemented interface by default).
-        writer.putClassArray(annotation, EntryParam.service, m_interfaces);
+        writer.putClassArray(annotation, EntryParam.provides, m_interfaces);
 
         // Parse propagate attribute
         writer.putString(annotation, EntryParam.propagate, Boolean.FALSE.toString());
@@ -564,8 +564,8 @@
         // Parse Adapter properties.
         parseProperties(annotation, EntryParam.properties, writer);
 
-        // Parse the optional adapter service (use directly implemented interface by default).
-        writer.putClassArray(annotation, EntryParam.service, m_interfaces);
+        // Parse the provided adapter service (use directly implemented interface by default).
+        writer.putClassArray(annotation, EntryParam.provides, m_interfaces);
 
         // Parse propagate attribute
         writer.putString(annotation, EntryParam.propagate, Boolean.FALSE.toString());
@@ -598,8 +598,8 @@
         // propagate attribute
         writer.putString(annotation, EntryParam.propagate, Boolean.FALSE.toString());
 
-        // Parse the optional adapter service (use directly implemented interface by default).
-        writer.putClassArray(annotation, EntryParam.service, m_interfaces);
+        // Parse the provided adapter service (use directly implemented interface by default).
+        writer.putClassArray(annotation, EntryParam.provides, m_interfaces);
 
         // Parse Adapter properties.
         parseProperties(annotation, EntryParam.properties, writer);
diff --git a/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/EntryParam.java b/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/EntryParam.java
index 5c3679b..5f295ec 100644
--- a/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/EntryParam.java
+++ b/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/EntryParam.java
@@ -26,8 +26,6 @@
     propagate, 
     updated, 
     timeout,
-    adapterService,
-    adapterProperties,
     adapteeService,
     adapteeFilter,
     stateMask,
diff --git a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/AdapterServiceBuilder.java b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/AdapterServiceBuilder.java
index b7cd711..e20144f 100644
--- a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/AdapterServiceBuilder.java
+++ b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/AdapterServiceBuilder.java
@@ -44,12 +44,12 @@
         throws Exception
     {
         Class<?> adapterImplClass = b.loadClass(srvMeta.getString(Params.impl));
-        String[] adapterService = srvMeta.getStrings(Params.adapterService, null);
-        Dictionary<String, Object> adapterProperties = srvMeta.getDictionary(Params.adapterProperties, null);
+        String[] provides = srvMeta.getStrings(Params.provides, null);
+        Dictionary<String, Object> adapterProperties = srvMeta.getDictionary(Params.properties, null);
         Class<?> adapteeService = b.loadClass(srvMeta.getString(Params.adapteeService));
         String adapteeFilter = srvMeta.getString(Params.adapteeFilter, null);     
         Service service = dm.createAdapterService(adapteeService, adapteeFilter)
-                            .setInterface(adapterService, adapterProperties);
+                            .setInterface(provides, adapterProperties);
         String factoryMethod = srvMeta.getString(Params.factoryMethod, null);
         if (factoryMethod == null)
         {
diff --git a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/BundleAdapterServiceBuilder.java b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/BundleAdapterServiceBuilder.java
index 181d197..d00c9b6 100644
--- a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/BundleAdapterServiceBuilder.java
+++ b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/BundleAdapterServiceBuilder.java
@@ -42,11 +42,11 @@
         int stateMask = srvMeta.getInt(Params.stateMask, Bundle.INSTALLED | Bundle.RESOLVED | Bundle.ACTIVE);
         String filter = srvMeta.getString(Params.filter, null);
         Class<?> adapterImplClass = b.loadClass(srvMeta.getString(Params.impl));
-        String[] service = srvMeta.getStrings(Params.service, null);
+        String[] provides = srvMeta.getStrings(Params.provides, null);
         Dictionary<String, Object> properties = srvMeta.getDictionary(Params.properties, null);
         boolean propagate = "true".equals(srvMeta.getString(Params.propagate, "false"));
         Service srv = dm.createBundleAdapterService(stateMask, filter, propagate)
-                            .setInterface(service, properties);
+                            .setInterface(provides, properties);
         String factoryMethod = srvMeta.getString(Params.factoryMethod, null);
         if (factoryMethod == null)
         {
diff --git a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/FactoryConfigurationAdapterServiceBuilder.java b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/FactoryConfigurationAdapterServiceBuilder.java
index 36ee018..5937577 100644
--- a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/FactoryConfigurationAdapterServiceBuilder.java
+++ b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/FactoryConfigurationAdapterServiceBuilder.java
@@ -42,11 +42,11 @@
         Class<?> implClass = b.loadClass(srvMeta.getString(Params.impl));
         String factoryPid = srvMeta.getString(Params.factoryPid);
         String updated = srvMeta.getString(Params.updated);
-        String[] services = srvMeta.getStrings(Params.service, null);
+        String[] provides = srvMeta.getStrings(Params.provides, null);
         Dictionary<String, Object> properties = srvMeta.getDictionary(Params.properties, null);
         boolean propagate = "true".equals(srvMeta.getString(Params.propagate, "false"));
         Service srv = dm.createFactoryConfigurationAdapterService(factoryPid, updated, propagate)
-                        .setInterface(services, properties);
+                        .setInterface(provides, properties);
         String factoryMethod = srvMeta.getString(Params.factoryMethod, null);
         if (factoryMethod == null)
         {
diff --git a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/Params.java b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/Params.java
index 1f6e8f3..d2efcc8 100644
--- a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/Params.java
+++ b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/Params.java
@@ -44,8 +44,6 @@
     propagate,
     updated,
     timeout,
-    adapterService,
-    adapterProperties,
     adapteeService,
     adapteeFilter,
     stateMask,
diff --git a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ResourceAdapterServiceBuilder.java b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ResourceAdapterServiceBuilder.java
index 601925e..6c74481 100644
--- a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ResourceAdapterServiceBuilder.java
+++ b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ResourceAdapterServiceBuilder.java
@@ -41,12 +41,12 @@
     {
         String filter = srvMeta.getString(Params.filter, null);
         Class<?> implClass = b.loadClass(srvMeta.getString(Params.impl));
-        String[] service = srvMeta.getStrings(Params.service, null);
+        String[] provides = srvMeta.getStrings(Params.provides, null);
         Dictionary<String, Object> properties = srvMeta.getDictionary(Params.properties, null);
         boolean propagate = "true".equals(srvMeta.getString(Params.propagate, "false"));
         String changed = srvMeta.getString(Params.changed, null /* no change callback if not specified explicitly */);
         Service srv = dm.createResourceAdapterService(filter, propagate, null, changed)
-                        .setInterface(service, properties);       
+                        .setInterface(provides, properties);       
         String factoryMethod = srvMeta.getString(Params.factoryMethod, null);
         if (factoryMethod == null)
         {
diff --git a/dependencymanager/test/src/main/java/org/apache/felix/dm/test/bundle/annotation/adapter/ServiceProviderAdapter.java b/dependencymanager/test/src/main/java/org/apache/felix/dm/test/bundle/annotation/adapter/ServiceProviderAdapter.java
index 48bb7e6..d570810 100644
--- a/dependencymanager/test/src/main/java/org/apache/felix/dm/test/bundle/annotation/adapter/ServiceProviderAdapter.java
+++ b/dependencymanager/test/src/main/java/org/apache/felix/dm/test/bundle/annotation/adapter/ServiceProviderAdapter.java
@@ -23,7 +23,7 @@
 import org.apache.felix.dm.annotation.api.ServiceDependency;
 import org.apache.felix.dm.test.bundle.annotation.sequencer.Sequencer;
 
-@AdapterService(adapteeService = ServiceInterface.class, adapterProperties={@Property(name="param2", value="value2")})
+@AdapterService(adapteeService = ServiceInterface.class, properties={@Property(name="param2", value="value2")})
 public class ServiceProviderAdapter implements ServiceInterface3
 {
     // This is the adapted service
diff --git a/dependencymanager/test/src/main/java/org/apache/felix/dm/test/bundle/annotation/extraproperties/ExtraAdapterServiceProperties.java b/dependencymanager/test/src/main/java/org/apache/felix/dm/test/bundle/annotation/extraproperties/ExtraAdapterServiceProperties.java
index 0fa83ff..12588bb 100644
--- a/dependencymanager/test/src/main/java/org/apache/felix/dm/test/bundle/annotation/extraproperties/ExtraAdapterServiceProperties.java
+++ b/dependencymanager/test/src/main/java/org/apache/felix/dm/test/bundle/annotation/extraproperties/ExtraAdapterServiceProperties.java
@@ -48,7 +48,7 @@
     {
     }
     
-    @AdapterService(adapteeService=Provider.class, adapterProperties={@Property(name="foo2", value="bar2")})
+    @AdapterService(provides=Provider2.class, properties={@Property(name="foo2", value="bar2")}, adapteeService=Provider.class)
     public static class Provider2Impl implements Provider2
     {
         protected Provider m_adaptee;
