diff --git a/ipojo/tests/api/pom.xml b/ipojo/tests/api/pom.xml
index 39971c7..cc13e71 100644
--- a/ipojo/tests/api/pom.xml
+++ b/ipojo/tests/api/pom.xml
@@ -11,7 +11,7 @@
   <groupId>ipojo.tests</groupId>
   <artifactId>org.apache.felix.ipojo.tests.api</artifactId>
   <packaging>jar</packaging>
-  <version>1.5.0-SNAPSHOT</version>
+  <version>${ipojo.api.snapshot}</version>
   <name>org.apache.felix.ipojo.tests.api</name>
 
   <build>
@@ -48,22 +48,19 @@
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo</artifactId>
-      <version>1.7.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo.api</artifactId>
-      <version>1.7.0-SNAPSHOT</version>
+      <version>${ipojo.api.snapshot}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo.composite</artifactId>
-	  <version>1.7.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo.manipulator</artifactId>
-	  <version>1.7.0-SNAPSHOT</version>
     </dependency>
 
     <!-- For external handler management -->
diff --git a/ipojo/tests/composite/composite-runtime/pom.xml b/ipojo/tests/composite/composite-runtime/pom.xml
index 4c1b359..2775cc5 100644
--- a/ipojo/tests/composite/composite-runtime/pom.xml
+++ b/ipojo/tests/composite/composite-runtime/pom.xml
@@ -29,17 +29,16 @@
   <name>iPOJO Composite Test Suite</name>
   <artifactId>tests.composite</artifactId>
   <groupId>ipojo.tests</groupId>
-  <version>1.5.0-SNAPSHOT</version>
+  <version>${ipojo.composite.snapshot}</version>
   <dependencies>
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo</artifactId>
-      <version>1.7.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo.composite</artifactId>
-      <version>1.7.0-SNAPSHOT</version>
+      <version>${ipojo.composite.snapshot}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.felix</groupId>
diff --git a/ipojo/tests/composite/import-export/pom.xml b/ipojo/tests/composite/import-export/pom.xml
index 499eac9..ccf3122 100644
--- a/ipojo/tests/composite/import-export/pom.xml
+++ b/ipojo/tests/composite/import-export/pom.xml
@@ -29,17 +29,16 @@
   <name>iPOJO Composite (Service Import/Export) Test Suite</name>
   <artifactId>tests.composite.service.import-export</artifactId>
   <groupId>ipojo.tests</groupId>
-  <version>1.5.0-SNAPSHOT</version>
+  <version>${ipojo.composite.snapshot}</version>
   <dependencies>
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo</artifactId>
-      <version>1.7.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo.composite</artifactId>
-      <version>1.7.0-SNAPSHOT</version>
+      <version>${ipojo.composite.snapshot}</version>
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
diff --git a/ipojo/tests/composite/service-instance/pom.xml b/ipojo/tests/composite/service-instance/pom.xml
index 68140e0..6ea2c67 100644
--- a/ipojo/tests/composite/service-instance/pom.xml
+++ b/ipojo/tests/composite/service-instance/pom.xml
@@ -29,17 +29,16 @@
 	<name>iPOJO Composite (Service Instance) Test Suite</name>
 	<artifactId>tests.composite.service.instance</artifactId>
 	<groupId>ipojo.tests</groupId>
-	<version>1.5.0-SNAPSHOT</version>
+	<version>${ipojo.composite.snapshot}</version>
 	<dependencies>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
 			<artifactId>org.apache.felix.ipojo</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
 			<artifactId>org.apache.felix.ipojo.composite</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
+			<version>${ipojo.composite.snapshot}</version>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
diff --git a/ipojo/tests/composite/service-providing/pom.xml b/ipojo/tests/composite/service-providing/pom.xml
index d6ac4e9..7b6b568 100644
--- a/ipojo/tests/composite/service-providing/pom.xml
+++ b/ipojo/tests/composite/service-providing/pom.xml
@@ -29,17 +29,16 @@
 	<name>iPOJO Composite (Service Providing) Test Suite</name>
 	<artifactId>tests.composite.service.providing</artifactId>
 	<groupId>ipojo.tests</groupId>
-	<version>1.5.0-SNAPSHOT</version>
+	<version>${ipojo.composite.snapshot}</version>
 	<dependencies>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
 			<artifactId>org.apache.felix.ipojo</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
 			<artifactId>org.apache.felix.ipojo.composite</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
+			<version>${ipojo.composite.snapshot}</version>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
diff --git a/ipojo/tests/core/annotations/pom.xml b/ipojo/tests/core/annotations/pom.xml
index dd23efc..5425f6b 100644
--- a/ipojo/tests/core/annotations/pom.xml
+++ b/ipojo/tests/core/annotations/pom.xml
@@ -29,12 +29,11 @@
   <name>iPOJO Annotations Test Suite</name>
   <artifactId>tests.core.annotations</artifactId>
   <groupId>ipojo.tests</groupId>
-  <version>1.5.0-SNAPSHOT</version>
+  <version>${ipojo.core.snapshot}</version>
   <dependencies>
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo</artifactId>
-      <version>1.7.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.felix</groupId>
@@ -62,7 +61,7 @@
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo.annotations</artifactId>
-      <version>1.7.0-SNAPSHOT</version>
+      <version>${ipojo.core.snapshot}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.felix</groupId>
diff --git a/ipojo/tests/core/bad-configurations/pom.xml b/ipojo/tests/core/bad-configurations/pom.xml
index 248455c..f38c0bb 100644
--- a/ipojo/tests/core/bad-configurations/pom.xml
+++ b/ipojo/tests/core/bad-configurations/pom.xml
@@ -29,12 +29,11 @@
 	<name>iPOJO Bad Configurations Test Suite</name>
 	<artifactId>tests.core.bad.configurations</artifactId>
 	<groupId>ipojo.tests</groupId>
-	<version>1.5.0-SNAPSHOT</version>
+	<version>${ipojo.core.snapshot}</version>
 	<dependencies>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
 			<artifactId>org.apache.felix.ipojo</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
diff --git a/ipojo/tests/core/configadmin/pom.xml b/ipojo/tests/core/configadmin/pom.xml
index 114a31a..fa380a7 100644
--- a/ipojo/tests/core/configadmin/pom.xml
+++ b/ipojo/tests/core/configadmin/pom.xml
@@ -29,12 +29,11 @@
 	<name>iPOJO Configuration Admin Management Test Suite</name>
 	<artifactId>tests.core.configadmin</artifactId>
 	<groupId>ipojo.tests</groupId>
-	<version>1.5.0-SNAPSHOT</version>
+	<version>${ipojo.core.snapshot}</version>
 	<dependencies>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
 			<artifactId>org.apache.felix.ipojo</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
diff --git a/ipojo/tests/core/configuration/pom.xml b/ipojo/tests/core/configuration/pom.xml
index 9e411fa..2ccf5ac 100644
--- a/ipojo/tests/core/configuration/pom.xml
+++ b/ipojo/tests/core/configuration/pom.xml
@@ -29,12 +29,11 @@
   <name>iPOJO Configuration Management Test Suite</name>
   <artifactId>tests.core.configuration</artifactId>
   <groupId>ipojo.tests</groupId>
-  <version>1.5.0-SNAPSHOT</version>
+  <version>${ipojo.core.snapshot}</version>
   <dependencies>
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo</artifactId>
-      <version>1.7.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.felix</groupId>
diff --git a/ipojo/tests/core/external-handlers/pom.xml b/ipojo/tests/core/external-handlers/pom.xml
index f182bf2..cd16082 100644
--- a/ipojo/tests/core/external-handlers/pom.xml
+++ b/ipojo/tests/core/external-handlers/pom.xml
@@ -29,12 +29,11 @@
 	<name>iPOJO External Handler Mechanism Test Suite</name>
 	<artifactId>tests.core.external.handlers</artifactId>
 	<groupId>ipojo.tests</groupId>
-	<version>1.5.0-SNAPSHOT</version>
+	<version>${ipojo.core.snapshot}</version>
 	<dependencies>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
 			<artifactId>org.apache.felix.ipojo</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
