fixed bug: configuration dependencies were added twice in the service

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@954301 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/Activator.java b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/Activator.java
index 82dde28..f3236dc 100644
--- a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/Activator.java
+++ b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/Activator.java
@@ -40,8 +40,6 @@
         // If the "dm.log=true" parameter is configured in the OSGi config.properties
         // then, we'll wait for the LogService, else we'll use an optional dependency over it,
         // and we'll eventually use a Null LogService Object.
-        // Notice that the Felix log service must also be configured from the OSGi config.properites, using
-        // the "org.apache.felix.log.storeDebug=true" property, in order to display DEBUG log levels.
 
         boolean logActive = "true".equals(context.getProperty("dm.log"));
         dm.add(createService()
diff --git a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceBuilder.java b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceBuilder.java
index 47aa2b5..bd435c6 100644
--- a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceBuilder.java
+++ b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceBuilder.java
@@ -60,11 +60,11 @@
             service.setImplementation(b.loadClass(impl));
             service.setComposition(composition);
             service.setInterface(provide, serviceProperties);
+            // Adds dependencies (except named dependencies, which are managed by the lifecycle handler).
+            addUnamedDependencies(b, dm, service, srvMeta, depsMeta);
             // Creates a ServiceHandler, which will filter all service lifecycle callbacks.
             ServiceLifecycleHandler lfcleHandler = new ServiceLifecycleHandler(service, b, dm, srvMeta, depsMeta);
             service.setCallbacks(lfcleHandler, "init", "start", "stop", "destroy");
-            // Adds dependencies (except named dependencies, which are managed by the lifecycle handler).
-            addUnamedDependencies(b, dm, service, srvMeta, depsMeta);
         }
         else
         {
diff --git a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceLifecycleHandler.java b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceLifecycleHandler.java
index d9f0976..89c1a33 100644
--- a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceLifecycleHandler.java
+++ b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceLifecycleHandler.java
@@ -95,7 +95,7 @@
     private String m_destroy;
     private MetaData m_srvMeta;
     private List<MetaData> m_depsMeta;
-    private List<Dependency> m_deps = new ArrayList<Dependency>();
+    private List<Dependency> m_namedDeps = new ArrayList<Dependency>();
     private Bundle m_bundle;
 
     public ServiceLifecycleHandler(Service srv, Bundle srvBundle, DependencyManager dm,
@@ -108,24 +108,6 @@
         m_stop = srvMeta.getString(Params.stop, null);
         m_destroy = srvMeta.getString(Params.destroy, null);
         m_bundle = srvBundle;
-
-        // Plug configuration dependencies now, and remove them from the dependency list.
-        // (we want these dependencies to be injected before the init method).
-        
-        String confDependency = DependencyBuilder.DependencyType.ConfigurationDependency.toString();
-        Iterator<MetaData> dependencies = depMeta.iterator();
-        while (dependencies.hasNext()) 
-        {
-            MetaData dependency = dependencies.next();
-            if (dependency.getString(Params.type).equals(confDependency))
-            {
-                // Register Configuration dependency now.
-                Dependency dp = new DependencyBuilder(dependency).build(m_bundle, dm);
-                srv.add(dp);
-                dependencies.remove();
-            }
-        }
-        
         m_depsMeta = depMeta;
     }
 
@@ -173,7 +155,7 @@
                                    "ServiceLifecycleHandler.init: adding dependency %s into service %s",
                                    dependency, m_srvMeta);
                 Dependency d = depBuilder.build(m_bundle, dm, true);
-                m_deps.add(d);
+                m_namedDeps.add(d);
                 service.add(d);
             }
         }
@@ -184,7 +166,7 @@
     {
         // Remove "instance bound" flag from all dependencies, because we want to be deactivated
         // once we lose one of the deps ...
-        Iterator it = m_deps.iterator();
+        Iterator it = m_namedDeps.iterator();
         while (it.hasNext())
         {
             Dependency d = (Dependency) it.next();