Author: pderop
Date: Sun Jun 13 20:32:36 2010
New Revision: 954301

URL: http://svn.apache.org/viewvc?rev=954301&view=rev
Log:
fixed bug: configuration dependencies were added twice in the service

Modified:
    
felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/Activator.java
    
felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceBuilder.java
    
felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceLifecycleHandler.java

Modified: 
felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/Activator.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/Activator.java?rev=954301&r1=954300&r2=954301&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/Activator.java
 (original)
+++ 
felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/Activator.java
 Sun Jun 13 20:32:36 2010
@@ -40,8 +40,6 @@ public class Activator extends Dependenc
         // 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()

Modified: 
felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceBuilder.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceBuilder.java?rev=954301&r1=954300&r2=954301&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceBuilder.java
 (original)
+++ 
felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceBuilder.java
 Sun Jun 13 20:32:36 2010
@@ -60,11 +60,11 @@ public class ServiceBuilder extends Serv
             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
         {

Modified: 
felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceLifecycleHandler.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceLifecycleHandler.java?rev=954301&r1=954300&r2=954301&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceLifecycleHandler.java
 (original)
+++ 
felix/trunk/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceLifecycleHandler.java
 Sun Jun 13 20:32:36 2010
@@ -95,7 +95,7 @@ public class ServiceLifecycleHandler
     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 @@ public class ServiceLifecycleHandler
         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 @@ public class ServiceLifecycleHandler
                                    "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 @@ public class ServiceLifecycleHandler
     {
         // 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();


Reply via email to