diff --git a/ipojo/tests/core/factories/pom.xml b/ipojo/tests/core/factories/pom.xml
index 18688d5..ccde351 100644
--- a/ipojo/tests/core/factories/pom.xml
+++ b/ipojo/tests/core/factories/pom.xml
@@ -21,12 +21,11 @@
 	<name>iPOJO Factories Test Suite</name>
 	<artifactId>tests.core.factories</artifactId>
 	<groupId>ipojo.tests</groupId>
-	<version>1.5.0-SNAPSHOT</version>
+	<version>${ipojo.core.snapshot}</version>
 	<dependencies>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
 			<artifactId>org.apache.felix.ipojo</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
diff --git a/ipojo/tests/core/factory-version/pom.xml b/ipojo/tests/core/factory-version/pom.xml
index 186ef3e..227ceab 100644
--- a/ipojo/tests/core/factory-version/pom.xml
+++ b/ipojo/tests/core/factory-version/pom.xml
@@ -28,7 +28,7 @@
   <groupId>ipojo.tests</groupId>
   <artifactId>tests.core.factory-version</artifactId>
   <name>iPOJO Factory Version Test Suite</name>
-  <version>1.5.0-SNAPSHOT</version>
+  <version>${ipojo.core.snapshot}</version>
   <description>Test the factory version attribute</description>
 
   <build>
@@ -70,7 +70,7 @@
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo</artifactId>
-      <version>1.7.0-SNAPSHOT</version>
+      <version>${ipojo.core.snapshot}</version>
     </dependency>
 
   <!--
diff --git a/ipojo/tests/core/handler/pom.xml b/ipojo/tests/core/handler/pom.xml
index 4b15132..409353a 100644
--- a/ipojo/tests/core/handler/pom.xml
+++ b/ipojo/tests/core/handler/pom.xml
@@ -27,7 +27,7 @@
   <groupId>ipojo.tests</groupId>
   <artifactId>tests.core.handler</artifactId>
   <name>iPOJO Handler Mechanism Test Suite</name>
-  <version>1.5.0-SNAPSHOT</version>
+  <version>${ipojo.core.snapshot}</version>
   <description>Test the handler mechanism</description>
 
   <build>
@@ -60,7 +60,7 @@
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo</artifactId>
-      <version>1.7.0-SNAPSHOT</version>
+      <version>${ipojo.core.snapshot}</version>
     </dependency>
 
   <!-- Pax Exam API: -->
diff --git a/ipojo/tests/core/lifecycle-callback/pom.xml b/ipojo/tests/core/lifecycle-callback/pom.xml
index 99ff014..3901277 100644
--- a/ipojo/tests/core/lifecycle-callback/pom.xml
+++ b/ipojo/tests/core/lifecycle-callback/pom.xml
@@ -29,12 +29,11 @@
 	<name>iPOJO Lifecycle callback Test Suite</name>
 	<artifactId>tests.core.lifecycle.callback</artifactId>
 	<groupId>ipojo.tests</groupId>
-	<version>1.5.0-SNAPSHOT</version>
+	<version>${ipojo.core.snapshot}</version>
 	<dependencies>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
 			<artifactId>org.apache.felix.ipojo</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
diff --git a/ipojo/tests/core/lifecycle-controller/pom.xml b/ipojo/tests/core/lifecycle-controller/pom.xml
index eb23da1..f59f0b7 100644
--- a/ipojo/tests/core/lifecycle-controller/pom.xml
+++ b/ipojo/tests/core/lifecycle-controller/pom.xml
@@ -29,12 +29,11 @@
 	<name>iPOJO Lifecycle controller Test Suite</name>
 	<artifactId>tests.core.lifecycle.controller</artifactId>
 	<groupId>ipojo.tests</groupId>
-	<version>1.5.0-SNAPSHOT</version>
+	<version>${ipojo.core.snapshot}</version>
 	<dependencies>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
 			<artifactId>org.apache.felix.ipojo</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
diff --git a/ipojo/tests/core/logger/pom.xml b/ipojo/tests/core/logger/pom.xml
index ad44bdb..32f2b02 100644
--- a/ipojo/tests/core/logger/pom.xml
+++ b/ipojo/tests/core/logger/pom.xml
@@ -28,7 +28,7 @@
   <groupId>ipojo.tests</groupId>
   <artifactId>tests.core.logger</artifactId>
   <name>iPOJO Logger Test Suite</name>
-  <version>1.5.0-SNAPSHOT</version>
+  <version>${ipojo.core.snapshot}</version>
   <description>Test the logger configuration</description>
 
   <build>
@@ -65,7 +65,7 @@
 	<dependency>
 		<groupId>org.apache.felix</groupId>
 		<artifactId>org.apache.felix.ipojo</artifactId>
-		<version>1.7.0-SNAPSHOT</version>
+		<version>${ipojo.core.snapshot}</version>
 	</dependency>
 	<dependency>
 		<groupId>org.apache.felix</groupId>
diff --git a/ipojo/tests/core/service-dependency-bindingpolicy/pom.xml b/ipojo/tests/core/service-dependency-bindingpolicy/pom.xml
index 6cf0a8c..6238a93 100644
--- a/ipojo/tests/core/service-dependency-bindingpolicy/pom.xml
+++ b/ipojo/tests/core/service-dependency-bindingpolicy/pom.xml
@@ -28,12 +28,12 @@
 	<name>iPOJO Service Dependency (Binding Policy) Test Suite</name>
 	<artifactId>tests.core.service.dependency.bindingpolicy</artifactId>
 	<groupId>ipojo.tests</groupId>
-	<version>1.5.0-SNAPSHOT</version>
+	<version>${ipojo.core.snapshot}</version>
 	<dependencies>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
 			<artifactId>org.apache.felix.ipojo</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
+			<version>${ipojo.core.snapshot}</version>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
diff --git a/ipojo/tests/core/service-dependency-comparator/pom.xml b/ipojo/tests/core/service-dependency-comparator/pom.xml
index 6f71513..2dd65bb 100644
--- a/ipojo/tests/core/service-dependency-comparator/pom.xml
+++ b/ipojo/tests/core/service-dependency-comparator/pom.xml
@@ -28,12 +28,11 @@
 	<name>iPOJO Service Dependency Comparator Test Suite</name>
 	<artifactId>tests.core.service.dependency.comparator</artifactId>
 	<groupId>ipojo.tests</groupId>
-	<version>1.5.0-SNAPSHOT</version>
+	<version>${ipojo.core.snapshot}</version>
 	<dependencies>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
 			<artifactId>org.apache.felix.ipojo</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
diff --git a/ipojo/tests/core/service-dependency-filter/pom.xml b/ipojo/tests/core/service-dependency-filter/pom.xml
index 3c1a5bc..7cb06f1 100644
--- a/ipojo/tests/core/service-dependency-filter/pom.xml
+++ b/ipojo/tests/core/service-dependency-filter/pom.xml
@@ -28,12 +28,11 @@
   <name>iPOJO Service Dependency (Filter) Test Suite</name>
   <artifactId>tests.core.service.dependency.filter</artifactId>
   <groupId>ipojo.tests</groupId>
-  <version>1.5.0-SNAPSHOT</version>
+  <version>${ipojo.core.snapshot}</version>
   <dependencies>
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo</artifactId>
-      <version>1.7.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.felix</groupId>
diff --git a/ipojo/tests/core/service-dependency-optional/pom.xml b/ipojo/tests/core/service-dependency-optional/pom.xml
index 46898ce..ea6e6a9 100644
--- a/ipojo/tests/core/service-dependency-optional/pom.xml
+++ b/ipojo/tests/core/service-dependency-optional/pom.xml
@@ -27,7 +27,7 @@
   <groupId>ipojo.tests</groupId>
   <artifactId>tests.core.dependency.optional</artifactId>
   <name>iPOJO Optional Dependency Test Suite</name>
