diff --git a/ipojo/annotations/pom.xml b/ipojo/annotations/pom.xml
index 770d4be..af66b1f 100644
--- a/ipojo/annotations/pom.xml
+++ b/ipojo/annotations/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
     <relativePath>../../pom/pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
diff --git a/ipojo/ant/pom.xml b/ipojo/ant/pom.xml
index e6bc02c..7c74de2 100644
--- a/ipojo/ant/pom.xml
+++ b/ipojo/ant/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
     <relativePath>../../pom/pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
diff --git a/ipojo/api/pom.xml b/ipojo/api/pom.xml
index af4f11a..6fa7854 100644
--- a/ipojo/api/pom.xml
+++ b/ipojo/api/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
     <relativePath>../../pom/pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
diff --git a/ipojo/arch/pom.xml b/ipojo/arch/pom.xml
index 5c9e930..41f1c68 100644
--- a/ipojo/arch/pom.xml
+++ b/ipojo/arch/pom.xml
@@ -20,7 +20,7 @@
  <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
     <relativePath>../../pom/pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
diff --git a/ipojo/composite/pom.xml b/ipojo/composite/pom.xml
index a368558..41815c1 100644
--- a/ipojo/composite/pom.xml
+++ b/ipojo/composite/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
     <relativePath>../../pom/pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
@@ -35,15 +35,15 @@
   </properties>
   
   <description>
-  iPOJO Compoistion Model. This is an iPOJO extension to execute service composition.
+  iPOJO Composition Model. This is an iPOJO extension to execute service composition.
   </description>
   <url>http://felix.apache.org/site/ipojo-composition-tutorial.html</url>
 
   <dependencies>
     <dependency>
-      <groupId>org.apache.felix</groupId>
+      <groupId>org.osgi</groupId>
       <artifactId>org.osgi.core</artifactId>
-      <version>1.0.1</version>
+      <version>4.0.0</version>
     </dependency>
     <dependency>
       <groupId>org.apache.felix</groupId>
diff --git a/ipojo/core/pom.xml b/ipojo/core/pom.xml
index 07e0b16..00913bc 100644
--- a/ipojo/core/pom.xml
+++ b/ipojo/core/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
     <relativePath>../../pom/pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
@@ -43,14 +43,14 @@
 
   <dependencies>
     <dependency>
-      <groupId>org.apache.felix</groupId>
+      <groupId>org.osgi</groupId>
       <artifactId>org.osgi.core</artifactId>
-      <version>1.0.1</version>
+      <version>4.0.0</version>
     </dependency>
     <dependency>
-      <groupId>org.apache.felix</groupId>
+      <groupId>org.osgi</groupId>
       <artifactId>org.osgi.compendium</artifactId>
-      <version>1.2.0</version>
+      <version>4.0.0</version>
     </dependency>
     <dependency>
       <groupId>org.apache.felix</groupId>
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/Extender.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/Extender.java
index 40a7c86..e0d56fc 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/Extender.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/Extender.java
@@ -75,14 +75,14 @@
     private static final String IPOJO_EXTENSION = "IPOJO-Extension";
 
     /**
-     * The iPOJO Extender logger.
-     */
-    private Logger m_logger;
-
-    /**
      * The Bundle Context of the iPOJO Core bundle.
      */
     private static BundleContext m_context;
+    
+    /**
+     * The iPOJO Extender logger.
+     */
+    private Logger m_logger;
 
     /**
      * The instance creator used to create instances.
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/InstanceCreator.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/InstanceCreator.java
index b92c971..fa48335 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/InstanceCreator.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/InstanceCreator.java
@@ -284,23 +284,6 @@
         }
 
         /**
-         * Returns the used factory.
-         * @return the factory
-         */
-        IPojoFactory getFactory() {
-            return m_factory;
-        }
-
-        /**
-         * Returns the created instance.
-         * @return the instance (or <code>null</code> if no instance are created).
-         */
-        ComponentInstance getInstance() {
-            return m_instance;
-        }
-
-
-        /**
          * Checks if the required factory name match with the given factory.
          * This methods checks only the name, and not the configuration.
          * @param factory the factory to test
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/InstanceManager.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/InstanceManager.java
index 95679e9..2f09a74 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/InstanceManager.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/InstanceManager.java
@@ -72,6 +72,11 @@
      * @see InstanceStateListener
      */
     protected List m_listeners = null;
