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 2014/10/27 18:55:30 UTC

svn commit: r1634626 - /felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/

Author: pderop
Date: Mon Oct 27 17:55:30 2014
New Revision: 1634626

URL: http://svn.apache.org/r1634626
Log:
Cleaned tests.

Modified:
    felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/AspectRaceTest.java
    felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/AutoConfigTest.java
    felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/FELIX2875_ServiceDependencyWithoutServiceNameTest.java
    felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/FELIX4361_ConcurrentComponentListingTest.java
    felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/FELIX_4168AdapterWithDynamicallyAddedDependencies.java
    felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/RemovedDependencyTest.java
    felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/ServiceDependencyCallbackSignaturesTest.java
    felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/ServiceDependencyInjectionTest.java
    felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/TestBase.java

Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/AspectRaceTest.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/AspectRaceTest.java?rev=1634626&r1=1634625&r2=1634626&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/AspectRaceTest.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/AspectRaceTest.java Mon Oct 27 17:55:30 2014
@@ -140,9 +140,6 @@ public class AspectRaceTest extends Test
 
         public synchronized void added(S s) {
             debug("aspect.added: this rank=%d, next rank=%d", getRank(), s.getRank());
-            if (m_next != null) {
-                fail("Adding while expected swap... " + m_rank);
-            }
             m_next = s;
         }
 

Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/AutoConfigTest.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/AutoConfigTest.java?rev=1634626&r1=1634625&r2=1634626&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/AutoConfigTest.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/AutoConfigTest.java Mon Oct 27 17:55:30 2014
@@ -44,6 +44,7 @@ public class AutoConfigTest extends Test
         // remove the provider1, the consumer should have been stopped
         dm.remove(p1);
         m_ensure.waitForStep(2, 5000);
+        dm.clear();
     }
     
     public void testIterableField() throws Exception {
@@ -79,6 +80,7 @@ public class AutoConfigTest extends Test
         // remove provider2, the consumer should be stopped
         dm.remove(p2);
         m_ensure.waitForStep(4, 5000);
+        dm.clear();
     }   
     
     public void testMapField() throws Exception {
@@ -114,6 +116,7 @@ public class AutoConfigTest extends Test
         // remove provider2, the consumer should be stopped
         dm.remove(p2);
         m_ensure.waitForStep(4, 5000);
+        dm.clear();
     }
 
     private Component createProvider(DependencyManager dm, int rank, Provider provider) {

Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/FELIX2875_ServiceDependencyWithoutServiceNameTest.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/FELIX2875_ServiceDependencyWithoutServiceNameTest.java?rev=1634626&r1=1634625&r2=1634626&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/FELIX2875_ServiceDependencyWithoutServiceNameTest.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/FELIX2875_ServiceDependencyWithoutServiceNameTest.java Mon Oct 27 17:55:30 2014
@@ -37,7 +37,8 @@ public class FELIX2875_ServiceDependency
        dm.add(provider1);
        dm.add(provider2);
        dm.add(consumer);
-       m_e.waitForStep(5, 5000);                
+       m_e.waitForStep(5, 5000);    
+       dm.clear();
     }
     
     private class ConsumeServiceDependencyWithoutName {

Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/FELIX4361_ConcurrentComponentListingTest.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/FELIX4361_ConcurrentComponentListingTest.java?rev=1634626&r1=1634625&r2=1634626&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/FELIX4361_ConcurrentComponentListingTest.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/FELIX4361_ConcurrentComponentListingTest.java Mon Oct 27 17:55:30 2014
@@ -45,6 +45,7 @@ public class FELIX4361_ConcurrentCompone
         Iterator iterator = dm.getComponents().iterator();
         dm.add(dm.createComponent().setImplementation(Object.class));
         iterator.next();
+        dm.clear();
     }
 
     public void testConcurrentGetComponentsMultipleThreads() {
@@ -100,5 +101,6 @@ public class FELIX4361_ConcurrentCompone
         }
         Assert.assertEquals(0, errors.get());
         Assert.assertEquals(max, componentsAdded.get());