-  <version>1.5.0-SNAPSHOT</version>
+  <version>${ipojo.core.snapshot}</version>
   <description>Test the optional dependencies</description>
 
   <build>
@@ -61,11 +61,12 @@
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo</artifactId>
-      <version>1.7.0-SNAPSHOT</version>
+      <version>${ipojo.core.snapshot}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo.annotations</artifactId>
+      <version>${ipojo.core.snapshot}</version>
     </dependency>
     <!--
     Pax Exam API:
diff --git a/ipojo/tests/core/service-dependency/pom.xml b/ipojo/tests/core/service-dependency/pom.xml
index f55135e..1cede89 100644
--- a/ipojo/tests/core/service-dependency/pom.xml
+++ b/ipojo/tests/core/service-dependency/pom.xml
@@ -28,12 +28,11 @@
   <name>iPOJO Service Dependency Test Suite</name>
   <artifactId>tests.core.service.dependency</artifactId>
   <groupId>ipojo.tests</groupId>
-  <version>1.5.0-SNAPSHOT</version>
+  <version>${ipojo.core.snapshot}</version>
   <dependencies>
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo</artifactId>
-      <version>1.7.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.felix</groupId>
diff --git a/ipojo/tests/core/service-providing-inheritance/pom.xml b/ipojo/tests/core/service-providing-inheritance/pom.xml
index 0b1b7a0..43e59bd 100644
--- a/ipojo/tests/core/service-providing-inheritance/pom.xml
+++ b/ipojo/tests/core/service-providing-inheritance/pom.xml
@@ -28,7 +28,7 @@
   <groupId>ipojo.tests</groupId>
   <artifactId>tests.core.inheritance</artifactId>
   <name>iPOJO Service Providing with inheritance Test Suite</name>
-  <version>1.5.0-SNAPSHOT</version>
+  <version>${ipojo.core.snapshot}</version>
   <description>The the service providing with inheritance</description>
 
   <build>
@@ -61,7 +61,7 @@
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo</artifactId>
-      <version>1.7.0-SNAPSHOT</version>
+      <version>${ipojo.core.snapshot}</version>
     </dependency>
     <dependency>
       <groupId>org.osgi</groupId>
diff --git a/ipojo/tests/core/service-providing-strategies/pom.xml b/ipojo/tests/core/service-providing-strategies/pom.xml
index 0a7a366..e7124d9 100755
--- a/ipojo/tests/core/service-providing-strategies/pom.xml
+++ b/ipojo/tests/core/service-providing-strategies/pom.xml
@@ -28,12 +28,11 @@
 	<name>iPOJO Service Providing Strategy Test Suite</name>
 	<artifactId>tests.core.ps.strategy</artifactId>
 	<groupId>ipojo.tests</groupId>
-	<version>1.5.0-SNAPSHOT</version>
+	<version>${ipojo.core.snapshot}</version>
 	<dependencies>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
 			<artifactId>org.apache.felix.ipojo</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
diff --git a/ipojo/tests/core/service-providing/pom.xml b/ipojo/tests/core/service-providing/pom.xml
index 9a27648..6aef3da 100644
--- a/ipojo/tests/core/service-providing/pom.xml
+++ b/ipojo/tests/core/service-providing/pom.xml
@@ -29,12 +29,11 @@
   <name>iPOJO Service Providing Test Suite</name>
   <artifactId>tests.core.ps</artifactId>
   <groupId>ipojo.tests</groupId>
-  <version>1.5.0-SNAPSHOT</version>
+  <version>${ipojo.core.snapshot}</version>
   <dependencies>
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo</artifactId>
-      <version>1.7.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.felix</groupId>
@@ -86,6 +85,7 @@
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-ipojo-plugin</artifactId>
+        <version>${ipojo.core.snapshot}</version>
         <executions>
           <execution>
             <goals>
@@ -100,7 +100,7 @@
         	<dependency>
         		<groupId>org.apache.felix</groupId>
         		<artifactId>org.apache.felix.ipojo.manipulator</artifactId>
-        		<version>1.7.0-SNAPSHOT</version>
+        		<version>${ipojo.core.snapshot}</version>
         	</dependency>
         </dependencies>
       </plugin>
diff --git a/ipojo/tests/handler/eventadmin/pom.xml b/ipojo/tests/handler/eventadmin/pom.xml
index 94234ec..1595e27 100644
--- a/ipojo/tests/handler/eventadmin/pom.xml
+++ b/ipojo/tests/handler/eventadmin/pom.xml
@@ -25,49 +25,48 @@
         <version>1.5.0-SNAPSHOT</version>
     </parent>
     <groupId>ipojo.tests</groupId>
-    <version>1.5.0-SNAPSHOT</version>
+    <version>${ipojo.eah.snapshot}</version>
     <modelVersion>4.0.0</modelVersion>
     <packaging>bundle</packaging>
     <name>iPOJO Event Admin Handler Test Suite</name>
     <artifactId>tests.eventadmin.handler</artifactId>
 
-	<dependencies>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.core</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.handler.eventadmin</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>3.8.1</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.junit4osgi</artifactId>
-			<version>1.1.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.compendium</artifactId>
-			<version>4.0.0</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.eventadmin</artifactId>
-			<version>1.2.2</version>
-			<scope>test</scope>
-		</dependency>
-	</dependencies>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo.handler.eventadmin</artifactId>
+      <version>${ipojo.eah.snapshot}</version>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo.junit4osgi</artifactId>
+      <version>1.1.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.compendium</artifactId>
+      <version>4.0.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.eventadmin</artifactId>
+      <version>1.2.2</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
     <build>
         <plugins>
             <plugin>
@@ -99,25 +98,25 @@
                 </executions>
             </plugin>
             <plugin>
-		        <groupId>org.apache.felix</groupId>
-		        <artifactId>maven-junit4osgi-plugin
-		        </artifactId>
-		        <version>1.1.0-SNAPSHOT</version>
-		        <executions>
-		          <execution>
-		            <goals>
-		              <goal>test</goal>
-		            </goals>
-		            <configuration>
-		              <hideOutputs>false</hideOutputs>
-		              <logService>false</logService>
-		              <configuration>
-		              <org.osgi.http.port>8083</org.osgi.http.port>
-		              </configuration>
-		            </configuration>
-		          </execution>
-		        </executions>
-		     </plugin>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>maven-junit4osgi-plugin
+            </artifactId>
+            <version>1.1.0-SNAPSHOT</version>
+            <executions>
+              <execution>
+                <goals>
+                  <goal>test</goal>
+                </goals>
+                <configuration>
+                  <hideOutputs>false</hideOutputs>
+                  <logService>false</logService>
+                  <configuration>
+                  <org.osgi.http.port>8083</org.osgi.http.port>
+                  </configuration>
+                </configuration>
+              </execution>
+            </executions>
+         </plugin>
         </plugins>
     </build>
 </project>
diff --git a/ipojo/tests/handler/jmx/pom.xml b/ipojo/tests/handler/jmx/pom.xml
index ad181d5..6c58642 100644
--- a/ipojo/tests/handler/jmx/pom.xml
+++ b/ipojo/tests/handler/jmx/pom.xml
@@ -35,12 +35,10 @@
         <dependency>
           <groupId>org.apache.felix</groupId>
           <artifactId>org.apache.felix.ipojo.annotations</artifactId>
-          <version>1.7.0-SNAPSHOT</version>
         </dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
 			<artifactId>org.apache.felix.ipojo</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
 		</dependency>
 		<dependency>
 			<groupId>org.osgi</groupId>
diff --git a/ipojo/tests/handler/temporal/pom.xml b/ipojo/tests/handler/temporal/pom.xml
index 6f54cdd..408ffa3 100644
--- a/ipojo/tests/handler/temporal/pom.xml
+++ b/ipojo/tests/handler/temporal/pom.xml
@@ -1,103 +1,102 @@
 <!--
