Fixed MultipleExtraDependencyTest2. Code cleanup.


git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1532237 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/AdapterAnnotationTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/AdapterAnnotationTest.java
index 43d4d81..2e6b9e7 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/AdapterAnnotationTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/AdapterAnnotationTest.java
@@ -34,7 +34,11 @@
  * Use case: Verify Aspect Annotations usage.
  */
 @RunWith(PaxExam.class)
-public class AdapterAnnotationTest extends AnnotationBase {
+public class AdapterAnnotationTest extends TestBase {
+    public AdapterAnnotationTest() {
+        super(true /* start test components bundle */);
+    }
+
     /**
      * Check if an adapter gets injected with its adaptee using default auto config mode.
      * @throws Throwable 
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/AnnotationBase.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/AnnotationBase.java
deleted file mode 100644
index a3657d9..0000000
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/AnnotationBase.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.felix.dependencymanager.test2.integration.annotations;
-
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
-
-public class AnnotationBase extends TestBase {
-    protected boolean startComponents() {
-        return true;
-    }
-}
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/AspectAnnotationTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/AspectAnnotationTest.java
index 7309964..e6cf886 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/AspectAnnotationTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/AspectAnnotationTest.java
@@ -18,12 +18,12 @@
 */
 package org.apache.felix.dependencymanager.test2.integration.annotations;
 
-import org.apache.felix.dependencymanager.test2.components.Ensure;
 import org.apache.felix.dependencymanager.test2.components.AspectAnnotation.ServiceAspect1;
 import org.apache.felix.dependencymanager.test2.components.AspectAnnotation.ServiceAspect2;
 import org.apache.felix.dependencymanager.test2.components.AspectAnnotation.ServiceAspect3;
 import org.apache.felix.dependencymanager.test2.components.AspectAnnotation.ServiceConsumer;
 import org.apache.felix.dependencymanager.test2.components.AspectAnnotation.ServiceProvider;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
 import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -34,7 +34,11 @@
  * Use case: Verify Aspect Annotations usage.
  */
 @RunWith(PaxExam.class)
-public class AspectAnnotationTest extends AnnotationBase {
+public class AspectAnnotationTest extends TestBase {
+    public AspectAnnotationTest() {
+        super(true /* start test components bundle */);
+    }
+
     @Test
     public void testAspectChain() throws Throwable {
         Ensure e = new Ensure();
@@ -57,7 +61,7 @@
         // Make sure that service aspect 1 has been called in ts removed and stop callbacks 
         e.waitForStep(8, 10000);
         e.ensure();
-        
+
         scSequencer.unregister();
         sa1Sequencer.unregister();
         sa2Sequencer.unregister();
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/AspectLifecycleAnnotationTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/AspectLifecycleAnnotationTest.java
index 750c1f1..5c8074b 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/AspectLifecycleAnnotationTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/AspectLifecycleAnnotationTest.java
@@ -32,16 +32,20 @@
  * (init/start/stop/destroy methods).
  */
 @RunWith(PaxExam.class)
-public class AspectLifecycleAnnotationTest extends AnnotationBase {
+public class AspectLifecycleAnnotationTest extends TestBase {
+    public AspectLifecycleAnnotationTest() {
+        super(true /* start test components bundle */);
+    }
+
     @Test
     public void testAnnotatedAspect() {
         Ensure e = new Ensure();
         // Provide the Sequencer server to the ServiceProvider service
-        ServiceRegistration sr1 = register(e, ServiceProvider.ENSURE);                
+        ServiceRegistration sr1 = register(e, ServiceProvider.ENSURE);
         // Check if the ServiceProvider has been injected in the AspectTest service.
         e.waitForStep(1, 10000);
         // Provide the Sequencer server to the ServiceProviderAspect service
-        ServiceRegistration sr2 = register(e, ServiceProviderAspect.ENSURE);        
+        ServiceRegistration sr2 = register(e, ServiceProviderAspect.ENSURE);
         // Check if the AspectTest has been injected with the aspect
         e.waitForStep(3, 10000);
         // Stop the ServiceProviderAspect service.
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/AspectLifecycleWithDynamicProxyAnnotationTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/AspectLifecycleWithDynamicProxyAnnotationTest.java
index e5302d6..5028a1f 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/AspectLifecycleWithDynamicProxyAnnotationTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/AspectLifecycleWithDynamicProxyAnnotationTest.java
@@ -32,7 +32,11 @@
  * (init/start/stop/destroy methods).
  */
 @RunWith(PaxExam.class)
-public class AspectLifecycleWithDynamicProxyAnnotationTest extends AnnotationBase {
+public class AspectLifecycleWithDynamicProxyAnnotationTest extends TestBase {
+    public AspectLifecycleWithDynamicProxyAnnotationTest() {
+        super(true /* start test components bundle */);
+    }
+
     @Test
     public void testAnnotatedAspect() {
         Ensure e = new Ensure();
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/BundleDependencyAnnotationTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/BundleDependencyAnnotationTest.java
index 0d2b5d6..f157650 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/BundleDependencyAnnotationTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/BundleDependencyAnnotationTest.java
@@ -30,14 +30,18 @@
  * Use case: Verify Bundle Dependency annotations usage.
  */
 @RunWith(PaxExam.class)
-public class BundleDependencyAnnotationTest extends AnnotationBase {
+public class BundleDependencyAnnotationTest extends TestBase {
+    public BundleDependencyAnnotationTest() {
+        super(true /* start test components bundle */);
+    }
+
     /**
      * Tests a simple Consumer, which has a BundleDependency over the dependency manager bundle.
      */
     @Test
     public void testBundleDependencyAnnotation() {
         Ensure e = new Ensure();
-        ServiceRegistration sr = register(e, BundleDependencyAnnotation.ENSURE_CONSUMER);        
+        ServiceRegistration sr = register(e, BundleDependencyAnnotation.ENSURE_CONSUMER);
         e.waitForStep(1, 10000);
         stopTestComponentsBundle();
         e.waitForStep(2, 10000);
@@ -51,7 +55,7 @@
     @Test
     public void testBundleAdapterServiceAnnotation() throws Throwable {
         Ensure e = new Ensure();
-        ServiceRegistration sr = register(e, BundleDependencyAnnotation.ENSURE_ADAPTER);        
+        ServiceRegistration sr = register(e, BundleDependencyAnnotation.ENSURE_ADAPTER);
         e.waitForStep(3, 10000);
         e.ensure();
         sr.unregister();
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/CompositeAnnotationsTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/CompositeAnnotationsTest.java
index 90eaa01..049120d 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/CompositeAnnotationsTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/CompositeAnnotationsTest.java
@@ -18,10 +18,10 @@
 */
 package org.apache.felix.dependencymanager.test2.integration.annotations;
 
-import org.apache.felix.dependencymanager.test2.components.Ensure;
 import org.apache.felix.dependencymanager.test2.components.CompositeAnnotations.C1;
 import org.apache.felix.dependencymanager.test2.components.CompositeAnnotations.Dependency1;
 import org.apache.felix.dependencymanager.test2.components.CompositeAnnotations.Dependency2;
+import org.apache.felix.dependencymanager.test2.components.Ensure;
 import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -32,7 +32,11 @@
  * Use case: Verify Composite annotated services.
  */
 @RunWith(PaxExam.class)
-public class CompositeAnnotationsTest extends AnnotationBase {
+public class CompositeAnnotationsTest extends TestBase {
+    public CompositeAnnotationsTest() {
+        super(true /* start test components bundle */);
+    }
+
     @Test
     public void testComposite() {
         Ensure e = new Ensure();
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/ExtraServicePropertiesTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/ExtraServicePropertiesTest.java
index 301cb26..75185e0 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/ExtraServicePropertiesTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/ExtraServicePropertiesTest.java
@@ -33,7 +33,11 @@
  * Use case: Verify the a Service may provide its service properties dynamically from its start method.
  */
 @RunWith(PaxExam.class)
-public class ExtraServicePropertiesTest extends AnnotationBase {
+public class ExtraServicePropertiesTest extends TestBase {
+    public ExtraServicePropertiesTest() {
+        super(true /* start test components bundle */);
+    }
+
     /**
      * Tests if a Service can provide its service properties from its start method.
      */
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/FactoryConfigurationAdapterAnnotationTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/FactoryConfigurationAdapterAnnotationTest.java
index c934258..11e39a4 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/FactoryConfigurationAdapterAnnotationTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/FactoryConfigurationAdapterAnnotationTest.java
@@ -37,7 +37,11 @@
  * is created from Config Admin.
  */
 @RunWith(PaxExam.class)
-public class FactoryConfigurationAdapterAnnotationTest extends AnnotationBase {
+public class FactoryConfigurationAdapterAnnotationTest extends TestBase {
+    public FactoryConfigurationAdapterAnnotationTest() {
+        super(true /* start test components bundle */);
+    }
+
     @Test
     public void testFactoryConfigurationAdapterAnnotation() throws Throwable {
         Ensure e = new Ensure();
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/Felix4050Test.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/Felix4050Test.java
index 1d94357..ec912f8 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/Felix4050Test.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/Felix4050Test.java
@@ -32,7 +32,11 @@
  * configuring a named dependency.
  */
 @RunWith(PaxExam.class)
-public class Felix4050Test extends AnnotationBase {
+public class Felix4050Test extends TestBase {
+    public Felix4050Test() {
+        super(true /* start test components bundle */);
+    }
+
     @Test
     public void testFelix4050() {
         Ensure e = new Ensure();
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/MultipleAnnotationsTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/MultipleAnnotationsTest.java
index c971ab8..5e4fd5f 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/MultipleAnnotationsTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/MultipleAnnotationsTest.java
@@ -30,7 +30,11 @@
  * Use case: Verify complex Annotation usage.
  */
 @RunWith(PaxExam.class)
-public class MultipleAnnotationsTest extends AnnotationBase {
+public class MultipleAnnotationsTest extends TestBase {
+    public MultipleAnnotationsTest() {
+        super(true /* start test components bundle */);
+    }
+
     @Test
     public void testMultipleAnnotations() {
         Ensure e = new Ensure();
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/PropagateAnnotationTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/PropagateAnnotationTest.java
index 9439ecc..cf63740 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/PropagateAnnotationTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/PropagateAnnotationTest.java
@@ -30,7 +30,11 @@
  * Use case: Verify that dependency "propagate" option is properly propagating properties to provided service.
  */
 @RunWith(PaxExam.class)
-public class PropagateAnnotationTest extends AnnotationBase {
+public class PropagateAnnotationTest extends TestBase {
+    public PropagateAnnotationTest() {
+        super(true /* start test components bundle */);
+    }
+
     @Test
     public void testServiceDependencyPropagate() {
         Ensure e = new Ensure();
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/PublisherAnnotationTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/PublisherAnnotationTest.java
index 8ac6dda..0f37e54 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/PublisherAnnotationTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/PublisherAnnotationTest.java
@@ -32,7 +32,11 @@
 import org.osgi.framework.ServiceRegistration;
 
 @RunWith(PaxExam.class)
-public class PublisherAnnotationTest extends AnnotationBase {
+public class PublisherAnnotationTest extends TestBase {
+    public PublisherAnnotationTest() {
+        super(true /* start test components bundle */);
+    }
+
     /**
      * A Service that just registers/unregisters its service, using the @ServiceLifecycle annotation.
      */
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/ResourceAnnotationTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/ResourceAnnotationTest.java
index d03f168..737dfb1 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/ResourceAnnotationTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/ResourceAnnotationTest.java
@@ -30,7 +30,11 @@
  * Use case: Verify Bundle Dependency annotations usage.
  */
 @RunWith(PaxExam.class)
-public class ResourceAnnotationTest extends AnnotationBase {
+public class ResourceAnnotationTest extends TestBase {
+    public ResourceAnnotationTest() {
+        super(true /* start test components bundle */);
+    }
+
     /**
      * Tests a simple ResourceConsumer
      * @param context
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/ServiceFactoryAnnotationTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/ServiceFactoryAnnotationTest.java
index 4fa1635..8cceff1 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/ServiceFactoryAnnotationTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/ServiceFactoryAnnotationTest.java
@@ -34,7 +34,11 @@
 import org.osgi.framework.ServiceRegistration;
 
 @RunWith(PaxExam.class)
-public class ServiceFactoryAnnotationTest extends AnnotationBase {
+public class ServiceFactoryAnnotationTest extends TestBase {
+    public ServiceFactoryAnnotationTest() {
+        super(true /* start test components bundle */);
+    }
+
     private final Ensure m_ensure = new Ensure();
     @Test
     public void testServiceFactory() {
@@ -45,7 +49,8 @@
         m.add(m.createComponent()
                 .setImplementation(this)
                 .add(m.createServiceDependency()
-                        .setService(Set.class, "(" + Component.FACTORY_NAME + "=" + ServiceFactoryAnnotation.FACTORY + ")")
+                        .setService(Set.class,
+                                "(" + Component.FACTORY_NAME + "=" + ServiceFactoryAnnotation.FACTORY + ")")
                         .setRequired(true).setCallbacks("bindFactory", null)));
 
         // Check if the test.annotation components have been initialized orderly
@@ -59,7 +64,7 @@
         Hashtable conf = new Hashtable();
         conf.put("instance.id", "instance");
         conf.put(".private.param", "private");
-        Assert.assertTrue(factory.add(conf));        
+        Assert.assertTrue(factory.add(conf));
         m_ensure.waitForStep(4, 5000);
 
         // update the service instance
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/SimpleAnnotationsTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/SimpleAnnotationsTest.java
index df42abd..ae96b79 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/SimpleAnnotationsTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/SimpleAnnotationsTest.java
@@ -19,7 +19,6 @@
 package org.apache.felix.dependencymanager.test2.integration.annotations;
 
 import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.components.SimpleAnnotations;
 import org.apache.felix.dependencymanager.test2.components.SimpleAnnotations.Consumer;
 import org.apache.felix.dependencymanager.test2.components.SimpleAnnotations.Producer;
 import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
@@ -32,15 +31,17 @@
  * Use case: Ensure that a Provider can be injected into a Consumer, using simple DM annotations.
  */
 @RunWith(PaxExam.class)
-public class SimpleAnnotationsTest extends AnnotationBase
-{    
-	@Test
-	public void testSimpleAnnotations() throws Throwable
-    {
-	    Ensure e = new Ensure();
-		ServiceRegistration er = register(e, Producer.ENSURE);        
+public class SimpleAnnotationsTest extends TestBase {
+    public SimpleAnnotationsTest() {
+        super(true /* start test components bundle */);
+    }
+
+    @Test
+    public void testSimpleAnnotations() throws Throwable {
+        Ensure e = new Ensure();
+        ServiceRegistration er = register(e, Producer.ENSURE);
         e.waitForStep(3, 10000); // Producer registered
-        ServiceRegistration er2 = register(e, Consumer.ENSURE); 
+        ServiceRegistration er2 = register(e, Consumer.ENSURE);
 
         er2.unregister(); // stop consumer
         er.unregister(); // stop provider
@@ -49,5 +50,5 @@
         e.waitForStep(10, 10000);
         e.ensure();
         stopTestComponentsBundle();
-    }        
+    }
 }
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/TemporalAnnotationsTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/TemporalAnnotationsTest.java
index 2a09ae5..a24cb43 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/TemporalAnnotationsTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/annotations/TemporalAnnotationsTest.java
@@ -33,15 +33,21 @@
  * Use case: Verify Temporal Service dependency Annotations usage.
  */
 @RunWith(PaxExam.class)
-public class TemporalAnnotationsTest extends AnnotationBase
-{
+public class TemporalAnnotationsTest extends TestBase {
+    public TemporalAnnotationsTest() {
+        super(true /* start test components bundle */);
+    }
+
     @Test
-    public void testTemporalServiceDependency()
-    {
+    public void testTemporalServiceDependency() {
         Ensure ensure = new Ensure();
-        ServiceRegistration ensureReg = register(ensure, TemporalAnnotations.ENSURE);                       
-        Dictionary props = new Hashtable() {{ put("test", "temporal"); }};
-        Runnable r = Ensure.createRunnableStep(ensure, 1);             
+        ServiceRegistration ensureReg = register(ensure, TemporalAnnotations.ENSURE);
+        Dictionary props = new Hashtable() {
+            {
+                put("test", "temporal");
+            }
+        };
+        Runnable r = Ensure.createRunnableStep(ensure, 1);
         ServiceRegistration sr = context.registerService(Runnable.class.getName(), r, props);
         ensure.waitForStep(1, 15000);
         System.out.println("unregistering R");
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterAndConsumerTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterAndConsumerTest.java
index 806c657..290b265 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterAndConsumerTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterAndConsumerTest.java
@@ -18,22 +18,13 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
 @RunWith(PaxExam.class)
 public class AdapterAndConsumerTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterWithAspectTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterWithAspectTest.java
index b2ad88d..7e5f15b 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterWithAspectTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterWithAspectTest.java
@@ -18,23 +18,14 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+import org.osgi.framework.ServiceReference;
 
 @RunWith(PaxExam.class)
 public class AdapterWithAspectTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterWithExtraDependenciesTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterWithExtraDependenciesTest.java
index 15d4b44..7c4de88 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterWithExtraDependenciesTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterWithExtraDependenciesTest.java
@@ -18,22 +18,13 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
 @RunWith(PaxExam.class)
 public class AdapterWithExtraDependenciesTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterWithInstanceBoundDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterWithInstanceBoundDependencyTest.java
index c5f4f94..a6ed4f8 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterWithInstanceBoundDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AdapterWithInstanceBoundDependencyTest.java
@@ -18,22 +18,13 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
 @RunWith(PaxExam.class)
 public class AdapterWithInstanceBoundDependencyTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectChainTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectChainTest.java
index dabec19..cf0591b 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectChainTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectChainTest.java
@@ -18,22 +18,13 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
 @RunWith(PaxExam.class)
 public class AspectChainTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectDynamicsTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectDynamicsTest.java
index b766283..5fccdf4 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectDynamicsTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectDynamicsTest.java
@@ -18,22 +18,13 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
 @RunWith(PaxExam.class)
 public class AspectDynamicsTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectWhiteboardTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectWhiteboardTest.java
index bfa4e7d..5f6f0bf 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectWhiteboardTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/AspectWhiteboardTest.java
@@ -18,31 +18,22 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
 import java.util.ArrayList;
 import java.util.List;
 
 import junit.framework.Assert;
 
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.apache.felix.dm.ServiceUtil;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
+import org.ops4j.pax.exam.junit.PaxExam;
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceReference;
 
-import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
-
 @RunWith(PaxExam.class)
 public class AspectWhiteboardTest extends TestBase {
     @Test
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/BundleDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/BundleDependencyTest.java
index 9b8a9fd..97b20c7 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/BundleDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/BundleDependencyTest.java
@@ -18,24 +18,16 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
 import junit.framework.Assert;
 
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+import org.osgi.framework.Bundle;
 
 @RunWith(PaxExam.class)
 public class BundleDependencyTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/CompositionTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/CompositionTest.java
index 4b1d0cb..f0d5b2a 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/CompositionTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/CompositionTest.java
@@ -18,22 +18,13 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
 @RunWith(PaxExam.class)
 public class CompositionTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ConfigurationDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ConfigurationDependencyTest.java
index f4f890f..c68cb2f 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ConfigurationDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ConfigurationDependencyTest.java
@@ -18,10 +18,6 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
 import java.io.IOException;
 import java.util.Dictionary;
 import java.util.Hashtable;
@@ -35,10 +31,7 @@
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.osgi.framework.BundleContext;
 import org.osgi.service.cm.ConfigurationAdmin;
 import org.osgi.service.cm.ConfigurationException;
 import org.osgi.service.cm.ManagedService;
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/CustomDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/CustomDependencyTest.java
index b01e86e..4feae47 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/CustomDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/CustomDependencyTest.java
@@ -18,29 +18,19 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
 import java.util.ArrayList;
 import java.util.Dictionary;
 import java.util.List;
 
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Dependency;
 import org.apache.felix.dm.DependencyActivation;
 import org.apache.felix.dm.DependencyManager;
 import org.apache.felix.dm.DependencyService;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
 @RunWith(PaxExam.class)
 public class CustomDependencyTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/DynamicProxyAspectTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/DynamicProxyAspectTest.java
index c92725b..c410d0f 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/DynamicProxyAspectTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/DynamicProxyAspectTest.java
@@ -18,28 +18,19 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
 
 import junit.framework.Assert;
 
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
 @RunWith(PaxExam.class)
 public class DynamicProxyAspectTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2078_ServiceDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2078_ServiceDependencyTest.java
index 02b66fb..f6ac448 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2078_ServiceDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2078_ServiceDependencyTest.java
@@ -18,22 +18,13 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
 @RunWith(PaxExam.class)
 public class FELIX2078_ServiceDependencyTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2344_ExtraDependencyWithAutoConfigTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2344_ExtraDependencyWithAutoConfigTest.java
index 0e87840..1f90d70 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2344_ExtraDependencyWithAutoConfigTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2344_ExtraDependencyWithAutoConfigTest.java
@@ -18,23 +18,15 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
 import junit.framework.Assert;
 
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
 @RunWith(PaxExam.class)
 public class FELIX2344_ExtraDependencyWithAutoConfigTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2344_ExtraDependencyWithCallbackTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2344_ExtraDependencyWithCallbackTest.java
index 4fa7245..4cc9c06 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2344_ExtraDependencyWithCallbackTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2344_ExtraDependencyWithCallbackTest.java
@@ -18,26 +18,18 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
 import junit.framework.Assert;
 
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-
 /**
  * Tests for extra dependencies which are declared from service's init method.
  */
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
 @RunWith(PaxExam.class)
 public class FELIX2344_ExtraDependencyWithCallbackTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2348_ResourceAdapterTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2348_ResourceAdapterTest.java
index 9fbbd37..c4c4edb 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2348_ResourceAdapterTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2348_ResourceAdapterTest.java
@@ -18,10 +18,6 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
@@ -33,23 +29,19 @@
 
 import junit.framework.Assert;
 
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.DependencyManager;
 import org.apache.felix.dm.ResourceHandler;
 import org.apache.felix.dm.ResourceUtil;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
+import org.ops4j.pax.exam.junit.PaxExam;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Filter;
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
 
-import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
-
 @RunWith(PaxExam.class)
 public class FELIX2348_ResourceAdapterTest extends TestBase {
     @Test
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2369_ExtraDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2369_ExtraDependencyTest.java
index ce414f4..d3dc744 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2369_ExtraDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX2369_ExtraDependencyTest.java
@@ -18,32 +18,23 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
 import java.util.Arrays;
 import java.util.List;
 
 import junit.framework.Assert;
 
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.apache.felix.dm.ServiceDependency;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-
 /**
  * This testcase verify that a Service is not started if one of its extra required dependencies
  * is unavailable.
  */
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
 @RunWith(PaxExam.class)
 public class FELIX2369_ExtraDependencyTest extends TestBase
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3008_FilterIndexStartupTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3008_FilterIndexStartupTest.java
index b08fd1a..3b7d06a 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3008_FilterIndexStartupTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3008_FilterIndexStartupTest.java
@@ -20,25 +20,16 @@
 //import static org.ops4j.pax.exam.CoreOptions.waitForFrameworkStartupFor;
 //import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.vmOption;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
 import junit.framework.Assert;
 
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+import org.osgi.framework.Bundle;
 
 @RunWith(PaxExam.class)
 public class FELIX3008_FilterIndexStartupTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3057_EmptyServiceReferenceArray.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3057_EmptyServiceReferenceArray.java
index 2c962f0..f02ee32 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3057_EmptyServiceReferenceArray.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3057_EmptyServiceReferenceArray.java
@@ -20,25 +20,16 @@
 //import static org.ops4j.pax.exam.CoreOptions.waitForFrameworkStartupFor;
 //import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.vmOption;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
 import junit.framework.Assert;
 
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
+import org.ops4j.pax.exam.junit.PaxExam;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.InvalidSyntaxException;
 
-
-import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
-
 @RunWith(PaxExam.class)
 public class FELIX3057_EmptyServiceReferenceArray extends TestBase {
     @Test
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3186_AspectAdapterTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3186_AspectAdapterTest.java
index 2f16f27..4415afd 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3186_AspectAdapterTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FELIX3186_AspectAdapterTest.java
@@ -18,23 +18,14 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+import org.osgi.framework.ServiceReference;
 
 /**
  * Scenario: 
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FilterIndexResourceAdapterTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FilterIndexResourceAdapterTest.java
index 349f11a..faba72c 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FilterIndexResourceAdapterTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/FilterIndexResourceAdapterTest.java
@@ -20,10 +20,6 @@
 //import static org.ops4j.pax.exam.CoreOptions.waitForFrameworkStartupFor;
 //import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.vmOption;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
@@ -35,25 +31,20 @@
 
 import junit.framework.Assert;
 
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.DependencyManager;
 import org.apache.felix.dm.ResourceHandler;
 import org.apache.felix.dm.ResourceUtil;
 import org.apache.felix.dm.ServiceUtil;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
+import org.ops4j.pax.exam.junit.PaxExam;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Filter;
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
 
-
-import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
-
 @RunWith(PaxExam.class)
 public class FilterIndexResourceAdapterTest extends TestBase {
     @Test
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleExtraDependenciesTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleExtraDependenciesTest.java
index 2dc0d26..8cd3ebb 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleExtraDependenciesTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleExtraDependenciesTest.java
@@ -18,26 +18,17 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
 import java.util.ArrayList;
 import java.util.Hashtable;
 import java.util.List;
 
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
 @RunWith(PaxExam.class)
 public class MultipleExtraDependenciesTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleExtraDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleExtraDependencyTest.java
index 75111f4..6e06497 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleExtraDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleExtraDependencyTest.java
@@ -18,27 +18,18 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
 import java.util.Hashtable;
 
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-
 /**
  * Test which validates multi-dependencies combination.
  */
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
 @RunWith(PaxExam.class)
 public class MultipleExtraDependencyTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleExtraDependencyTest2.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleExtraDependencyTest2.java
index eae78fa..da51238 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleExtraDependencyTest2.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleExtraDependencyTest2.java
@@ -63,7 +63,7 @@
         m.add(sp);
         m.add(sc);
         m.add(sequencer);
-        
+
         // Check if the test.annotation components have been initialized orderly
         e.waitForStep(7, 10000);
         
@@ -93,7 +93,7 @@
     }
     
     public static class SequencerImpl implements Sequencer {
-        Ensure m_ensure;
+        final Ensure m_ensure;
         
         public SequencerImpl(Ensure e)
         {
@@ -124,7 +124,7 @@
     public static class ServiceConsumer {
         volatile Sequencer m_sequencer;
         volatile ServiceInterface m_service;
-        ServiceDependency m_d1, m_d2;
+        volatile ServiceDependency m_d1, m_d2;
 
         public void init(Component s) {
             DependencyManager m = s.getDependencyManager();
@@ -141,8 +141,6 @@
         }
         
         void start() {
-            m_d1.setInstanceBound(false);
-            m_d2.setInstanceBound(false);
             m_sequencer.step(6);
             m_service.doService();
         }
@@ -154,9 +152,9 @@
     
     public static class ServiceProvider implements ServiceInterface
     {
-        Sequencer m_sequencer;
-        ServiceProvider2 m_serviceProvider2;
-        ServiceDependency m_d1, m_d2;
+        volatile Sequencer m_sequencer;
+        volatile ServiceProvider2 m_serviceProvider2;
+        volatile ServiceDependency m_d1, m_d2;
 
         public void init(Component s)
         {
@@ -180,8 +178,6 @@
 
         void start()
         {
-            m_d1.setInstanceBound(false);
-            m_d2.setInstanceBound(false);
             m_serviceProvider2.step(4);
             m_sequencer.step(5);
         }
@@ -204,10 +200,10 @@
 
     public static class ServiceProvider2
     {
-        Composite m_composite = new Composite();
-        Sequencer m_sequencer;
-        Runnable m_runnable;
-        ServiceDependency m_d1, m_d2;
+        final Composite m_composite = new Composite();
+        volatile Sequencer m_sequencer;
+        volatile Runnable m_runnable;
+        volatile ServiceDependency m_d1, m_d2;
 
         public void init(Component s)
         {
@@ -226,14 +222,13 @@
         
         void bind(Sequencer seq)
         {
+            System.out.println("ServiceProvider2.bind(" + seq + ")");
             m_sequencer = seq;
             m_sequencer.step(1);
         }
 
         void start()
         {
-            m_d1.setInstanceBound(false);
-            m_d2.setInstanceBound(false);
             m_sequencer.step(3);
             m_runnable.run(); // NullObject
         }
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleServiceDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleServiceDependencyTest.java
index 599012c..f88625a 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleServiceDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/MultipleServiceDependencyTest.java
@@ -18,25 +18,16 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
 import java.util.Properties;
 
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Constants;
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+import org.osgi.framework.Constants;
 
 @RunWith(PaxExam.class)
 public class MultipleServiceDependencyTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceAdapterDependencyAddAndRemoveTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceAdapterDependencyAddAndRemoveTest.java
index ddc8f91..25033fb 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceAdapterDependencyAddAndRemoveTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceAdapterDependencyAddAndRemoveTest.java
@@ -18,10 +18,6 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.HashMap;
@@ -30,6 +26,8 @@
 
 import junit.framework.Assert;
 
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.ComponentStateListener;
 import org.apache.felix.dm.Dependency;
@@ -39,19 +37,12 @@
 import org.apache.felix.dm.ServiceDependency;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
+import org.ops4j.pax.exam.junit.PaxExam;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Filter;
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
 
-
-import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
-
 @RunWith(PaxExam.class)
 public class ResourceAdapterDependencyAddAndRemoveTest extends TestBase {
     @Test
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceAdapterTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceAdapterTest.java
index 11624cf..a2027e6 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceAdapterTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceAdapterTest.java
@@ -18,10 +18,6 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
@@ -33,23 +29,19 @@
 
 import junit.framework.Assert;
 
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.DependencyManager;
 import org.apache.felix.dm.ResourceHandler;
 import org.apache.felix.dm.ResourceUtil;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
+import org.ops4j.pax.exam.junit.PaxExam;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Filter;
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
 
-import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
-
 @RunWith(PaxExam.class)
 public class ResourceAdapterTest extends TestBase {
     @Test
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceDependencyTest.java
index 09a9c91..de8aa32 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ResourceDependencyTest.java
@@ -18,10 +18,6 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
@@ -33,24 +29,20 @@
 
 import junit.framework.Assert;
 
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.apache.felix.dm.ResourceHandler;
 import org.apache.felix.dm.ResourceUtil;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
+import org.ops4j.pax.exam.junit.PaxExam;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Filter;
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
 
-import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
-
 @RunWith(PaxExam.class)
 public class ResourceDependencyTest extends TestBase {
     @Test
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyComponentLifeCycleTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyComponentLifeCycleTest.java
index 25a5905..299da1b 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyComponentLifeCycleTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyComponentLifeCycleTest.java
@@ -20,26 +20,17 @@
 //import static org.ops4j.pax.exam.CoreOptions.waitForFrameworkStartupFor;
 //import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.vmOption;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
 import junit.framework.Assert;
 
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.apache.felix.dm.ServiceDependency;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-import org.osgi.util.tracker.ServiceTracker;
-
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+import org.osgi.util.tracker.ServiceTracker;
 
 @RunWith(PaxExam.class)
 public class ServiceDependencyComponentLifeCycleTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyInjectionTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyInjectionTest.java
index 34e8a05..89944b3 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyInjectionTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyInjectionTest.java
@@ -18,23 +18,15 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
 import junit.framework.Assert;
 
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
 @RunWith(PaxExam.class)
 public class ServiceDependencyInjectionTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyPropagateTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyPropagateTest.java
index 7773b09..aea36b8 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyPropagateTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyPropagateTest.java
@@ -18,27 +18,18 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
 import java.util.Dictionary;
 import java.util.Hashtable;
 import java.util.Map;
 
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+import org.osgi.framework.ServiceReference;
 
 /**
  * Validates ServiceDependency service properties propagation.
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyTest.java
index 53e5d19..639365c 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyTest.java
@@ -18,22 +18,13 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
 @RunWith(PaxExam.class)
 public class ServiceDependencyTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyThroughCallbackInstanceTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyThroughCallbackInstanceTest.java
index 1ebd138..daef838 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyThroughCallbackInstanceTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceDependencyThroughCallbackInstanceTest.java
@@ -18,22 +18,14 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
 import junit.framework.Assert;
 
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
+import org.osgi.framework.BundleContext;
 
 @RunWith(PaxExam.class)
 public class ServiceDependencyThroughCallbackInstanceTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceUpdateTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceUpdateTest.java
index 63c810f..9322b31 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceUpdateTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/ServiceUpdateTest.java
@@ -18,10 +18,6 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Dictionary;
@@ -33,24 +29,20 @@
 
 import junit.framework.Assert;
 
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.apache.felix.dm.ResourceHandler;
 import org.apache.felix.dm.ResourceUtil;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
+import org.ops4j.pax.exam.junit.PaxExam;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Filter;
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
 
-import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
-
 @RunWith(PaxExam.class)
 public class ServiceUpdateTest extends TestBase {
     @Test
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/TemporalServiceDependencyTest.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/TemporalServiceDependencyTest.java
index 6a19001..e6e5a5b 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/TemporalServiceDependencyTest.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/api/TemporalServiceDependencyTest.java
@@ -18,22 +18,13 @@
  */
 package org.apache.felix.dependencymanager.test2.integration.api;
 
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.provision;
-
+import org.apache.felix.dependencymanager.test2.components.Ensure;
+import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.osgi.framework.BundleContext;
-
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.apache.felix.dependencymanager.test2.components.Ensure;
-import org.apache.felix.dependencymanager.test2.integration.common.TestBase;
 
 @RunWith(PaxExam.class)
 public class TemporalServiceDependencyTest extends TestBase {
diff --git a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/common/TestBase.java b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/common/TestBase.java
index 43f535f..9b037d3 100644
--- a/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/common/TestBase.java
+++ b/dependencymanager/test2/src/test/java/org/apache/felix/dependencymanager/test2/integration/common/TestBase.java
@@ -53,7 +53,7 @@
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.log.LogService;
 import org.slf4j.LoggerFactory;
-import ch.qos.logback.classic.Level;
+
 import ch.qos.logback.classic.Level;
 import ch.qos.logback.classic.Logger;
 
@@ -82,10 +82,17 @@
 
     protected ServiceRegistration logService;
     
-    protected boolean startComponents() {
-        return false; 
+    // Flag used to check if our test components (src/main/java/**/*) bundle must be started
+    private final boolean m_startTestComponentsBundle;
+    
+    public TestBase() {
+        this(false);
     }
-
+    
+    public TestBase(boolean startTestComponentsBundle) {
+        m_startTestComponentsBundle = startTestComponentsBundle;
+    }
+ 
     @Configuration
     public Option[] configuration() {
         final String bundleFileName = System.getProperty(BUNDLE_JAR_SYS_PROP, BUNDLE_JAR_DEFAULT);
@@ -114,7 +121,7 @@
                 mavenBundle("org.apache.felix", "org.apache.felix.dependencymanager","3.1.1-SNAPSHOT"),
                 mavenBundle("org.apache.felix", "org.apache.felix.dependencymanager.shell", "3.0.2-SNAPSHOT"),
                 mavenBundle("org.apache.felix", "org.apache.felix.dependencymanager.runtime", "3.1.1-SNAPSHOT"),
-                bundle(bundleFile.toURI().toString()).start(startComponents()));
+                bundle(bundleFile.toURI().toString()).start(m_startTestComponentsBundle));
         final Option option = (paxRunnerVmOption != null) ? vmOption(paxRunnerVmOption) : null;
         return OptionUtils.combine(base, option);
     }