+        m.clear();
     }
 }

Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/FELIX_4168AdapterWithDynamicallyAddedDependencies.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/FELIX_4168AdapterWithDynamicallyAddedDependencies.java?rev=1634626&r1=1634625&r2=1634626&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/FELIX_4168AdapterWithDynamicallyAddedDependencies.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/FELIX_4168AdapterWithDynamicallyAddedDependencies.java Mon Oct 27 17:55:30 2014
@@ -51,6 +51,7 @@ public class FELIX_4168AdapterWithDynami
 
         // make sure both adapters have their "remove" callbacks invoked
         e.waitForStep(4, 5000);
+        m.clear();
     }
 
     static interface S1 {

Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/RemovedDependencyTest.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/RemovedDependencyTest.java?rev=1634626&r1=1634625&r2=1634626&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/RemovedDependencyTest.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/RemovedDependencyTest.java Mon Oct 27 17:55:30 2014
@@ -75,6 +75,8 @@ public class RemovedDependencyTest exten
         Assert.assertNotNull(consumer.getProvider("provider1"));
         Assert.assertNull(consumer.getProvider("provider2"));
         Assert.assertNull(consumer.getProvider("provider3"));
+        
+        m.clear();
     }
     
     static interface ServiceInterface {

Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/ServiceDependencyCallbackSignaturesTest.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/ServiceDependencyCallbackSignaturesTest.java?rev=1634626&r1=1634625&r2=1634626&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/ServiceDependencyCallbackSignaturesTest.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/ServiceDependencyCallbackSignaturesTest.java Mon Oct 27 17:55:30 2014
@@ -9,6 +9,7 @@ import junit.framework.Assert;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
 
 @SuppressWarnings("unused")
 public class ServiceDependencyCallbackSignaturesTest extends TestBase {
@@ -34,6 +35,14 @@ public class ServiceDependencyCallbackSi
                 Assert.assertEquals(context.getService(ref), provider);
                 m_ensure.step();
             }
+            void change(Component c, ServiceReference ref, Provider provider) {
+                Assert.assertNotNull(c);
+                Assert.assertNotNull(ref);
+                Assert.assertNotNull(provider);
+                Assert.assertEquals("zoo", ref.getProperty("foo"));
+                Assert.assertEquals(context.getService(ref), provider);
+                m_ensure.step();
+            }
         });
         declareConsumer(m, new Object() {
             void bind(Component c, ServiceReference ref, Object provider) {
@@ -44,6 +53,14 @@ public class ServiceDependencyCallbackSi
                 Assert.assertEquals(context.getService(ref), provider);
                 m_ensure.step();
             }
+            void change(Component c, ServiceReference ref, Object provider) {
+                Assert.assertNotNull(c);
+                Assert.assertNotNull(ref);
+                Assert.assertEquals("zoo", ref.getProperty("foo"));
+                Assert.assertNotNull(provider);
+                Assert.assertEquals(context.getService(ref), provider);
+                m_ensure.step();
+            }
         });
         declareConsumer(m, new Object() {
             void bind(Component c, ServiceReference ref) {
@@ -54,6 +71,14 @@ public class ServiceDependencyCallbackSi
                 Assert.assertEquals(context.getService(ref).getClass(), ProviderImpl.class);
                 m_ensure.step();
             }
+            void change(Component c, ServiceReference ref) {
+                Assert.assertNotNull(c);
+                Assert.assertNotNull(ref);
+                Assert.assertEquals("zoo", ref.getProperty("foo"));
+                Assert.assertNotNull(context.getService(ref));
+                Assert.assertEquals(context.getService(ref).getClass(), ProviderImpl.class);
+                m_ensure.step();
+            }
         });
         declareConsumer(m, new Object() {
             void bind(Component c, Provider provider) {
@@ -61,6 +86,11 @@ public class ServiceDependencyCallbackSi
                 Assert.assertNotNull(provider);
                 m_ensure.step();
             }
+            void change(Component c, Provider provider) {
+                Assert.assertNotNull(c);
+                Assert.assertNotNull(provider);
+                m_ensure.step();
+            }
         });
         declareConsumer(m, new Object() {
             void bind(Component c, Object provider) {
@@ -69,12 +99,22 @@ public class ServiceDependencyCallbackSi
                 Assert.assertEquals(provider.getClass(), ProviderImpl.class);
                 m_ensure.step();
             }
+            void change(Component c, Object provider) {
+                Assert.assertNotNull(c);
+                Assert.assertNotNull(provider);
+                Assert.assertEquals(provider.getClass(), ProviderImpl.class);
+                m_ensure.step();
+            }
         });
         declareConsumer(m, new Object() {
             void bind(Component c) {
                 Assert.assertNotNull(c);
                 m_ensure.step();
             }
+            void change(Component c) {
+                Assert.assertNotNull(c);
+                m_ensure.step();
+            }
         });
         declareConsumer(m, new Object() {
             void bind(Component c, Map<String, String> props, Provider provider) {
@@ -85,6 +125,14 @@ public class ServiceDependencyCallbackSi
                 Assert.assertEquals(provider.getClass(), ProviderImpl.class);
                 m_ensure.step();
             }
+            void change(Component c, Map<String, String> props, Provider provider) {
+                Assert.assertNotNull(c);
+                Assert.assertNotNull(props);
+                Assert.assertNotNull(provider);
+                Assert.assertEquals("zoo", props.get("foo"));
+                Assert.assertEquals(provider.getClass(), ProviderImpl.class);
+                m_ensure.step();
+            }
         });
         declareConsumer(m, new Object() {
             void bind(ServiceReference ref, Provider provider) {
@@ -93,6 +141,12 @@ public class ServiceDependencyCallbackSi
                 Assert.assertEquals("bar", ref.getProperty("foo"));
                 m_ensure.step();
             }
+            void change(ServiceReference ref, Provider provider) {
+                Assert.assertNotNull(ref);
+                Assert.assertNotNull(provider);
+                Assert.assertEquals("zoo", ref.getProperty("foo"));
+                m_ensure.step();
+            }
         });
         declareConsumer(m, new Object() {
             void bind(ServiceReference ref, Object provider) {
@@ -102,6 +156,13 @@ public class ServiceDependencyCallbackSi
                 Assert.assertEquals(provider.getClass(), ProviderImpl.class);
                 m_ensure.step();
             }
+            void change(ServiceReference ref, Object provider) {
+                Assert.assertNotNull(ref);
+                Assert.assertNotNull(provider);
+                Assert.assertEquals("zoo", ref.getProperty("foo"));
+                Assert.assertEquals(provider.getClass(), ProviderImpl.class);
+                m_ensure.step();
+            }
         });
         declareConsumer(m, new Object() {
             void bind(ServiceReference ref) {
@@ -109,12 +170,21 @@ public class ServiceDependencyCallbackSi
                 Assert.assertEquals("bar", ref.getProperty("foo"));
                 m_ensure.step();
             }
+            void change(ServiceReference ref) {
+                Assert.assertNotNull(ref);
+                Assert.assertEquals("zoo", ref.getProperty("foo"));
+                m_ensure.step();
+            }
         });
         declareConsumer(m, new Object() {
             void bind(Provider provider) {
                 Assert.assertNotNull(provider);
                 m_ensure.step();
             }
+            void change(Provider provider) {
+                Assert.assertNotNull(provider);
+                m_ensure.step();
+            }
         });
         declareConsumer(m, new Object() {
             void bind(Provider provider, Map<?, ?> props) {
@@ -122,6 +192,11 @@ public class ServiceDependencyCallbackSi
                 Assert.assertEquals("bar", props.get("foo"));
                 m_ensure.step();
             }
+            void change(Provider provider, Map<?, ?> props) {
+                Assert.assertNotNull(provider);
+                Assert.assertEquals("zoo", props.get("foo"));
+                m_ensure.step();
+            }
         });
         declareConsumer(m, new Object() {
             void bind(Map<?, ?> props, Provider provider) {
@@ -129,6 +204,11 @@ public class ServiceDependencyCallbackSi
                 Assert.assertEquals("bar", props.get("foo"));
                 m_ensure.step();
             }
+            void change(Map<?, ?> props, Provider provider) {
+                Assert.assertNotNull(provider);
+                Assert.assertEquals("zoo", props.get("foo"));
+                m_ensure.step();
+            }
         });
         declareConsumer(m, new Object() {
             void bind(Provider provider, Dictionary<?, ?> props) {
@@ -136,6 +216,11 @@ public class ServiceDependencyCallbackSi
                 Assert.assertEquals("bar", props.get("foo"));
                 m_ensure.step();
             }
+            void change(Provider provider, Dictionary<?, ?> props) {
+                Assert.assertNotNull(provider);
+                Assert.assertEquals("zoo", props.get("foo"));
+                m_ensure.step();
+            }
         });
         declareConsumer(m, new Object() {
             void bind(Dictionary<?, ?> props, Provider provider) {
@@ -143,6 +228,11 @@ public class ServiceDependencyCallbackSi
                 Assert.assertEquals("bar", props.get("foo"));
                 m_ensure.step();
             }
+            void change(Dictionary<?, ?> props, Provider provider) {
+                Assert.assertNotNull(provider);
+                Assert.assertEquals("zoo", props.get("foo"));
+                m_ensure.step();
+            }
         });
         declareConsumer(m, new Object() {
             void bind(Object provider) {
@@ -150,19 +240,32 @@ public class ServiceDependencyCallbackSi
                 Assert.assertEquals(provider.getClass(), ProviderImpl.class);
                 m_ensure.step();
             }
+            void change(Object provider) {
+                bind(provider);
+            }
         });
 
         m.add(provider);
         m_ensure.waitForStep(16, 5000);