-	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
+  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
+  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.
+  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.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<parent>
-		<groupId>ipojo.tests</groupId>
-		<artifactId>ipojo.tests</artifactId>
-		<version>1.5.0-SNAPSHOT</version>
-	</parent>
-	<modelVersion>4.0.0</modelVersion>
-	<packaging>bundle</packaging>
-	<name>iPOJO Temporal Dependency Test Suite</name>
-	<artifactId>tests.temporal</artifactId>
-	<groupId>ipojo.tests</groupId>
-	<version>1.5.0-SNAPSHOT</version>
-	<dependencies>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
-		</dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.ipojo.handler.temporal</artifactId>
-            <version>1.7.0-SNAPSHOT</version>
-        </dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.metadata</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.core</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>3.8.1</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.junit4osgi</artifactId>
-			<version>1.1.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.compendium</artifactId>
-			<version>4.0.0</version>
-		</dependency>
-	</dependencies>
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.felix</groupId>
-				<artifactId>maven-bundle-plugin</artifactId>
-				<extensions>true</extensions>
-				<configuration>
-					<instructions>
-						<Export-Package>
-							org.apache.felix.ipojo.test.scenarios.temporal.service
-						</Export-Package>
-						<Bundle-SymbolicName>
-							${project.artifactId}
-						</Bundle-SymbolicName>
-						<Private-Package>
-							org.apache.felix.ipojo.test*
-						</Private-Package>
-						<Test-Suite>
-						org.apache.felix.ipojo.test.scenarios.temporal.TemporalTestSuite
-						</Test-Suite>
-					</instructions>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.felix</groupId>
-				<artifactId>maven-ipojo-plugin</artifactId>
-				<executions>
-					<execution>
-						<goals>
-							<goal>ipojo-bundle</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
+  <parent>
+    <groupId>ipojo.tests</groupId>
+    <artifactId>ipojo.tests</artifactId>
+    <version>1.5.0-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <packaging>bundle</packaging>
+  <name>iPOJO Temporal Dependency Test Suite</name>
+  <artifactId>tests.temporal</artifactId>
+  <groupId>ipojo.tests</groupId>
+  <version>${ipojo.temporal.snapshot}</version>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo</artifactId>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.ipojo.handler.temporal</artifactId>
+         <version>${ipojo.temporal.snapshot}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo.metadata</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo.junit4osgi</artifactId>
+      <version>1.1.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.compendium</artifactId>
+      <version>4.0.0</version>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Export-Package>
+              org.apache.felix.ipojo.test.scenarios.temporal.service
+            </Export-Package>
+            <Bundle-SymbolicName>
+              ${project.artifactId}
+            </Bundle-SymbolicName>
+            <Private-Package>
+              org.apache.felix.ipojo.test*
+            </Private-Package>
+            <Test-Suite>
+            org.apache.felix.ipojo.test.scenarios.temporal.TemporalTestSuite
+            </Test-Suite>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-ipojo-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>ipojo-bundle</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
 
 
         <plugin>
@@ -117,6 +116,6 @@
           </execution>
         </executions>
       </plugin>
-		</plugins>
-	</build>
+    </plugins>
+  </build>
 </project>
diff --git a/ipojo/tests/handler/whiteboard/pom.xml b/ipojo/tests/handler/whiteboard/pom.xml
index 88c7f35..3914119 100644
--- a/ipojo/tests/handler/whiteboard/pom.xml
+++ b/ipojo/tests/handler/whiteboard/pom.xml
@@ -1,158 +1,159 @@
 <!--
-	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
+  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
+  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.
+  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.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<parent>
-		<groupId>ipojo.tests</groupId>
-		<artifactId>ipojo.tests</artifactId>
-		<version>1.5.0-SNAPSHOT</version>
-	</parent>  <groupId>ipojo.tests</groupId>
-  <version>1.5.0-SNAPSHOT</version>
-  <modelVersion>4.0.0</modelVersion>
-  <packaging>bundle</packaging>
-  <name>iPOJO White Board Pattern Handler Test Suite</name>
-  <artifactId>tests.whiteboard</artifactId>
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.felix</groupId>
-      <artifactId>org.apache.felix.ipojo</artifactId>
-      <version>1.7.0-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.felix</groupId>
-      <artifactId>org.apache.felix.ipojo.handler.whiteboard</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
-    </dependency>
-	<dependency>
-		<groupId>org.osgi</groupId>
-		<artifactId>org.osgi.core</artifactId>
-	</dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-    </dependency>
-	<dependency>
-		<groupId>org.apache.felix</groupId>
-		<artifactId>org.apache.felix.ipojo.junit4osgi</artifactId>
-		<version>1.1.0-SNAPSHOT</version>
-	</dependency>
-	<dependency>
-		<groupId>org.osgi</groupId>
-		<artifactId>org.osgi.compendium</artifactId>
-		<version>4.0.0</version>
-	</dependency>
-  </dependencies>
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-bundle-plugin</artifactId>
-        <extensions>true</extensions>
-        <configuration>
-          <instructions>
-            <Private-Package>org.apache.felix.ipojo.test, org.apache.felix.ipojo.test.scenarios.util</Private-Package>
-            <Test-Suite>org.apache.felix.ipojo.test.WbpTests</Test-Suite>
-          </instructions>
-        </configuration>
-      </plugin>
-	<plugin>
-		<groupId>org.apache.felix</groupId>
-		<artifactId>maven-ipojo-plugin</artifactId>
-		<executions>
-			<execution>
-				<goals>
-					<goal>ipojo-bundle</goal>
-				</goals>
-				<configuration>
-					<ignoreAnnotations>true</ignoreAnnotations>
-					<metadata>
-   					<![CDATA[
-   					<ipojo
-    					xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-						xsi:schemaLocation="org.apache.felix.ipojo http://felix.apache.org/ipojo/schemas/SNAPSHOT/core.xsd"
-						xmlns="org.apache.felix.ipojo"
-						xmlns:wbp="org.apache.felix.ipojo.whiteboard">
-						<component classname="org.apache.felix.ipojo.test.FooProvider" name="fooprovider">
-							<provides>
-								<property field="foo" value="foo"/>
-							</provides>
-						</component>
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <parent>
+        <groupId>ipojo.tests</groupId>
+        <artifactId>ipojo.tests</artifactId>
+        <version>1.5.0-SNAPSHOT</version>
+    </parent>
+    <groupId>ipojo.tests</groupId>
+    <version>${ipojo.wbp.snapshot}</version>
+    <modelVersion>4.0.0</modelVersion>
+    <packaging>bundle</packaging>
+    <name>iPOJO White Board Pattern Handler Test Suite</name>
+    <artifactId>tests.whiteboard</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.ipojo</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.ipojo.handler.whiteboard</artifactId>
+             <version>${ipojo.wbp.snapshot}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>3.8.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.ipojo.junit4osgi</artifactId>
+            <version>1.1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.compendium</artifactId>
+            <version>4.0.0</version>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Private-Package>org.apache.felix.ipojo.test,
+                            org.apache.felix.ipojo.test.scenarios.util</Private-Package>
+                        <Test-Suite>org.apache.felix.ipojo.test.WbpTests</Test-Suite>
+                    </instructions>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-ipojo-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>ipojo-bundle</goal>
+                        </goals>
+                        <configuration>
+                            <ignoreAnnotations>true</ignoreAnnotations>
+                            <metadata>
+             <![CDATA[
+             <ipojo
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="org.apache.felix.ipojo http://felix.apache.org/ipojo/schemas/SNAPSHOT/core.xsd"
+            xmlns="org.apache.felix.ipojo"
+            xmlns:wbp="org.apache.felix.ipojo.whiteboard">
+            <component classname="org.apache.felix.ipojo.test.FooProvider" name="fooprovider">
+              <provides>
+                <property field="foo" value="foo"/>
+              </provides>
+            </component>
 
-						<component classname="org.apache.felix.ipojo.test.FooWhiteBoardPattern" name="under-providers">
-								<wbp:wbp
-									filter="(objectclass=org.apache.felix.ipojo.test.FooService)"
-									onArrival="onArrival" onDeparture="onDeparture" onModification="onModification"
-								/>
-								<provides/>
-						</component>
+            <component classname="org.apache.felix.ipojo.test.FooWhiteBoardPattern" name="under-providers">
+                <wbp:wbp
+                  filter="(objectclass=org.apache.felix.ipojo.test.FooService)"
+                  onArrival="onArrival" onDeparture="onDeparture" onModification="onModification"
+                />
+                <provides/>
+            </component>
 
-						<component classname="org.apache.felix.ipojo.test.FooWhiteBoardPattern" name="under-properties">
-								<wbp:wbp filter="(foo=foo)" onArrival="onArrival" onDeparture="onDeparture"
-									onModification="onModification"
-								/>
-								<provides/>
-						</component>
+            <component classname="org.apache.felix.ipojo.test.FooWhiteBoardPattern" name="under-properties">
+                <wbp:wbp filter="(foo=foo)" onArrival="onArrival" onDeparture="onDeparture"
+                  onModification="onModification"
+                />
+                <provides/>
+            </component>
 
-						<component classname="org.apache.felix.ipojo.test.FooWhiteBoardPattern" name="under-providers-2">
-								<wbp:whiteboards>
-									<wbp:wbp
-										filter="(objectclass=org.apache.felix.ipojo.test.FooService)"
-										onArrival="onArrival" onDeparture="onDeparture" onModification="onModification"
-									/>
-								</wbp:whiteboards>
-								<provides/>
-						</component>
+            <component classname="org.apache.felix.ipojo.test.FooWhiteBoardPattern" name="under-providers-2">
+                <wbp:whiteboards>
+                  <wbp:wbp
+                    filter="(objectclass=org.apache.felix.ipojo.test.FooService)"
+                    onArrival="onArrival" onDeparture="onDeparture" onModification="onModification"
+                  />
+                </wbp:whiteboards>
+                <provides/>
+            </component>
 
-						<component classname="org.apache.felix.ipojo.test.FooWhiteBoardPattern" name="under-providers-lifecycle">
-								<wbp:wbp
-									filter="(objectclass=org.apache.felix.ipojo.test.FooService)"
-									onArrival="onArrival" onDeparture="onDeparture" onModification="onModification"
-								/>
-								<provides/>
-								<callback transition="validate" method="start"/>
-								<callback transition="invalidate" method="stop"/>
-						</component>
-					</ipojo>
-					]]>
-					</metadata>
-				</configuration>
-			</execution>
-		</executions>
-	</plugin>
-	<plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-junit4osgi-plugin</artifactId>
-        <version>1.1.0-SNAPSHOT</version>
-        <executions>
-          <execution>
-            <goals>
-              <goal>test</goal>
-            </goals>
-            <configuration>
-              <configuration>
-              <org.osgi.http.port>8083</org.osgi.http.port>
-              </configuration>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
+            <component classname="org.apache.felix.ipojo.test.FooWhiteBoardPattern" name="under-providers-lifecycle">
+                <wbp:wbp
+                  filter="(objectclass=org.apache.felix.ipojo.test.FooService)"
+                  onArrival="onArrival" onDeparture="onDeparture" onModification="onModification"
+                />
+                <provides/>
+                <callback transition="validate" method="start"/>
+                <callback transition="invalidate" method="stop"/>
+            </component>
+          </ipojo>
+          ]]>
+                            </metadata>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-junit4osgi-plugin</artifactId>
+                <version>1.1.0-SNAPSHOT</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>test</goal>
+                        </goals>
+                        <configuration>
+                            <configuration>
+                                <org.osgi.http.port>8083</org.osgi.http.port>
+                            </configuration>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
 </project>