+    
+    /**
+     * The content of the current instance.
+     */
+    protected List m_pojoObjects;
 
     /**
      * The instance factory.
@@ -107,11 +112,6 @@
     private Class m_clazz;
 
     /**
-     * The content of the current instance.
-     */
-    protected List m_pojoObjects;
-
-    /**
      * The factory method used to create content objects.
      * If <code>null</code>, the regular constructor is used.
      * Once set, this field is immutable.
@@ -139,6 +139,7 @@
      * [id=>{@link Method}].
      */
     private Map m_methods = new HashMap();
+    
 
     /**
      * Creates a new Component Manager.
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedService.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedService.java
index 559b2c2..433b461 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedService.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedService.java
@@ -495,12 +495,20 @@
             return m_field;
         }
         
+        /**
+         * Gets the value.
+         * @return the value
+         */
         public boolean getValue() {
             synchronized (ProvidedService.this) {
                 return m_value;
             }
         }
 
+        /**
+         * Sets the value.
+         * @param value the value
+         */
         public void setValue(Boolean value) {
             synchronized (ProvidedService.this) {
                 if (value.booleanValue() != m_value) {
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceDescription.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceDescription.java
index f1f91c4..e184428 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceDescription.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceDescription.java
@@ -104,6 +104,10 @@
         return m_ps.getState();
     }
     
+    /**
+     * Gets the controller value as a String.
+     * @return the value
+     */
     public String getController() {
         if (m_ps.getController() == null) {
             return null; 
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceHandler.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceHandler.java
index 547fd35..b097a9e 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceHandler.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedServiceHandler.java
@@ -411,11 +411,11 @@
             if (update) {
                 svc.update();
             }
-            if (svc.getController() != null  && svc.getController().getField().equals(fieldName) ) {
+            if (svc.getController() != null  && svc.getController().getField().equals(fieldName)) {
                 if (value instanceof Boolean) {
                     svc.getController().setValue((Boolean) value);
                 } else {
-                    warn ("Boolean value expected for the service controler " + fieldName);
+                    warn("Boolean value expected for the service controler " + fieldName);
                 }
             }
         }
@@ -442,7 +442,7 @@
                     return prop.onGet(pojo, fieldName, value); 
                 }
             }
-            if (svc.getController() != null  && svc.getController().getField().equals(fieldName) ) {
+            if (svc.getController() != null  && svc.getController().getField().equals(fieldName)) {
                 return new Boolean(svc.getController().getValue());
             }
         }
diff --git a/ipojo/core/src/main/java/org/apache/felix/ipojo/util/SecurityHelper.java b/ipojo/core/src/main/java/org/apache/felix/ipojo/util/SecurityHelper.java
index ce8d210..04d576f 100644
--- a/ipojo/core/src/main/java/org/apache/felix/ipojo/util/SecurityHelper.java
+++ b/ipojo/core/src/main/java/org/apache/felix/ipojo/util/SecurityHelper.java
@@ -25,7 +25,7 @@
 
 
 /**
- * Methods checking security permissions
+ * Methods checking security permissions.
  * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class SecurityHelper {
@@ -36,7 +36,7 @@
      * This method can be used only if iPOJO is able to
      * registers the services (so for ManagedServiceFactory,
      * Factory and Architecture)
-     * @param itf the service interfaces
+     * @param itfs the service interfaces
      * @param comp the component bundle context
      * @param ipojo the ipojo bundle context
      * @return <code>comp</code> if the bundle has enough permission
@@ -124,7 +124,7 @@
     /**
      * Checks if the component bundle context has enough permission
      * to get the given services.
-     * @param itf the service interfaces
+     * @param itfs the service interfaces
      * @param comp the component bundle context
      * @return <code>true</code> if the bundle has enough permission
      * to get the services, <code>false</code> otherwise.
@@ -164,7 +164,7 @@
     /**
      * Checks if the component bundle context has enough permission
      * to register the given services.
-     * @param itf the service interfaces
+     * @param itfs the service interfaces
      * @param comp the component bundle context
      * @return <code>true</code> if the bundle has enough permission
      * to register the services, <code>false</code> otherwise.
diff --git a/ipojo/handler/eventadmin/pom.xml b/ipojo/handler/eventadmin/pom.xml
index 543a25a..04fad14 100644
--- a/ipojo/handler/eventadmin/pom.xml
+++ b/ipojo/handler/eventadmin/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
     <relativePath>../../pom/pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
@@ -41,14 +41,14 @@
       <version>${pom.version}</version>
     </dependency>
     <dependency>
-      <groupId>org.apache.felix</groupId>
+      <groupId>org.osgi</groupId>
       <artifactId>org.osgi.core</artifactId>
-      <version>1.0.1</version>
+      <version>4.0.0</version>
     </dependency>
     <dependency>
-      <groupId>org.apache.felix</groupId>
+      <groupId>org.osgi</groupId>
       <artifactId>org.osgi.compendium</artifactId>
-      <version>1.2.0</version>
+      <version>4.0.0</version>
     </dependency>
   </dependencies>
   <build>
diff --git a/ipojo/handler/extender/pom.xml b/ipojo/handler/extender/pom.xml
index 5844699..401b6db 100644
--- a/ipojo/handler/extender/pom.xml
+++ b/ipojo/handler/extender/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
     <relativePath>../../pom/pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
@@ -42,9 +42,9 @@
       <version>${pom.version}</version>
     </dependency>
     <dependency>
-      <groupId>org.apache.felix</groupId>
+      <groupId>org.osgi</groupId>
       <artifactId>org.osgi.core</artifactId>
-      <version>1.0.1</version>
+      <version>4.0.0</version>
     </dependency>
   </dependencies>
   <build>
diff --git a/ipojo/handler/jmx/pom.xml b/ipojo/handler/jmx/pom.xml
index d04b889..db7578b 100644
--- a/ipojo/handler/jmx/pom.xml
+++ b/ipojo/handler/jmx/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
     <relativePath>../../pom/pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
@@ -41,9 +41,9 @@
       <version>${pom.version}</version>
     </dependency>
     <dependency>
-      <groupId>org.apache.felix</groupId>
+      <groupId>org.osgi</groupId>
       <artifactId>org.osgi.core</artifactId>
-      <version>1.0.1</version>
+      <version>4.0.0</version>
     </dependency>
   </dependencies>
   <build>
diff --git a/ipojo/handler/temporal/pom.xml b/ipojo/handler/temporal/pom.xml
index 234d89f..23d03d5 100644
--- a/ipojo/handler/temporal/pom.xml
+++ b/ipojo/handler/temporal/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
     <relativePath>../../pom/pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
@@ -37,9 +37,9 @@
   
   <dependencies>
     <dependency>
-      <groupId>org.apache.felix</groupId>
+      <groupId>org.osgi</groupId>
       <artifactId>org.osgi.core</artifactId>
-      <version>1.0.1</version>
+      <version>4.0.0</version>
     </dependency>
     <dependency>
       <groupId>org.apache.felix</groupId>
diff --git a/ipojo/handler/whiteboard/pom.xml b/ipojo/handler/whiteboard/pom.xml
index ae61290..cb8c506 100644
--- a/ipojo/handler/whiteboard/pom.xml
+++ b/ipojo/handler/whiteboard/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
     <relativePath>../../pom/pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
@@ -44,9 +44,9 @@
       <version>${pom.version}</version>
     </dependency>
     <dependency>
-      <groupId>org.apache.felix</groupId>
+      <groupId>org.osgi</groupId>
       <artifactId>org.osgi.core</artifactId>
-      <version>1.0.1</version>
+      <version>4.0.0</version>
     </dependency>
   </dependencies>
   <build>
diff --git a/ipojo/junit4osgi/felix-command/pom.xml b/ipojo/junit4osgi/felix-command/pom.xml
index 39d1563..2f9201a 100644
--- a/ipojo/junit4osgi/felix-command/pom.xml
+++ b/ipojo/junit4osgi/felix-command/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <packaging>bundle</packaging>
diff --git a/ipojo/junit4osgi/immediate-launcher/pom.xml b/ipojo/junit4osgi/immediate-launcher/pom.xml
index 4b7fd3d..854d21a 100644
--- a/ipojo/junit4osgi/immediate-launcher/pom.xml
+++ b/ipojo/junit4osgi/immediate-launcher/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <packaging>bundle</packaging>
diff --git a/ipojo/junit4osgi/junit4osgi/pom.xml b/ipojo/junit4osgi/junit4osgi/pom.xml
index 93e0f8f..6d9684b 100644
--- a/ipojo/junit4osgi/junit4osgi/pom.xml
+++ b/ipojo/junit4osgi/junit4osgi/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <packaging>bundle</packaging>
diff --git a/ipojo/junit4osgi/maven-junit4osgi-plugin/pom.xml b/ipojo/junit4osgi/maven-junit4osgi-plugin/pom.xml
index 0386ea3..747257a 100644
--- a/ipojo/junit4osgi/maven-junit4osgi-plugin/pom.xml
+++ b/ipojo/junit4osgi/maven-junit4osgi-plugin/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>maven-junit4osgi-plugin</artifactId>
@@ -36,7 +36,7 @@
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.framework</artifactId>
-      <version>2.0.4</version>
+      <version>2.0.5</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
diff --git a/ipojo/junit4osgi/pom.xml b/ipojo/junit4osgi/pom.xml
index 8f0288b..4d21cd7 100644
--- a/ipojo/junit4osgi/pom.xml
+++ b/ipojo/junit4osgi/pom.xml
@@ -17,11 +17,11 @@
  under the License.
 -->
 <project>
-	<parent>
-		<groupId>org.apache.felix</groupId>
-		<artifactId>felix-parent</artifactId>
-		<version>1.2.0</version>
-	</parent>
+  <parent>
+    <groupId>org.apache.felix</groupId>
+    <artifactId>felix-parent</artifactId>
+    <version>1.2.1</version>
+  </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>Junit4OSGi</artifactId>
   <groupId>org.apache.felix</groupId>
@@ -30,30 +30,30 @@
   <packaging>pom</packaging>
   
   <modules>
-		<module>junit4osgi</module>
-		<module>felix-command</module>
-		<module>maven-junit4osgi-plugin</module>
-		<module>immediate-launcher</module>
+    <module>junit4osgi</module>
+    <module>felix-command</module>
+    <module>maven-junit4osgi-plugin</module>
+    <module>immediate-launcher</module>
   </modules>
 
   <profiles>
-	<profile>
-		<id>java5</id>
-		<activation>
-			<jdk>1.5</jdk>
-		</activation>
-		<modules>
-			<module>swing-runner</module>
-		</modules>
-	</profile>
-	<profile>
-		<id>java6</id>
-		<activation>
-			<jdk>1.6</jdk>
-		</activation>
-		<modules>
-			<module>swing-runner</module>
-		</modules>
-	</profile>
+  <profile>
+    <id>java5</id>
+    <activation>
+      <jdk>1.5</jdk>
+    </activation>
+    <modules>
+      <module>swing-runner</module>
+    </modules>
+  </profile>
+  <profile>
+    <id>java6</id>
+    <activation>
+      <jdk>1.6</jdk>
+    </activation>
+    <modules>
+      <module>swing-runner</module>
+    </modules>
+  </profile>
   </profiles>
 </project>
diff --git a/ipojo/junit4osgi/swing-runner/pom.xml b/ipojo/junit4osgi/swing-runner/pom.xml
index 75f3df5..68ceefb 100644
--- a/ipojo/junit4osgi/swing-runner/pom.xml
+++ b/ipojo/junit4osgi/swing-runner/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <packaging>bundle</packaging>
diff --git a/ipojo/manipulator/pom.xml b/ipojo/manipulator/pom.xml
index 0a10202..994b27c 100644
--- a/ipojo/manipulator/pom.xml
+++ b/ipojo/manipulator/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
     <relativePath>../../pom/pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
diff --git a/ipojo/metadata/pom.xml b/ipojo/metadata/pom.xml
index 0426e44..cec2ea2 100644
--- a/ipojo/metadata/pom.xml
+++ b/ipojo/metadata/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
     <relativePath>../../pom/pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
diff --git a/ipojo/online-manipulator/pom.xml b/ipojo/online-manipulator/pom.xml
index e564474..e1acb2f 100644
--- a/ipojo/online-manipulator/pom.xml
+++ b/ipojo/online-manipulator/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
     <relativePath>../../pom/pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
@@ -121,9 +121,9 @@
       </exclusions>
     </dependency>
     <dependency>
-      <groupId>org.apache.felix</groupId>
+      <groupId>org.osgi</groupId>
       <artifactId>org.osgi.core</artifactId>
-      <version>1.2.0</version>
+      <version>4.0.0</version>
     </dependency>
   </dependencies>
 </project>
diff --git a/ipojo/plugin/pom.xml b/ipojo/plugin/pom.xml
index c36f98b..e488cd7 100644
--- a/ipojo/plugin/pom.xml
+++ b/ipojo/plugin/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
     <relativePath>../../pom/pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
diff --git a/ipojo/pom.xml b/ipojo/pom.xml
index df85659..0271cbb 100644
--- a/ipojo/pom.xml
+++ b/ipojo/pom.xml
@@ -20,7 +20,7 @@
  <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
     <relativePath>../pom/pom.xml</relativePath>
   </parent>
 
diff --git a/ipojo/tests/api/pom.xml b/ipojo/tests/api/pom.xml
index 1a045b6..895103f 100644
--- a/ipojo/tests/api/pom.xml
+++ b/ipojo/tests/api/pom.xml
@@ -52,6 +52,11 @@
 
   <dependencies>
     <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+      <version>4.2.0</version>
+    </dependency>
+    <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo</artifactId>
       <version>${pom.version}</version>
diff --git a/ipojo/tests/bundleAsiPOJO/bundleAsiPOJO/pom.xml b/ipojo/tests/bundleAsiPOJO/bundleAsiPOJO/pom.xml
index b81f645..1cf653b 100644
--- a/ipojo/tests/bundleAsiPOJO/bundleAsiPOJO/pom.xml
+++ b/ipojo/tests/bundleAsiPOJO/bundleAsiPOJO/pom.xml
@@ -11,7 +11,7 @@
   <parent>
     <artifactId>felix-parent</artifactId>
     <groupId>org.apache.felix</groupId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
   </parent>
   
   <dependencies>
diff --git a/ipojo/tests/bundleAsiPOJO/helpers/pom.xml b/ipojo/tests/bundleAsiPOJO/helpers/pom.xml
index 647d632..9806443 100644
--- a/ipojo/tests/bundleAsiPOJO/helpers/pom.xml
+++ b/ipojo/tests/bundleAsiPOJO/helpers/pom.xml
@@ -31,7 +31,7 @@
   <parent>
     <artifactId>felix-parent</artifactId>
     <groupId>org.apache.felix</groupId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
   </parent>
 
   <build>
diff --git a/ipojo/tests/core/handler/src/test/java/org/apache/felix/ipojo/tests/core/DummyHandlerTest.java b/ipojo/tests/core/handler/src/test/java/org/apache/felix/ipojo/tests/core/DummyHandlerTest.java
index bb59973..880e689 100644
--- a/ipojo/tests/core/handler/src/test/java/org/apache/felix/ipojo/tests/core/DummyHandlerTest.java
+++ b/ipojo/tests/core/handler/src/test/java/org/apache/felix/ipojo/tests/core/DummyHandlerTest.java
@@ -86,7 +86,7 @@
                              .build(asiPOJOBundle(new File("src/test/resources/dummy-component.xml")))
                          ),
                     provision(
-                        mavenBundle().groupId("org.apache.felix").artifactId("org.osgi.compendium").versionAsInProject()
+                        mavenBundle().groupId("org.apache.felix").artifactId("org.osgi.compendium").version("1.4.0")
                             ));
         Option[] r = OptionUtils.combine(platform, bundles);
 
diff --git a/ipojo/tests/core/logger/pom.xml b/ipojo/tests/core/logger/pom.xml
index 15e4b0d..03e6cbb 100644
--- a/ipojo/tests/core/logger/pom.xml
+++ b/ipojo/tests/core/logger/pom.xml
@@ -50,6 +50,11 @@
   </build>
 
   <dependencies>
+      <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+      <version>4.2.0</version>
+    </dependency>
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo</artifactId>
diff --git a/ipojo/tests/core/service-providing-inheritance/pom.xml b/ipojo/tests/core/service-providing-inheritance/pom.xml
index a01b289..5b71205 100644
--- a/ipojo/tests/core/service-providing-inheritance/pom.xml
+++ b/ipojo/tests/core/service-providing-inheritance/pom.xml
@@ -55,6 +55,11 @@
       <artifactId>org.apache.felix.ipojo</artifactId>
       <version>${pom.version}</version>
     </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+      <version>4.2.0</version>
+    </dependency>
 
   <!-- Pax Exam API: -->
     <dependency>
diff --git a/ipojo/webconsole-plugin/pom.xml b/ipojo/webconsole-plugin/pom.xml
index 0605305..bfa2306 100644
--- a/ipojo/webconsole-plugin/pom.xml
+++ b/ipojo/webconsole-plugin/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.felix</groupId>
     <artifactId>felix-parent</artifactId>
-    <version>1.2.0</version>
+    <version>1.2.1</version>
     <relativePath>../pom/pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