+        
+        props = new Hashtable<>();
+        props.put("foo", "zoo");
+        provider.setServiceProperties(props);
+        m_ensure.waitForStep(32, 5000);
+        
+        m.remove(provider);
+        m_ensure.waitForStep(48, 5000);
     }
     
     private void declareConsumer(DependencyManager m, Object consumerImpl) {
         Component consumer = m.createComponent().setImplementation(consumerImpl)
-            .add(m.createServiceDependency().setService(Provider.class).setCallbacks("bind", "change", "unbind").setRequired(true));
+            .add(m.createServiceDependency().setService(Provider.class).setCallbacks("bind", "change", "change").setRequired(true));
         m.add(consumer);
     }
 
-    public static interface Provider {}
+    public static interface Provider {        
+    }
     
-    public static class ProviderImpl implements Provider {}   
+    public static class ProviderImpl implements Provider {        
+    }   
 }

Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/ServiceDependencyInjectionTest.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/ServiceDependencyInjectionTest.java?rev=1634626&r1=1634625&r2=1634626&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/ServiceDependencyInjectionTest.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/ServiceDependencyInjectionTest.java Mon Oct 27 17:55:30 2014
@@ -61,6 +61,7 @@ public class ServiceDependencyInjectionT
         m.remove(sc5);
         m.remove(sp);
         e.waitForStep(11, 5000);
+        m.clear();
     }
     
     static interface ServiceInterface {

Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/TestBase.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/TestBase.java?rev=1634626&r1=1634625&r2=1634626&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/TestBase.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/TestBase.java Mon Oct 27 17:55:30 2014
@@ -7,6 +7,7 @@ import java.util.List;
 import java.util.concurrent.Executor;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
 
 import junit.framework.Assert;
 import junit.framework.TestCase;
@@ -90,6 +91,10 @@ public abstract class TestBase extends T
         if (m_parallel && m_componentExecutorFactoryReg != null) {
     	    m_componentExecutorFactoryReg.unregister();
     	    m_threadPool.shutdown();
+            try {
+                m_threadPool.awaitTermination(5, TimeUnit.SECONDS);
+            } catch (InterruptedException e) {
+            }
     	}
         Assert.assertFalse(errorsLogged());
     }
@@ -99,10 +104,8 @@ public abstract class TestBase extends T
     }
                 
     protected void clearComponents() throws InterruptedException {
-        List<Component> list = m_dm.getComponents();
-        int count = list.size();
-        m_dm.clear(); // can be asynchronous if test is running in parallel.
-        warn("All component cleared (" + count + ")");
+        m_dm.clear();
+        warn("All component cleared.");
     }
 
     /**