diff --git a/ipojo/tests/integration-tests/pom.xml b/ipojo/tests/integration-tests/pom.xml
index 189df9b..50b1812 100644
--- a/ipojo/tests/integration-tests/pom.xml
+++ b/ipojo/tests/integration-tests/pom.xml
@@ -1,296 +1,292 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>ipojo.tests</groupId>
-  <artifactId>org.apache.felix.ipojo.integration-tests</artifactId>
-  <name>iPOJO Integration Tests</name>
-  <version>1.5.0-SNAPSHOT</version>
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>ipojo.tests</groupId>
+    <artifactId>org.apache.felix.ipojo.integration-tests</artifactId>
+    <name>iPOJO Integration Tests</name>
+    <version>1.5.0-SNAPSHOT</version>
 
-  <properties>
-     <ipojo.version>1.5.0-SNAPSHOT</ipojo.version>
-    </properties>
+    <parent>
+        <groupId>ipojo.tests</groupId>
+        <artifactId>ipojo.tests</artifactId>
+        <version>1.5.0-SNAPSHOT</version>
+    </parent>
 
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-junit4osgi-plugin
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-junit4osgi-plugin
         </artifactId>
-        <version>1.1.0-SNAPSHOT</version>
-        <executions>
-          <execution>
-            <goals>
-              <goal>test</goal>
-            </goals>
-            <configuration>
-              <hideOutputs>true</hideOutputs>
-              <logService>false</logService>
-              <configuration>
-              <org.osgi.http.port>8083</org.osgi.http.port>
-              </configuration>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-  <reporting>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-report-plugin
-        </artifactId>
-        <version>2.4.3</version>
-        <configuration>
-          <showSucess>true</showSucess>
-          <reportsDirectories>
-            <param>target/junit4osgi-reports</param>
-          </reportsDirectories>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>cobertura-maven-plugin</artifactId>
-      </plugin>
-    </plugins>
-  </reporting>
+                <version>1.1.0-SNAPSHOT</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>test</goal>
+                        </goals>
+                        <configuration>
+                            <hideOutputs>true</hideOutputs>
+                            <logService>false</logService>
+                            <configuration>
+                                <org.osgi.http.port>8083</org.osgi.http.port>
+                            </configuration>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+    <reporting>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-report-plugin</artifactId>
+                <version>2.4.3</version>
+                <configuration>
+                    <showSucess>true</showSucess>
+                    <reportsDirectories>
+                        <param>target/junit4osgi-reports</param>
+                    </reportsDirectories>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>cobertura-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </reporting>
 
-  <dependencies>
-   <!-- Manipulation -->
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.manipulation.metadata
-      </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.manipulation</artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.manipulation.primitives
-      </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.manipulation.creation
-      </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.manipulation.java5
-      </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-
-    <!--  Core -->
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.core.annotations</artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.core.bad.configurations
-      </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.core.configuration
-      </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.core.external.handlers
-      </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.core.factories</artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.core.lifecycle.callback
-      </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.core.lifecycle.controller
-      </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.core.ps</artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.core.lifecycle.controller
-      </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.core.service.dependency
-      </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.core.service.dependency.bindingpolicy
-      </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.core.service.dependency.comparator
-      </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.core.service.dependency.filter
-      </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <artifactId>tests.core.ps.strategy</artifactId>
-      <groupId>ipojo.tests</groupId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-
-
-       <!-- Composite -->
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.composite </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.composite.service.import-export
-      </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.composite.service.instance
-      </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.composite.service.providing
-      </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-
-  <!--  External handlers -->
-
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.eventadmin.handler
-      </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.temporal </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.whiteboard </artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-  <!--  Utility bundles -->
-
-    <dependency>
-      <groupId>org.apache.felix</groupId>
-      <artifactId>org.apache.felix.ipojo.handler.whiteboard</artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.felix</groupId>
-      <artifactId>org.apache.felix.ipojo.handler.temporal</artifactId>
-      <version>1.7.0-SNAPSHOT</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.felix</groupId>
-      <artifactId>org.apache.felix.ipojo.handler.eventadmin</artifactId>
-      <version>1.7.0-SNAPSHOT</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.felix</groupId>
-      <artifactId>org.apache.felix.eventadmin</artifactId>
-      <version>1.2.2</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.felix</groupId>
-      <artifactId>org.apache.felix.ipojo.composite</artifactId>
-      <version>1.7.0-SNAPSHOT</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.felix</groupId>
-      <artifactId>org.apache.felix.configadmin</artifactId>
-      <version>1.2.4</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-
-  <profiles>
-    <profile>
-    <id>configadmin</id>
     <dependencies>
