fixed aspect service parsing (the lifecycle callbacks, and composition method name was not parsed)

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@910045 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java
index 339d31a..79d2b87 100644
--- a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java
+++ b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ComponentManager.java
@@ -263,12 +263,11 @@
         }
 
         // Set service callbacks
-        String init = parser.getString(DescriptorParam.init, null);
-        String start = parser.getString(DescriptorParam.start, null);
-        String stop = parser.getString(DescriptorParam.stop, null);
-        String destroy = parser.getString(DescriptorParam.destroy, null);
-        service.setCallbacks(init, start, stop, destroy);
-
+        setServiceCallbacks(service, parser);
+        
+        // Set composition
+        setServiceComposition(service, parser);
+        
         // Set service interface with associated service properties
         Dictionary<String, String> serviceProperties = parser.getDictionary(
             DescriptorParam.properties, null);
@@ -278,13 +277,54 @@
             service.setInterface(provides, serviceProperties);
         }
 
-        // Set Composition
+        return service;
+    }
+
+    /**
+     * Set Service callbacks, if provided from our Component descriptor
+     * @param service
+     * @param parser
+     */
+    private void setServiceCallbacks(Service service, DescriptorParser parser)
+    {
+        String init = parser.getString(DescriptorParam.init, null);
+        String start = parser.getString(DescriptorParam.start, null);
+        String stop = parser.getString(DescriptorParam.stop, null);
+        String destroy = parser.getString(DescriptorParam.destroy, null);
+        service.setCallbacks(init, start, stop, destroy);
+    }
+
+    /**
+     * Sets Service Composition, if provided from our Component descriptor.
+     * @param service
+     * @param parser
+     */
+    private void setServiceComposition(Service service, DescriptorParser parser)
+    {
         String composition = parser.getString(DescriptorParam.composition, null);
         if (composition != null)
         {
             service.setComposition(composition);
         }
+    }
 
+    /**
+     * Creates an Aspect Service.
+     * @param b
+     * @param dm
+     * @param parser
+     * @return
+     */
+    private Service createAspectService(Bundle b, DependencyManager dm, DescriptorParser parser)
+        throws ClassNotFoundException
+    {
+        Class<?> serviceInterface = b.loadClass(parser.getString(DescriptorParam.service));
+        String serviceFilter = parser.getString(DescriptorParam.filter, null);
+        Class<?> aspectImplementation = b.loadClass(parser.getString(DescriptorParam.impl));
+        Dictionary<String, String> aspectProperties = parser.getDictionary(DescriptorParam.properties, null);
+        Service service = dm.createAspectService(serviceInterface, serviceFilter, aspectImplementation, aspectProperties);
+        setServiceCallbacks(service, parser);
+        setServiceComposition(service, parser);
         return service;
     }
 
@@ -376,22 +416,4 @@
         cd.setCallback(callback);
         return cd;
     }
-
-    /**
-     * Creates an Aspect Service.
-     * @param b
-     * @param dm
-     * @param parser
-     * @return
-     */
-    private Service createAspectService(Bundle b, DependencyManager dm, DescriptorParser parser)
-        throws ClassNotFoundException
-    {
-        Class<?> serviceInterface = b.loadClass(parser.getString(DescriptorParam.service));
-        String serviceFilter = parser.getString(DescriptorParam.filter, null);
-        Class<?> aspectImplementation = b.loadClass(parser.getString(DescriptorParam.impl));
-        Dictionary<String, String> aspectProperties = parser.getDictionary(DescriptorParam.properties, null);
-        Service service = dm.createAspectService(serviceInterface, serviceFilter, aspectImplementation, aspectProperties);
-        return service;
-    }
 }