diff --git a/ipojo/tests/pom.xml b/ipojo/tests/pom.xml
index e484ad5..909e6fe 100644
--- a/ipojo/tests/pom.xml
+++ b/ipojo/tests/pom.xml
@@ -1,203 +1,203 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-<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>ipojo.tests</artifactId>
-  <version>1.5.0-SNAPSHOT</version>
-  <name>Apache Felix iPOJO Tests</name>
-  <packaging>pom</packaging>
-
-  <repositories>
-      <repository>
-          <releases>
-              <enabled>false</enabled>
-          </releases>
-          <id>ow2.snapshots</id>
-          <name>OW2 Snapshot Repository</name>
-          <url>http://maven.ow2.org/maven2-snapshot/</url>
-      </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.9.0-SNAPSHOT</ipojo.composite.snapshot>
-
-    <ipojo.eah.release>1.6.0</ipojo.eah.release>
-    <ipojo.eah.snapshot>1.9.0-SNAPSHOT</ipojo.eah.snapshot>
-    <ipojo.temporal.snapshot>1.7.0-SNAPSHOT</ipojo.temporal.snapshot>
-    <ipojo.wbp.snapshot>1.6.1-SNAPSHOT</ipojo.wbp.snapshot>
-  </properties>
-
-  <dependencyManagement>
-    <dependencies>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <version>4.2.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-            <version>4.2.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.ipojo</artifactId>
-            <version>${ipojo.core.release}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.ipojo.annotations</artifactId>
-            <version>${ipojo.core.release}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.ipojo.api</artifactId>
-            <version>${ipojo.api.release}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.ipojo.composite</artifactId>
-            <version>${ipojo.composite.release}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.ipojo.manipulator</artifactId>
-            <version>${ipojo.core.release}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.ipojo.handler.whiteboard</artifactId>
-            <version>1.4.0</version>
-        </dependency>
-        <dependency>
-              <groupId>org.apache.felix</groupId>
-              <artifactId>org.apache.felix.ipojo.metadata</artifactId>
-              <version>1.4.0</version>
-           </dependency>
-
-        <dependency>
-            <groupId>org.ow2.chameleon.testing</groupId>
-            <artifactId>tinybundles-ipojo</artifactId>
-            <version>0.2.0</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.ow2.chameleon.testing</groupId>
-            <artifactId>osgi-helpers</artifactId>
-            <version>0.2.0</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-  </dependencyManagement>
-
-  <modules>
-  <module>manipulator/manipulation</module>
-  <module>manipulator/metadata</module>
-  <module>manipulator/primitives</module>
-  <module>manipulator/creation</module>
-  <module>core/factories</module>
-  <module>core/lifecycle-controller</module>
-  <module>core/service-providing</module>
-  <module>core/lifecycle-callback</module>
-  <module>core/service-dependency</module>
-  <module>core/service-dependency-bindingpolicy</module>
-  <module>core/service-dependency-filter</module>
-  <module>core/service-dependency-comparator</module>
-  <module>core/service-providing-strategies</module>
-  <module>core/service-providing-inheritance</module>
-  <module>core/service-dependency-optional</module>
-  <module>core/configuration</module>
-  <module>core/handler</module>
-  <module>core/external-handlers</module>
-  <module>core/bad-configurations</module>
-  <module>core/logger</module>
-  <module>core/factory-version</module>
-  <module>composite/composite-runtime</module>
-  <module>composite/import-export</module>
-  <module>composite/service-instance</module>
-  <module>composite/service-providing</module>
-  <module>handler/temporal</module>
-  <module>handler/whiteboard</module>
-  <module>handler/eventadmin</module>
-  <module>core/configadmin</module>
-  <module>api</module>
-  <module>online-manipulator</module>
-  </modules>
-
-  <build>
-      <pluginManagement>
-          <plugins>
-              <plugin>
-                  <groupId>org.apache.felix</groupId>
-                  <artifactId>maven-ipojo-plugin</artifactId>
-                  <version>1.8.0</version>
-              </plugin>
-              <plugin>
-                  <groupId>org.apache.felix</groupId>
-                  <artifactId>maven-bundle-plugin</artifactId>
-                  <version>2.0.1</version>
-              </plugin>
-          </plugins>
-      </pluginManagement>
-  </build>
-  <profiles>
-    <profile>
-      <id>java5</id>
-      <activation>
-        <jdk>1.5</jdk>
-      </activation>
-      <modules>
-        <module>core/annotations</module>
-        <module>manipulator/manipulator-java5</module>
-        <module>handler/jmx</module>
-        <module>handler/transaction</module>
-      </modules>
-    </profile>
-    <profile>
-      <id>java6</id>
-      <activation>
-        <jdk>1.6</jdk>
-      </activation>
-      <modules>
-        <module>core/annotations</module>
-        <module>manipulator/manipulator-java5</module>
-        <module>handler/jmx</module>
-        <module>handler/transaction</module>
-      </modules>
-    </profile>
-
-    <profile>
-      <id>integration-tests</id>
-      <modules>
-        <module>integration-tests</module>
-      </modules>
-    </profile>
-  </profiles>
-
-</project>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<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>ipojo.tests</artifactId>
+  <version>1.5.0-SNAPSHOT</version>
+  <name>Apache Felix iPOJO Tests</name>
+  <packaging>pom</packaging>
+
+  <repositories>
+      <repository>
+          <releases>
+              <enabled>false</enabled>
+          </releases>
+          <id>ow2.snapshots</id>
+          <name>OW2 Snapshot Repository</name>
+          <url>http://maven.ow2.org/maven2-snapshot/</url>
+      </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.9.0-SNAPSHOT</ipojo.composite.snapshot>
+
+    <ipojo.eah.release>1.6.0</ipojo.eah.release>
+    <ipojo.eah.snapshot>1.9.0-SNAPSHOT</ipojo.eah.snapshot>
+    <ipojo.temporal.snapshot>1.7.0-SNAPSHOT</ipojo.temporal.snapshot>
+    <ipojo.wbp.snapshot>1.6.1-SNAPSHOT</ipojo.wbp.snapshot>
+  </properties>
+
+  <dependencyManagement>
+    <dependencies>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.core</artifactId>
+            <version>4.2.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.compendium</artifactId>
+            <version>4.2.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.ipojo</artifactId>
+            <version>${ipojo.core.release}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.ipojo.annotations</artifactId>
+            <version>${ipojo.core.release}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.ipojo.api</artifactId>
+            <version>${ipojo.api.release}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.ipojo.composite</artifactId>
+            <version>${ipojo.composite.release}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.ipojo.manipulator</artifactId>
+            <version>${ipojo.core.release}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.ipojo.handler.whiteboard</artifactId>
+            <version>1.4.0</version>
+        </dependency>
+        <dependency>
+              <groupId>org.apache.felix</groupId>
+              <artifactId>org.apache.felix.ipojo.metadata</artifactId>
+              <version>1.4.0</version>
+           </dependency>
+
+        <dependency>
+            <groupId>org.ow2.chameleon.testing</groupId>
+            <artifactId>tinybundles-ipojo</artifactId>
+            <version>0.2.0</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.ow2.chameleon.testing</groupId>
+            <artifactId>osgi-helpers</artifactId>
+            <version>0.2.0</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+  <modules>
+  <module>manipulator/manipulation</module>
+  <module>manipulator/metadata</module>
+  <module>manipulator/primitives</module>
+  <module>manipulator/creation</module>
+  <module>core/factories</module>
+  <module>core/lifecycle-controller</module>
+  <module>core/service-providing</module>
+  <module>core/lifecycle-callback</module>
+  <module>core/service-dependency</module>
+  <module>core/service-dependency-bindingpolicy</module>
+  <module>core/service-dependency-filter</module>
+  <module>core/service-dependency-comparator</module>
+  <module>core/service-providing-strategies</module>
+  <module>core/service-providing-inheritance</module>
+  <module>core/service-dependency-optional</module>
+  <module>core/configuration</module>
+  <module>core/handler</module>
+  <module>core/external-handlers</module>
+  <module>core/bad-configurations</module>
+  <module>core/logger</module>
+  <module>core/factory-version</module>
+  <module>composite/composite-runtime</module>
+  <module>composite/import-export</module>
+  <module>composite/service-instance</module>
+  <module>composite/service-providing</module>
+  <module>handler/temporal</module>
+  <module>handler/whiteboard</module>
+  <module>handler/eventadmin</module>
+  <module>core/configadmin</module>
+  <module>api</module>
+  <module>online-manipulator</module>
+  </modules>
+
+  <build>
+      <pluginManagement>
+          <plugins>
+              <plugin>
+                  <groupId>org.apache.felix</groupId>
+                  <artifactId>maven-ipojo-plugin</artifactId>
+                  <version>1.9.0-SNAPSHOT</version>
+              </plugin>
+              <plugin>
+                  <groupId>org.apache.felix</groupId>
+                  <artifactId>maven-bundle-plugin</artifactId>
+                  <version>2.0.1</version>
+              </plugin>
+          </plugins>
+      </pluginManagement>
+  </build>
+  <profiles>
+    <profile>
+      <id>java5</id>
+      <activation>
+        <jdk>1.5</jdk>
+      </activation>
+      <modules>
+        <module>core/annotations</module>
+        <module>manipulator/manipulator-java5</module>
+        <module>handler/jmx</module>
+        <module>handler/transaction</module>
+      </modules>
+    </profile>
+    <profile>
+      <id>java6</id>
+      <activation>
+        <jdk>1.6</jdk>
+      </activation>
+      <modules>
+        <module>core/annotations</module>
+        <module>manipulator/manipulator-java5</module>
+        <module>handler/jmx</module>
+        <module>handler/transaction</module>
+      </modules>
+    </profile>
+
+    <profile>
+      <id>integration-tests</id>
+      <modules>
+        <module>integration-tests</module>
+      </modules>
+    </profile>
+  </profiles>
+
+</project>