-    <dependency>
-      <groupId>ipojo.tests</groupId>
-      <artifactId>tests.core.configadmin</artifactId>
-      <version>${ipojo.version}</version>
-      <scope>test</scope>
-    </dependency>
+        <!-- Manipulation -->
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.manipulation.metadata</artifactId>
+            <version>${ipojo.core.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.manipulation</artifactId>
+            <version>${ipojo.core.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.manipulation.primitives
+      </artifactId>
+            <version>${ipojo.core.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.manipulation.creation
+      </artifactId>
+            <version>${ipojo.core.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.manipulation.java5
+      </artifactId>
+            <version>${ipojo.core.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- Core -->
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.core.annotations</artifactId>
+            <version>${ipojo.core.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.core.bad.configurations
+      </artifactId>
+            <version>${ipojo.core.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.core.configuration
+      </artifactId>
+            <version>${ipojo.core.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.core.external.handlers
+      </artifactId>
+            <version>${ipojo.core.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.core.factories</artifactId>
+            <version>${ipojo.core.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.core.lifecycle.callback
+      </artifactId>
+            <version>${ipojo.core.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.core.lifecycle.controller
+      </artifactId>
+            <version>${ipojo.core.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.core.ps</artifactId>
+            <version>${ipojo.core.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.core.lifecycle.controller
+      </artifactId>
+            <version>${ipojo.core.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.core.service.dependency
+      </artifactId>
+            <version>${ipojo.core.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.core.service.dependency.bindingpolicy
+      </artifactId>
+            <version>${ipojo.core.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.core.service.dependency.comparator
+      </artifactId>
+            <version>${ipojo.core.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.core.service.dependency.filter
+      </artifactId>
+            <version>${ipojo.core.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <artifactId>tests.core.ps.strategy</artifactId>
+            <groupId>ipojo.tests</groupId>
+            <version>${ipojo.core.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+
+
+        <!-- Composite -->
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.composite </artifactId>
+            <version>${ipojo.composite.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.composite.service.import-export</artifactId>
+            <version>${ipojo.composite.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.composite.service.instance</artifactId>
+            <version>${ipojo.composite.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.composite.service.providing</artifactId>
+            <version>${ipojo.composite.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- External handlers -->
+
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.eventadmin.handler</artifactId>
+            <version>${ipojo.eah.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.temporal </artifactId>
+            <version>${ipojo.temporal.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>ipojo.tests</groupId>
+            <artifactId>tests.whiteboard </artifactId>
+            <version>${ipojo.wbp.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <!-- Utility bundles -->
+
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.ipojo.handler.whiteboard</artifactId>
+            <version>${ipojo.wbp.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.ipojo.handler.temporal</artifactId>
+            <version>${ipojo.temporal.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.ipojo.handler.eventadmin</artifactId>
+            <version>${ipojo.eah.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.eventadmin</artifactId>
+            <version>1.2.2</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.ipojo.composite</artifactId>
+            <version>${ipojo.composite.snapshot}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.configadmin</artifactId>
+            <version>1.2.4</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
-    </profile>
-  </profiles>
+
+    <profiles>
+        <profile>
+            <id>configadmin</id>
+            <dependencies>
+                <dependency>
+                    <groupId>ipojo.tests</groupId>
+                    <artifactId>tests.core.configadmin</artifactId>
+                    <version>${ipojo.core.snapshot}</version>
+                    <scope>test</scope>
+                </dependency>
+            </dependencies>
+        </profile>
+    </profiles>
 </project>
diff --git a/ipojo/tests/manipulator/creation/pom.xml b/ipojo/tests/manipulator/creation/pom.xml
index b67984f..068e821 100644
--- a/ipojo/tests/manipulator/creation/pom.xml
+++ b/ipojo/tests/manipulator/creation/pom.xml
@@ -1,110 +1,109 @@
 <!--
-	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
+  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
+  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.
+  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.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<parent>
-		<groupId>ipojo.tests</groupId>
-		<artifactId>ipojo.tests</artifactId>
-		<version>1.5.0-SNAPSHOT</version>
-	</parent>
-	<modelVersion>4.0.0</modelVersion>
-	<packaging>bundle</packaging>
-	<name>iPOJO Creation Manipulation Test Suite</name>
-	<artifactId>tests.manipulation.creation</artifactId>
-	<groupId>ipojo.tests</groupId>
-	<version>1.5.0-SNAPSHOT</version>
-	<dependencies>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.metadata</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.core</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>3.8.1</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.junit4osgi</artifactId>
-			<version>1.1.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.compendium</artifactId>
-			<version>4.0.0</version>
-		</dependency>
-	</dependencies>
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.felix</groupId>
-				<artifactId>maven-bundle-plugin</artifactId>
-				<extensions>true</extensions>
-				<configuration>
-					<instructions>
-						<Export-Package>
-							org.apache.felix.ipojo.test.scenarios.manipulation.service
-						</Export-Package>
-						<Bundle-SymbolicName>
-							${project.artifactId}
-						</Bundle-SymbolicName>
-						<Private-Package>
-							org.apache.felix.ipojo.test*
-						</Private-Package>
-						<Test-Suite>
-							org.apache.felix.ipojo.test.scenarios.manipulation.ManipulationTestSuite
-						</Test-Suite>
-					</instructions>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.felix</groupId>
-				<artifactId>maven-ipojo-plugin</artifactId>
-                <version>1.7.0-SNAPSHOT</version>
-				<executions>
-					<execution>
-						<goals>
-							<goal>ipojo-bundle</goal>
-						</goals>
-						<configuration>
-							<ignoreAnnotations>true</ignoreAnnotations>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<configuration>
-					<source>1.4</source>
-					<target>1.4</target>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
+  <parent>
+    <groupId>ipojo.tests</groupId>
+    <artifactId>ipojo.tests</artifactId>
+    <version>1.5.0-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <packaging>bundle</packaging>
+  <name>iPOJO Creation Manipulation Test Suite</name>
+  <artifactId>tests.manipulation.creation</artifactId>
+  <groupId>ipojo.tests</groupId>
+  <version>${ipojo.core.snapshot}</version>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo.metadata</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo.junit4osgi</artifactId>
+      <version>1.1.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.compendium</artifactId>
+      <version>4.0.0</version>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Export-Package>
+              org.apache.felix.ipojo.test.scenarios.manipulation.service
+            </Export-Package>
+            <Bundle-SymbolicName>
+              ${project.artifactId}
+            </Bundle-SymbolicName>
+            <Private-Package>
+              org.apache.felix.ipojo.test*
+            </Private-Package>
+            <Test-Suite>
+              org.apache.felix.ipojo.test.scenarios.manipulation.ManipulationTestSuite
+            </Test-Suite>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-ipojo-plugin</artifactId>
+        <version>${ipojo.core.snapshot}</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>ipojo-bundle</goal>
+            </goals>
+            <configuration>
+              <ignoreAnnotations>true</ignoreAnnotations>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>1.4</source>
+          <target>1.4</target>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 </project>
diff --git a/ipojo/tests/manipulator/manipulation/pom.xml b/ipojo/tests/manipulator/manipulation/pom.xml
index d48811c..825c61f 100644
--- a/ipojo/tests/manipulator/manipulation/pom.xml
+++ b/ipojo/tests/manipulator/manipulation/pom.xml
@@ -1,109 +1,109 @@
 <!--
-	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
+  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
+  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.
+  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.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<parent>
-		<groupId>ipojo.tests</groupId>
-		<artifactId>ipojo.tests</artifactId>
-		<version>1.5.0-SNAPSHOT</version>
-	</parent>
-	<modelVersion>4.0.0</modelVersion>
-	<packaging>bundle</packaging>
-	<name>iPOJO Manipulation Test Suite</name>
-	<artifactId>tests.manipulation</artifactId>
-	<groupId>ipojo.tests</groupId>
-	<version>1.5.0-SNAPSHOT</version>
-	<dependencies>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.metadata</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.core</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>3.8.1</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.junit4osgi</artifactId>
-			<version>1.1.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.compendium</artifactId>
-			<version>4.0.0</version>
-		</dependency>
-	</dependencies>
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.felix</groupId>
-				<artifactId>maven-bundle-plugin</artifactId>
-				<extensions>true</extensions>
-				<configuration>
-					<instructions>
-						<Export-Package>
-							org.apache.felix.ipojo.test.scenarios.manipulation.service
-						</Export-Package>
-						<Bundle-SymbolicName>
-							${project.artifactId}
-						</Bundle-SymbolicName>
-						<Private-Package>
-							org.apache.felix.ipojo.test*
-						</Private-Package>
-						<Test-Suite>
-							org.apache.felix.ipojo.test.scenarios.manipulation.ManipulationTestSuite
-						</Test-Suite>
-					</instructions>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.felix</groupId>
-				<artifactId>maven-ipojo-plugin</artifactId>
-				<executions>
-					<execution>
-						<goals>
-							<goal>ipojo-bundle</goal>
-						</goals>
-						<configuration>
-							<ignoreAnnotations>true</ignoreAnnotations>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<configuration>
-					<source>1.4</source>
-					<target>1.4</target>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
+  <parent>
+    <groupId>ipojo.tests</groupId>
+    <artifactId>ipojo.tests</artifactId>
+    <version>1.5.0-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <packaging>bundle</packaging>
+  <name>iPOJO Manipulation Test Suite</name>
+  <artifactId>tests.manipulation</artifactId>
+  <groupId>ipojo.tests</groupId>
+  <version>${ipojo.core.snapshot}</version>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo.metadata</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo.junit4osgi</artifactId>
+      <version>1.1.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.compendium</artifactId>
+      <version>4.0.0</version>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Export-Package>
+              org.apache.felix.ipojo.test.scenarios.manipulation.service
+            </Export-Package>
+            <Bundle-SymbolicName>
+              ${project.artifactId}
+            </Bundle-SymbolicName>
+            <Private-Package>
+              org.apache.felix.ipojo.test*
+            </Private-Package>
+            <Test-Suite>
+              org.apache.felix.ipojo.test.scenarios.manipulation.ManipulationTestSuite
+            </Test-Suite>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-ipojo-plugin</artifactId>
+        <version>${ipojo.core.snapshot}</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>ipojo-bundle</goal>
+            </goals>
+            <configuration>
+              <ignoreAnnotations>true</ignoreAnnotations>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>1.4</source>
+          <target>1.4</target>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 </project>
diff --git a/ipojo/tests/manipulator/manipulator-java5/pom.xml b/ipojo/tests/manipulator/manipulator-java5/pom.xml
index 99844e8..9bc38d7 100644
--- a/ipojo/tests/manipulator/manipulator-java5/pom.xml
+++ b/ipojo/tests/manipulator/manipulator-java5/pom.xml
@@ -1,122 +1,121 @@
 <!--
-	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
+  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
+  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.
+  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.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<parent>
-		<groupId>ipojo.tests</groupId>
-		<artifactId>ipojo.tests</artifactId>
-		<version>1.5.0-SNAPSHOT</version>
-	</parent>
-	<modelVersion>4.0.0</modelVersion>
-	<packaging>bundle</packaging>
-	<name>iPOJO Manipulation Test Suite For Java 5</name>
-	<artifactId>tests.manipulation.java5</artifactId>
-	<groupId>ipojo.tests</groupId>
-	<version>1.5.0-SNAPSHOT</version>
-	<dependencies>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.metadata</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.core</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>3.8.1</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.junit4osgi</artifactId>
-			<version>1.1.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.compendium</artifactId>
-			<version>4.0.0</version>
-		</dependency>
-	</dependencies>
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.felix</groupId>
-				<artifactId>maven-bundle-plugin</artifactId>
-				<extensions>true</extensions>
-				<configuration>
-					<instructions>
-						<Export-Package>
-							org.apache.felix.ipojo.test.scenarios.manipulation.service
-						</Export-Package>
-						<Bundle-SymbolicName>
-							${project.artifactId}
-						</Bundle-SymbolicName>
-						<Private-Package>
-							org.apache.felix.ipojo.test*
-						</Private-Package>
-						<Test-Suite>
-							org.apache.felix.ipojo.test.scenarios.manipulation.ManipulationTestSuite
-						</Test-Suite>
-					</instructions>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.felix</groupId>
-				<artifactId>maven-ipojo-plugin</artifactId>
-				<version>1.7.0-SNAPSHOT</version>
-				<executions>
-					<execution>
-						<goals>
-							<goal>ipojo-bundle</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<configuration>
-					<source>1.5</source>
-					<target>1.5</target>
-				</configuration>
-			</plugin>
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <parent>
+    <groupId>ipojo.tests</groupId>
+    <artifactId>ipojo.tests</artifactId>
+    <version>1.5.0-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <packaging>bundle</packaging>
+  <name>iPOJO Manipulation Test Suite For Java 5</name>
+  <artifactId>tests.manipulation.java5</artifactId>
+  <groupId>ipojo.tests</groupId>
+  <version>${ipojo.core.snapshot}</version>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo.metadata</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo.junit4osgi</artifactId>
+      <version>1.1.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.compendium</artifactId>
+      <version>4.0.0</version>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Export-Package>
+              org.apache.felix.ipojo.test.scenarios.manipulation.service
+            </Export-Package>
+            <Bundle-SymbolicName>
+              ${project.artifactId}
+            </Bundle-SymbolicName>
+            <Private-Package>
+              org.apache.felix.ipojo.test*
+            </Private-Package>
+            <Test-Suite>
+              org.apache.felix.ipojo.test.scenarios.manipulation.ManipulationTestSuite
+            </Test-Suite>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-ipojo-plugin</artifactId>
+        <version>${ipojo.core.snapshot}</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>ipojo-bundle</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>1.5</source>
+          <target>1.5</target>
+        </configuration>
+      </plugin>
 
-			<plugin>
-				<groupId>org.apache.felix</groupId>
-				<artifactId>maven-junit4osgi-plugin</artifactId>
-				<version>1.1.0-SNAPSHOT</version>
-				<executions>
-					<execution>
-						<goals>
-							<goal>test</goal>
-						</goals>
-						<configuration>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-		</plugins>
-	</build>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-junit4osgi-plugin</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>test</goal>
+            </goals>
+            <configuration>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
 </project>
diff --git a/ipojo/tests/manipulator/metadata/pom.xml b/ipojo/tests/manipulator/metadata/pom.xml
index 56bcfc7..7e79467 100644
--- a/ipojo/tests/manipulator/metadata/pom.xml
+++ b/ipojo/tests/manipulator/metadata/pom.xml
@@ -1,109 +1,109 @@
 <!--
-	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
+  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
+  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.
+  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.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<parent>
-		<groupId>ipojo.tests</groupId>
-		<artifactId>ipojo.tests</artifactId>
-		<version>1.5.0-SNAPSHOT</version>
-	</parent>
-	<modelVersion>4.0.0</modelVersion>
-	<packaging>bundle</packaging>
-	<name>iPOJO Manipulation Metadata Test Suite</name>
-	<artifactId>tests.manipulation.metadata</artifactId>
-	<groupId>ipojo.tests</groupId>
-	<version>1.5.0-SNAPSHOT</version>
-	<dependencies>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.metadata</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.core</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>3.8.1</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.junit4osgi</artifactId>
-			<version>1.1.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.compendium</artifactId>
-			<version>4.0.0</version>
-		</dependency>
-	</dependencies>
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.felix</groupId>
-				<artifactId>maven-bundle-plugin</artifactId>
-				<extensions>true</extensions>
-				<configuration>
-					<instructions>
-						<Export-Package>
-							org.apache.felix.ipojo.test.scenarios.manipulation.service
-						</Export-Package>
-						<Bundle-SymbolicName>
-							${project.artifactId}
-						</Bundle-SymbolicName>
-						<Private-Package>
-							org.apache.felix.ipojo.test*
-						</Private-Package>
-						<Test-Suite>
-							org.apache.felix.ipojo.test.scenarios.manipulation.ManipulationTestSuite
-						</Test-Suite>
-					</instructions>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.felix</groupId>
-				<artifactId>maven-ipojo-plugin</artifactId>
-				<executions>
-					<execution>
-						<goals>
-							<goal>ipojo-bundle</goal>
-						</goals>
-						<configuration>
-							<ignoreAnnotations>true</ignoreAnnotations>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<configuration>
-					<source>1.4</source>
-					<target>1.4</target>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
+  <parent>
+    <groupId>ipojo.tests</groupId>
+    <artifactId>ipojo.tests</artifactId>
+    <version>1.5.0-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <packaging>bundle</packaging>
+  <name>iPOJO Manipulation Metadata Test Suite</name>
+  <artifactId>tests.manipulation.metadata</artifactId>
+  <groupId>ipojo.tests</groupId>
+  <version>${ipojo.core.snapshot}</version>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo.metadata</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo.junit4osgi</artifactId>
+      <version>1.1.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.compendium</artifactId>
+      <version>4.0.0</version>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Export-Package>
+              org.apache.felix.ipojo.test.scenarios.manipulation.service
+            </Export-Package>
+            <Bundle-SymbolicName>
+              ${project.artifactId}
+            </Bundle-SymbolicName>
+            <Private-Package>
+              org.apache.felix.ipojo.test*
+            </Private-Package>
+            <Test-Suite>
+              org.apache.felix.ipojo.test.scenarios.manipulation.ManipulationTestSuite
+            </Test-Suite>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-ipojo-plugin</artifactId>
+                <version>${ipojo.core.snapshot}</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>ipojo-bundle</goal>
+            </goals>
+            <configuration>
+              <ignoreAnnotations>true</ignoreAnnotations>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>1.4</source>
+          <target>1.4</target>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 </project>
diff --git a/ipojo/tests/manipulator/primitives/pom.xml b/ipojo/tests/manipulator/primitives/pom.xml
index 2e24d24..3858d20 100644
--- a/ipojo/tests/manipulator/primitives/pom.xml
+++ b/ipojo/tests/manipulator/primitives/pom.xml
@@ -1,109 +1,109 @@
 <!--
-	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
+  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
+  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.
+  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.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<parent>
-		<groupId>ipojo.tests</groupId>
-		<artifactId>ipojo.tests</artifactId>
-		<version>1.5.0-SNAPSHOT</version>
-	</parent>
-	<modelVersion>4.0.0</modelVersion>
-	<packaging>bundle</packaging>
-	<name>iPOJO Primitive Manipulation Test Suite</name>
-	<artifactId>tests.manipulation.primitives</artifactId>
-	<groupId>ipojo.tests</groupId>
-	<version>1.5.0-SNAPSHOT</version>
-	<dependencies>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo</artifactId>
-			<version>1.7.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.metadata</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.core</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>3.8.1</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.junit4osgi</artifactId>
-			<version>1.1.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.compendium</artifactId>
-			<version>4.0.0</version>
-		</dependency>
-	</dependencies>
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.felix</groupId>
-				<artifactId>maven-bundle-plugin</artifactId>
-				<extensions>true</extensions>
-				<configuration>
-					<instructions>
-						<Export-Package>
-							org.apache.felix.ipojo.test.scenarios.manipulation.service
-						</Export-Package>
-						<Bundle-SymbolicName>
-							${project.artifactId}
-						</Bundle-SymbolicName>
-						<Private-Package>
-							org.apache.felix.ipojo.test*
-						</Private-Package>
-						<Test-Suite>
-							org.apache.felix.ipojo.test.scenarios.manipulation.ManipulationTestSuite
-						</Test-Suite>
-					</instructions>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.felix</groupId>
-				<artifactId>maven-ipojo-plugin</artifactId>
-				<executions>
-					<execution>
-						<goals>
-							<goal>ipojo-bundle</goal>
-						</goals>
-						<configuration>
-							<ignoreAnnotations>true</ignoreAnnotations>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<configuration>
-					<source>1.4</source>
-					<target>1.4</target>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
+  <parent>
+    <groupId>ipojo.tests</groupId>
+    <artifactId>ipojo.tests</artifactId>
+    <version>1.5.0-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <packaging>bundle</packaging>
+  <name>iPOJO Primitive Manipulation Test Suite</name>
+  <artifactId>tests.manipulation.primitives</artifactId>
+  <groupId>ipojo.tests</groupId>
+  <version>${ipojo.core.snapshot}</version>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo.metadata</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.ipojo.junit4osgi</artifactId>
+      <version>1.1.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.compendium</artifactId>
+      <version>4.0.0</version>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Export-Package>
+              org.apache.felix.ipojo.test.scenarios.manipulation.service
+            </Export-Package>
+            <Bundle-SymbolicName>
+              ${project.artifactId}
+            </Bundle-SymbolicName>
+            <Private-Package>
+              org.apache.felix.ipojo.test*
+            </Private-Package>
+            <Test-Suite>
+              org.apache.felix.ipojo.test.scenarios.manipulation.ManipulationTestSuite
+            </Test-Suite>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-ipojo-plugin</artifactId>
+        <version>${ipojo.core.snapshot}</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>ipojo-bundle</goal>
+            </goals>
+            <configuration>
+              <ignoreAnnotations>true</ignoreAnnotations>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>1.4</source>
+          <target>1.4</target>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 </project>
diff --git a/ipojo/tests/online-manipulator/pom.xml b/ipojo/tests/online-manipulator/pom.xml
index 3729fc9..5fb23ad 100644
--- a/ipojo/tests/online-manipulator/pom.xml
+++ b/ipojo/tests/online-manipulator/pom.xml
@@ -99,7 +99,6 @@
 	<dependency>
 		<groupId>org.apache.felix</groupId>
 		<artifactId>org.apache.felix.ipojo</artifactId>
-		<version>1.7.0-SNAPSHOT</version>
 	</dependency>
 	<dependency>
 		<groupId>org.apache.felix</groupId>
diff --git a/ipojo/tests/pom.xml b/ipojo/tests/pom.xml
index 3a20bdf..7404531 100644
--- a/ipojo/tests/pom.xml
+++ b/ipojo/tests/pom.xml
@@ -36,6 +36,23 @@
       </repository>
   </repositories>
 
+
+  <properties>
+    <ipojo.core.release>1.8.0</ipojo.core.release>
+    <ipojo.core.snapshot>1.9.0-SNAPSHOT</ipojo.core.snapshot>
+
+    <ipojo.api.release>1.6.0</ipojo.api.release>
+    <ipojo.api.snapshot>1.7.0-SNAPSHOT</ipojo.api.snapshot>
+
+    <ipojo.composite.release>1.6.0</ipojo.composite.release>
+    <ipojo.composite.snapshot>1.7.0-SNAPSHOT</ipojo.composite.snapshot>
+
+    <ipojo.eah.release>1.6.0</ipojo.eah.release>
+    <ipojo.eah.snapshot>1.7.0-SNAPSHOT</ipojo.eah.snapshot>
+    <ipojo.temporal.snapshot>1.7.0-SNAPSHOT</ipojo.temporal.snapshot>
+    <ipojo.wbp.snapshot>1.5.0-SNAPSHOT</ipojo.wbp.snapshot>
+  </properties>
+
   <dependencyManagement>
     <dependencies>
         <dependency>
@@ -51,27 +68,27 @@
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.ipojo</artifactId>
-            <version>1.6.4</version>
+            <version>${ipojo.core.release}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.ipojo.annotations</artifactId>
-            <version>1.6.4</version>
+            <version>${ipojo.core.release}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.ipojo.api</artifactId>
-            <version>1.6.0</version>
+            <version>${ipojo.api.release}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.ipojo.composite</artifactId>
-            <version>1.6.0</version>
+            <version>${ipojo.composite.release}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.ipojo.manipulator</artifactId>
-            <version>1.6.4</version>
+            <version>${ipojo.core.release}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.felix</groupId>
