You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pd...@apache.org on 2013/10/16 22:39:59 UTC

svn commit: r1532897 - /felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/api/MultipleExtraDependencyTest2.java

Author: pderop
Date: Wed Oct 16 20:39:58 2013
New Revision: 1532897

URL: http://svn.apache.org/r1532897
Log:
Atomically add extra dependencies from component's init methods.

Modified:
    felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/api/MultipleExtraDependencyTest2.java

Modified: felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/api/MultipleExtraDependencyTest2.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/api/MultipleExtraDependencyTest2.java?rev=1532897&r1=1532896&r2=1532897&view=diff
==============================================================================
--- felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/api/MultipleExtraDependencyTest2.java (original)
+++ felix/trunk/dependencymanager/test/src/test/java/org/apache/felix/dm/test/integration/api/MultipleExtraDependencyTest2.java Wed Oct 16 20:39:58 2013
@@ -18,7 +18,9 @@
  */
 package org.apache.felix.dm.test.integration.api;
 
+import java.util.ArrayList;
 import java.util.Hashtable;
+import java.util.List;
 
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
@@ -159,16 +161,18 @@ public class MultipleExtraDependencyTest
         public void init(Component c)
         {
             DependencyManager m = c.getDependencyManager();
-            c.add(m_d1 = m.createServiceDependency()
-                  .setService(Sequencer.class)
-                  .setRequired(true)
-                  .setInstanceBound(true)
-                  .setAutoConfig("m_sequencer"));
-            c.add(m_d2 = m.createServiceDependency()
-                  .setService(ServiceProvider2.class)
-                  .setRequired(true)
-                  .setInstanceBound(true)
-                  .setCallbacks("bind", "unbind"));
+            List<ServiceDependency> l = new ArrayList<ServiceDependency>();
+            l.add(m_d1 = m.createServiceDependency()
+                    .setService(Sequencer.class)
+                    .setRequired(true)
+                    .setInstanceBound(true)
+                    .setAutoConfig("m_sequencer"));
+            l.add(m_d2 = m.createServiceDependency()
+                    .setService(ServiceProvider2.class)
+                    .setRequired(true)
+                    .setInstanceBound(true)
+                    .setCallbacks("bind", "unbind"));
+            c.add(l);
         }
         
         void bind(ServiceProvider2 provider2)
@@ -178,6 +182,8 @@ public class MultipleExtraDependencyTest
 
         void start()
         {
+            m_d1.setInstanceBound(false);
+            m_d2.setInstanceBound(false);
             m_serviceProvider2.step(4);
             m_sequencer.step(5);
         }
@@ -209,16 +215,19 @@ public class MultipleExtraDependencyTest
         {
             System.out.println("ServiceProvider2.init");
             DependencyManager m = c.getDependencyManager();
-            c.add(m_d1 = m.createServiceDependency()
+            List<ServiceDependency> l = new ArrayList<ServiceDependency>();
+            
+            l.add(m_d1 = m.createServiceDependency()
                   .setService(Runnable.class, "(foo=bar)")
                   .setRequired(false)
                   .setInstanceBound(true)
                   .setAutoConfig("m_runnable"));
-            c.add(m_d2 = m.createServiceDependency()
+            l.add(m_d2 = m.createServiceDependency()
                   .setService(Sequencer.class)
                   .setRequired(true)
                   .setInstanceBound(true)
                   .setCallbacks("bind", null));
+            c.add(l);
         }
         
         void bind(Sequencer seq)
@@ -231,6 +240,8 @@ public class MultipleExtraDependencyTest
         void start()
         {
             System.out.println("ServiceProvider2.start: m_runnable=" + m_runnable + ", m_sequencer = " + m_sequencer);
+            m_d1.setInstanceBound(false);
+            m_d2.setInstanceBound(false);
             m_sequencer.step(3);
             m_runnable.run(); // NullObject
         }