diff --git a/ipojo/annotations/NOTICE b/ipojo/annotations/NOTICE
index a24f618..116de41 100644
--- a/ipojo/annotations/NOTICE
+++ b/ipojo/annotations/NOTICE
@@ -1,5 +1,5 @@
 Apache Felix iPOJO Annotations
-Copyright 2008 The Apache Software Foundation
+Copyright 2008-2009 The Apache Software Foundation
 
 I. Included Software
 
diff --git a/ipojo/annotations/pom.xml b/ipojo/annotations/pom.xml
index b3f2cb3..d10eab6 100644
--- a/ipojo/annotations/pom.xml
+++ b/ipojo/annotations/pom.xml
@@ -60,6 +60,7 @@
 						<Include-Resource> META-INF/LICENCE=LICENSE,
 							META-INF/NOTICE=NOTICE </Include-Resource>
 					</instructions>
+					<obrRepository>NONE</obrRepository>					
 				</configuration>
 			</plugin>
 			<plugin>
diff --git a/ipojo/annotations/src/main/java/org/apache/felix/ipojo/annotations/Requires.java b/ipojo/annotations/src/main/java/org/apache/felix/ipojo/annotations/Requires.java
index 09fc3cb..e65e87e 100644
--- a/ipojo/annotations/src/main/java/org/apache/felix/ipojo/annotations/Requires.java
+++ b/ipojo/annotations/src/main/java/org/apache/felix/ipojo/annotations/Requires.java
@@ -78,4 +78,10 @@
      * Set the from attribute.
      */
     String from() default "";
+    
+    /**
+     * Set the required service specification.
+     * This attribute is required for Collection field.
+     */
+    String specification() default "";
 }
diff --git a/ipojo/ant/NOTICE b/ipojo/ant/NOTICE
index ca33db1..96d5a77 100644
--- a/ipojo/ant/NOTICE
+++ b/ipojo/ant/NOTICE
@@ -1,5 +1,5 @@
 Apache Felix iPOJO Ant Task
-Copyright 2008 The Apache Software Foundation
+Copyright 2008-2009 The Apache Software Foundation
 
 I. Included Software
 
diff --git a/ipojo/ant/pom.xml b/ipojo/ant/pom.xml
index 82a7112..4d9315a 100644
--- a/ipojo/ant/pom.xml
+++ b/ipojo/ant/pom.xml
@@ -80,6 +80,7 @@
 							META-INF/NOTICE=NOTICE, META-INF/LICENSE.asm=LICENSE.asm 
 						</Include-Resource>
 					</instructions>
+					<obrRepository>NONE</obrRepository>
 				</configuration>
 			</plugin>
 			<plugin>
diff --git a/ipojo/arch/NOTICE b/ipojo/arch/NOTICE
index 6caabd4..4c78bd0 100644
--- a/ipojo/arch/NOTICE
+++ b/ipojo/arch/NOTICE
@@ -1,5 +1,5 @@
 Apache Felix iPOJO Arch Command
-Copyright 2008 The Apache Software Foundation
+Copyright 2008-2009 The Apache Software Foundation
 
 I. Included Software
 
diff --git a/ipojo/arch/pom.xml b/ipojo/arch/pom.xml
index b92a089..e19f7f9 100644
--- a/ipojo/arch/pom.xml
+++ b/ipojo/arch/pom.xml
@@ -38,11 +38,6 @@
 		</dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.metadata</artifactId>
-			<version>1.1.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
 			<artifactId>org.apache.felix.shell</artifactId>
 			<version>1.0.2</version>
 		</dependency>
diff --git a/ipojo/composite/NOTICE b/ipojo/composite/NOTICE
index 4216c02..e833af7 100644
--- a/ipojo/composite/NOTICE
+++ b/ipojo/composite/NOTICE
@@ -1,5 +1,5 @@
 Apache Felix iPOJO Composite
-Copyright 2008 The Apache Software Foundation
+Copyright 2008-2009 The Apache Software Foundation
 
 I. Included Software
 
diff --git a/ipojo/composite/pom.xml b/ipojo/composite/pom.xml
index 906434a..1f12b76 100644
--- a/ipojo/composite/pom.xml
+++ b/ipojo/composite/pom.xml
@@ -30,6 +30,11 @@
 	<artifactId>org.apache.felix.ipojo.composite</artifactId>
 	<groupId>org.apache.felix</groupId>
 	<version>1.1.0-SNAPSHOT</version>
+	
+	<properties>
+		<ipojo.package.version>1.1.0</ipojo.package.version>
+	</properties>
+	
 	<dependencies>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
@@ -38,16 +43,6 @@
 		</dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
-			<artifactId>org.osgi.compendium</artifactId>
-			<version>1.2.0</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.metadata</artifactId>
-			<version>1.1.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
 			<artifactId>org.apache.felix.ipojo.manipulator</artifactId>
 			<version>1.1.0-SNAPSHOT</version>
 		</dependency>
@@ -74,18 +69,25 @@
 						<Bundle-DocURL>
 							http://felix.apache.org/site/apache-felix-ipojo.html 
 						</Bundle-DocURL>
-						<Import-Package> org.apache.felix.ipojo,
+						<Import-Package> 
+							org.apache.felix.ipojo,
 							org.apache.felix.ipojo.architecture,
-							org.apache.felix.ipojo.context, org.apache.felix.ipojo.metadata,
-							org.apache.felix.ipojo.parser, org.apache.felix.ipojo.util,
+							org.apache.felix.ipojo.context, 
+							org.apache.felix.ipojo.metadata,
+							org.apache.felix.ipojo.parser, 
+							org.apache.felix.ipojo.util,
 							org.osgi.framework;version=1.3 </Import-Package>
-						<Private-Package> org.apache.felix.ipojo.manipulation,
+						<Private-Package> 
+							org.apache.felix.ipojo.manipulation,
 							org.apache.felix.ipojo.composite.architecture,
 							org.apache.felix.ipojo.composite.service*,
 							org.apache.felix.ipojo.composite.instance,
-							org.apache.felix.ipojo.composite.util, !org.objectweb.asm.xml*,
-							org.objectweb.asm*;-split-package:=merge-first </Private-Package>
-						<Export-Package> org.apache.felix.ipojo.composite; version="0.9.0" 
+							org.apache.felix.ipojo.composite.util, 
+							!org.objectweb.asm.xml*,
+							org.objectweb.asm*;-split-package:=merge-first 
+						</Private-Package>
+						<Export-Package> 
+							org.apache.felix.ipojo.composite; version="${ipojo.package.version}" 
 						</Export-Package>
 						<Include-Resource> META-INF/LICENSE=LICENSE,
 							META-INF/NOTICE=NOTICE, META-INF/LICENSE.asm=LICENSE.asm 
diff --git a/ipojo/core/NOTICE b/ipojo/core/NOTICE
index 6c6ecf8..afc603c 100644
--- a/ipojo/core/NOTICE
+++ b/ipojo/core/NOTICE
@@ -1,5 +1,5 @@
 Apache Felix iPOJO Runtime
-Copyright 2008 The Apache Software Foundation
+Copyright 2008-2009 The Apache Software Foundation
 
 I. Included Software
 
diff --git a/ipojo/core/pom.xml b/ipojo/core/pom.xml
index 3474e20..28290d3 100644
--- a/ipojo/core/pom.xml
+++ b/ipojo/core/pom.xml
@@ -30,6 +30,11 @@
 	<artifactId>org.apache.felix.ipojo</artifactId>
 	<groupId>org.apache.felix</groupId>
 	<version>1.1.0-SNAPSHOT</version>
+	
+	<properties>
+		<ipojo.package.version>1.1.0</ipojo.package.version>
+	</properties>
+	
 	<dependencies>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
@@ -46,11 +51,6 @@
 			<artifactId>org.apache.felix.ipojo.metadata</artifactId>
 			<version>1.1.0-SNAPSHOT</version>
 		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.manipulator</artifactId>
-			<version>1.1.0-SNAPSHOT</version>
-		</dependency>
 	</dependencies>
 	<build>
 		<plugins>
@@ -75,22 +75,30 @@
 							component:org.apache.felix.ipojo.ComponentFactory,
 							handler:org.apache.felix.ipojo.HandlerManagerFactory 
 						</IPOJO-Extension>
-						<Import-Package> org.osgi.framework;version=1.3, org.osgi.service.cm,
-							org.osgi.service.log, !net.sourceforge.cobertura.* </Import-Package>
-						<Private-Package> org.apache.felix.ipojo.handlers.architecture,
-							org.apache.felix.ipojo.handlers.configuration,
+						<Import-Package> 
+							org.osgi.framework;version=1.3, <!-- To support KF 2 --> 
+							org.osgi.service.cm,
+							org.osgi.service.log, 
+							!net.sourceforge.cobertura.* <!--  To support code coverage -->
+						</Import-Package>
+						<Private-Package> 
+							org.apache.felix.ipojo.handlers.architecture,
 							org.apache.felix.ipojo.handlers.lifecycle.callback,
 							org.apache.felix.ipojo.handlers.lifecycle.controller 
 						</Private-Package>
-						<Export-Package> org.apache.felix.ipojo; version="0.9.0",
-							org.apache.felix.ipojo.metadata; version="0.9.0",
-							org.apache.felix.ipojo.architecture; version="0.9.0",
-							org.apache.felix.ipojo.parser; version="0.9.0",
-							org.apache.felix.ipojo.util; version="0.9.0",
-							org.apache.felix.ipojo.handlers.dependency; version="0.9.0",
-							org.apache.felix.ipojo.handlers.providedservice; version="0.9.0",
-							org.apache.felix.ipojo.context; version="0.9.0",
-							org.osgi.service.cm, org.osgi.service.log </Export-Package>
+						<Export-Package> 
+							org.apache.felix.ipojo; version="${ipojo.package.version}",
+							org.apache.felix.ipojo.metadata; version="${ipojo.package.version}",
+							org.apache.felix.ipojo.architecture; version="${ipojo.package.version}",
+							org.apache.felix.ipojo.parser; version="${ipojo.package.version}",
+							org.apache.felix.ipojo.util; version="${ipojo.package.version}",
+							org.apache.felix.ipojo.handlers.dependency; version="${ipojo.package.version}",
+							org.apache.felix.ipojo.handlers.providedservice; version="${ipojo.package.version}",
+							org.apache.felix.ipojo.handlers.configuration; version="${ipojo.package.version}",
+							org.apache.felix.ipojo.context; version="${ipojo.package.version}",
+							org.osgi.service.cm, 
+							org.osgi.service.log 
+						</Export-Package>
 						<Include-Resource> META-INF/LICENCE=LICENSE,
 							META-INF/NOTICE=NOTICE </Include-Resource>
 						<_donotcopy> (CVS|.svn|.+.bak|~.+|metadata.xml) </_donotcopy>
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 cf47054..0b7b350 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
@@ -56,7 +56,7 @@
      * This internal dispatcher helps the OSGi framework to support large
      * scale applications. The internal dispatcher is disabled by default.
      */
-    protected static boolean DISPATCHER_ENABLED = true;
+    static boolean DISPATCHER_ENABLED = true;
     
     /**
      * Property allowing to set if the internal dispatcher is enabled or disabled.
diff --git a/ipojo/handler/eventadmin/NOTICE b/ipojo/handler/eventadmin/NOTICE
index f221cb6..ee23ba3 100644
--- a/ipojo/handler/eventadmin/NOTICE
+++ b/ipojo/handler/eventadmin/NOTICE
@@ -1,5 +1,5 @@
 Apache Felix iPOJO Event Admin Handler
-Copyright 2008 The Apache Software Foundation
+Copyright 2008-2009 The Apache Software Foundation
 
 I. Included Software
 
diff --git a/ipojo/handler/eventadmin/pom.xml b/ipojo/handler/eventadmin/pom.xml
index bf6c959..249b6b9 100644
--- a/ipojo/handler/eventadmin/pom.xml
+++ b/ipojo/handler/eventadmin/pom.xml
@@ -37,11 +37,6 @@
 		</dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.metadata</artifactId>
-			<version>1.1.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
 			<artifactId>org.osgi.core</artifactId>
 			<version>1.0.1</version>
 		</dependency>
diff --git a/ipojo/handler/extender/NOTICE b/ipojo/handler/extender/NOTICE
index 652b572..0346bcf 100644
--- a/ipojo/handler/extender/NOTICE
+++ b/ipojo/handler/extender/NOTICE
@@ -1,5 +1,5 @@
 Apache Felix iPOJO Extender Pattern Handler
-Copyright 2008 The Apache Software Foundation
+Copyright 2008-2009 The Apache Software Foundation
 
 I. Included Software
 
diff --git a/ipojo/handler/extender/pom.xml b/ipojo/handler/extender/pom.xml
index 8981289..2b35e59 100644
--- a/ipojo/handler/extender/pom.xml
+++ b/ipojo/handler/extender/pom.xml
@@ -38,19 +38,9 @@
 		</dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.metadata</artifactId>
-			<version>1.1.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
 			<artifactId>org.osgi.core</artifactId>
 			<version>1.0.1</version>
 		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.osgi.compendium</artifactId>
-			<version>1.2.0</version>
-		</dependency>
 	</dependencies>
 	<build>
 		<plugins>
diff --git a/ipojo/handler/jmx/NOTICE b/ipojo/handler/jmx/NOTICE
index e949939..4a6d1b5 100644
--- a/ipojo/handler/jmx/NOTICE
+++ b/ipojo/handler/jmx/NOTICE
@@ -1,5 +1,5 @@
 Apache Felix iPOJO JMX Handler
-Copyright 2008 The Apache Software Foundation
+Copyright 2008-2009 The Apache Software Foundation
 
 I. Included Software
 
diff --git a/ipojo/handler/jmx/pom.xml b/ipojo/handler/jmx/pom.xml
index 86f85df..1021156 100644
--- a/ipojo/handler/jmx/pom.xml
+++ b/ipojo/handler/jmx/pom.xml
@@ -37,19 +37,9 @@
 		</dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.metadata</artifactId>
-			<version>1.1.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
 			<artifactId>org.osgi.core</artifactId>
 			<version>1.0.1</version>
 		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.osgi.compendium</artifactId>
-			<version>1.2.0</version>
-		</dependency>
 	</dependencies>
 	<build>
 		<plugins>
diff --git a/ipojo/handler/temporal/NOTICE b/ipojo/handler/temporal/NOTICE
index 730aad5..fbaec6c 100644
--- a/ipojo/handler/temporal/NOTICE
+++ b/ipojo/handler/temporal/NOTICE
@@ -1,5 +1,5 @@
 Apache Felix iPOJO Temporal Dependency Handler
-Copyright 2008 The Apache Software Foundation
+Copyright 2008-2009 The Apache Software Foundation
 
 I. Included Software
 
diff --git a/ipojo/handler/temporal/pom.xml b/ipojo/handler/temporal/pom.xml
index be0773b..dfb467e 100644
--- a/ipojo/handler/temporal/pom.xml
+++ b/ipojo/handler/temporal/pom.xml
@@ -38,16 +38,6 @@
 		</dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
-			<artifactId>org.osgi.compendium</artifactId>
-			<version>1.2.0</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.metadata</artifactId>
-			<version>1.1.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
 			<artifactId>org.apache.felix.ipojo</artifactId>
 			<version>1.1.0-SNAPSHOT</version>
 		</dependency>
diff --git a/ipojo/handler/whiteboard/NOTICE b/ipojo/handler/whiteboard/NOTICE
index 26a4074..725a80e 100644
--- a/ipojo/handler/whiteboard/NOTICE
+++ b/ipojo/handler/whiteboard/NOTICE
@@ -1,5 +1,5 @@
 Apache Felix iPOJO Whiteboard Pattern Handler
-Copyright 2008 The Apache Software Foundation
+Copyright 2008-2009 The Apache Software Foundation
 
 I. Included Software
 
diff --git a/ipojo/handler/whiteboard/pom.xml b/ipojo/handler/whiteboard/pom.xml
index cc4865c..1a917be 100644
--- a/ipojo/handler/whiteboard/pom.xml
+++ b/ipojo/handler/whiteboard/pom.xml
@@ -38,19 +38,9 @@
 		</dependency>
 		<dependency>
 			<groupId>org.apache.felix</groupId>
-			<artifactId>org.apache.felix.ipojo.metadata</artifactId>
-			<version>1.1.0-SNAPSHOT</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
 			<artifactId>org.osgi.core</artifactId>
 			<version>1.0.1</version>
 		</dependency>
-		<dependency>
-			<groupId>org.apache.felix</groupId>
-			<artifactId>org.osgi.compendium</artifactId>
-			<version>1.2.0</version>
-		</dependency>
 	</dependencies>
 	<build>
 		<plugins>
diff --git a/ipojo/junit4osgi/felix-command/NOTICE b/ipojo/junit4osgi/felix-command/NOTICE
index c0a0c56..af344f6 100644
--- a/ipojo/junit4osgi/felix-command/NOTICE
+++ b/ipojo/junit4osgi/felix-command/NOTICE
@@ -1,5 +1,5 @@
 Apache Felix iPOJO junit4osgi Felix Command
-Copyright 2008 The Apache Software Foundation
+Copyright 2008-2009 The Apache Software Foundation
 
 I. Included Software
 
diff --git a/ipojo/junit4osgi/felix-command/pom.xml b/ipojo/junit4osgi/felix-command/pom.xml
index 0b49f1d..7a0c5a9 100644
--- a/ipojo/junit4osgi/felix-command/pom.xml
+++ b/ipojo/junit4osgi/felix-command/pom.xml
@@ -63,7 +63,7 @@
 				<extensions>true</extensions>
 				<configuration>
 					<instructions>
-						<Bundle-Name> iPOJO OSGi Junit Runner - Felix Command
+						<Bundle-Name> Apache Felix iPOJO OSGi Junit Runner - Felix Command
 						</Bundle-Name>
 						<Bundle-SymbolicName> ${pom.artifactId}</Bundle-SymbolicName>
 						<Private-Package> org.apache.felix.ipojo.junit4osgi.command
diff --git a/ipojo/junit4osgi/immediate-launcher/NOTICE b/ipojo/junit4osgi/immediate-launcher/NOTICE
index 7324e07..7fecc22 100644
--- a/ipojo/junit4osgi/immediate-launcher/NOTICE
+++ b/ipojo/junit4osgi/immediate-launcher/NOTICE
@@ -1,5 +1,5 @@
 Apache Felix iPOJO junit4osgi Immediate Runner
-Copyright 2008 The Apache Software Foundation
+Copyright 2008-2009 The Apache Software Foundation
 
 I. Included Software
 
diff --git a/ipojo/junit4osgi/immediate-launcher/pom.xml b/ipojo/junit4osgi/immediate-launcher/pom.xml
index c13726a..b247b1f 100644
--- a/ipojo/junit4osgi/immediate-launcher/pom.xml
+++ b/ipojo/junit4osgi/immediate-launcher/pom.xml
@@ -63,7 +63,7 @@
 				<extensions>true</extensions>
 				<configuration>
 					<instructions>
-						<Bundle-Name> iPOJO OSGi Junit Runner - Immediate Runner
+						<Bundle-Name> Apache Felix iPOJO OSGi Junit Runner - Immediate Runner
 						</Bundle-Name>
 						<Bundle-SymbolicName> ${pom.artifactId}</Bundle-SymbolicName>
 						<Private-Package> org.apache.felix.ipojo.junit4osgi.command
diff --git a/ipojo/junit4osgi/junit4osgi/NOTICE b/ipojo/junit4osgi/junit4osgi/NOTICE
index 9c51625..ef78d4c 100644
--- a/ipojo/junit4osgi/junit4osgi/NOTICE
+++ b/ipojo/junit4osgi/junit4osgi/NOTICE
@@ -1,5 +1,5 @@
 Apache Felix iPOJO junit4osgi Framework
-Copyright 2008 The Apache Software Foundation
+Copyright 2008-2009 The Apache Software Foundation
 
 I. Included Software
 
diff --git a/ipojo/junit4osgi/junit4osgi/pom.xml b/ipojo/junit4osgi/junit4osgi/pom.xml
index b7b7774..086a557 100644
--- a/ipojo/junit4osgi/junit4osgi/pom.xml
+++ b/ipojo/junit4osgi/junit4osgi/pom.xml
@@ -62,7 +62,7 @@
 				<configuration>
 					<instructions>
 						<Bundle-Name>
-							iPOJO OSGi Junit Runner
+							Apache Felix iPOJO OSGi Junit Runner
 						</Bundle-Name>
 						<Bundle-SymbolicName>
 							${pom.artifactId}
diff --git a/ipojo/junit4osgi/maven-junit4osgi-plugin/NOTICE b/ipojo/junit4osgi/maven-junit4osgi-plugin/NOTICE
index 34f9403..16d287d 100644
--- a/ipojo/junit4osgi/maven-junit4osgi-plugin/NOTICE
+++ b/ipojo/junit4osgi/maven-junit4osgi-plugin/NOTICE
@@ -1,5 +1,5 @@
 Apache Felix iPOJO junit4osgi Maven Plugin
-Copyright 2008 The Apache Software Foundation
+Copyright 2008-2009 The Apache Software Foundation
 
 I. Included Software
 
diff --git a/ipojo/junit4osgi/swing-runner/NOTICE b/ipojo/junit4osgi/swing-runner/NOTICE
index b766c24..c5c6fa4 100644
--- a/ipojo/junit4osgi/swing-runner/NOTICE
+++ b/ipojo/junit4osgi/swing-runner/NOTICE
@@ -1,5 +1,5 @@
 Apache Felix iPOJO junit4osgi Swing Runner
-Copyright 2008 The Apache Software Foundation
+Copyright 2008-2009 The Apache Software Foundation
 
 I. Included Software
 
diff --git a/ipojo/junit4osgi/swing-runner/pom.xml b/ipojo/junit4osgi/swing-runner/pom.xml
index 137e93b..d20cca0 100644
--- a/ipojo/junit4osgi/swing-runner/pom.xml
+++ b/ipojo/junit4osgi/swing-runner/pom.xml
@@ -56,7 +56,7 @@
 			<extensions>true</extensions>
 			<configuration>
 				<instructions>
-					<Bundle-Name> iPOJO OSGi Junit Runner - Swing Gui</Bundle-Name>
+					<Bundle-Name>Apache Felix iPOJO OSGi Junit Runner - Swing Gui</Bundle-Name>
 					<Bundle-SymbolicName> ${pom.artifactId}</Bundle-SymbolicName>
 					<Private-Package> org.apache.felix.ipojo.junit4osgi.command
 					</Private-Package>
diff --git a/ipojo/manipulator/NOTICE b/ipojo/manipulator/NOTICE
index f323c11..3a8a44b 100644
--- a/ipojo/manipulator/NOTICE
+++ b/ipojo/manipulator/NOTICE
@@ -1,5 +1,5 @@
 Apache Felix iPOJO Manipulator
-Copyright 2008 The Apache Software Foundation
+Copyright 2008-2009 The Apache Software Foundation
 
 I. Included Software
 
diff --git a/ipojo/manipulator/pom.xml b/ipojo/manipulator/pom.xml
index a77ec58..70af710 100644
--- a/ipojo/manipulator/pom.xml
+++ b/ipojo/manipulator/pom.xml
@@ -70,6 +70,7 @@
 							META-INF/LICENCE.asm=LICENSE.asm, META-INF/NOTICE=NOTICE,
 							xsd=src/main/resources </Include-Resource>
 					</instructions>
+					<obrRepository>NONE</obrRepository>
 				</configuration>
 			</plugin>
 			<plugin>
diff --git a/ipojo/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/annotations/FieldCollector.java b/ipojo/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/annotations/FieldCollector.java
index a181605..6dc24c7 100644
--- a/ipojo/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/annotations/FieldCollector.java
+++ b/ipojo/manipulator/src/main/java/org/apache/felix/ipojo/manipulation/annotations/FieldCollector.java
@@ -230,7 +230,7 @@
 
             req.addAttribute(new Attribute("field", m_field));
             if (m_specification != null) {
-                req.addAttribute(new Attribute("interface", m_specification));
+                req.addAttribute(new Attribute("specification", m_specification));
             }
             if (m_filter != null) {
                 req.addAttribute(new Attribute("filter", m_filter));
diff --git a/ipojo/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/Pojoization.java b/ipojo/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/Pojoization.java
index 70650a1..26dfde7 100644
--- a/ipojo/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/Pojoization.java
+++ b/ipojo/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/Pojoization.java
@@ -58,6 +58,11 @@
  * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class Pojoization {
+    
+    /**
+     * iPOJO Imported Package Version.
+     */
+    public static final String IPOJO_PACKAGE_VERSION = " 1.1.0";
 
     /**
      * List of component types.
@@ -586,7 +591,7 @@
     private void setImports(Attributes att) {
         Map imports = parseHeader(att.getValue("Import-Package"));
         Map ver = new TreeMap();
-        ver.put("version", "0.9.0");
+        ver.put("version", IPOJO_PACKAGE_VERSION);
         if (!imports.containsKey("org.apache.felix.ipojo")) {
             imports.put("org.apache.felix.ipojo", ver);
         }
@@ -773,21 +778,19 @@
     }
     
     /**
-     * Get packages referenced by composite.
+     * Get packages referenced by component.
      * @return the list of referenced packages.
      */
     private List getReferredPackages() {
         List referred = new ArrayList();
         for (int i = 0; i < m_metadata.length; i++) {
-            if (m_metadata[i].getName().equalsIgnoreCase("composite")) {
-                Element[] elems = m_metadata[i].getElements();
-                for (int j = 0; j < elems.length; j++) {
-                    String att = elems[j].getAttribute("specification");
-                    if (att != null) {
-                        int last = att.lastIndexOf('.');
-                        if (last != -1) {
-                            referred.add(att.substring(0, last));
-                        }
+            Element[] elems = m_metadata[i].getElements();
+            for (int j = 0; j < elems.length; j++) {
+                String att = elems[j].getAttribute("specification");
+                if (att != null) {
+                    int last = att.lastIndexOf('.');
+                    if (last != -1) {
+                        referred.add(att.substring(0, last));
                     }
                 }
             }
diff --git a/ipojo/metadata/NOTICE b/ipojo/metadata/NOTICE
index 91b81ce..b302b4c 100644
--- a/ipojo/metadata/NOTICE
+++ b/ipojo/metadata/NOTICE
@@ -1,5 +1,5 @@
 Apache Felix iPOJO Metadata
-Copyright 2008 The Apache Software Foundation
+Copyright 2008-2009 The Apache Software Foundation
 
 I. Included Software
 
diff --git a/ipojo/metadata/pom.xml b/ipojo/metadata/pom.xml
index f89e030..edcd143 100644
--- a/ipojo/metadata/pom.xml
+++ b/ipojo/metadata/pom.xml
@@ -46,6 +46,7 @@
 						<Include-Resource> META-INF/LICENCE=LICENSE,
 							META-INF/NOTICE=NOTICE </Include-Resource>
 					</instructions>
+					<obrRepository>NONE</obrRepository>
 				</configuration>
 			</plugin>
 			<plugin>
diff --git a/ipojo/plugin/NOTICE b/ipojo/plugin/NOTICE
index 0b19481..586229b 100644
--- a/ipojo/plugin/NOTICE
+++ b/ipojo/plugin/NOTICE
@@ -1,5 +1,5 @@
 Apache Felix iPOJO Maven Plugin
-Copyright 2008 The Apache Software Foundation
+Copyright 2008-2009 The Apache Software Foundation
 
 I. Included Software
 
diff --git a/ipojo/plugin/src/main/resources/archetype-resources/src/main/resources/metadata.xml b/ipojo/plugin/src/main/resources/archetype-resources/src/main/resources/metadata.xml
index cccd90d..d1a59b6 100644
--- a/ipojo/plugin/src/main/resources/archetype-resources/src/main/resources/metadata.xml
+++ b/ipojo/plugin/src/main/resources/archetype-resources/src/main/resources/metadata.xml
@@ -1,7 +1,8 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<iPOJO>
-	<component className="$YOUR_COMPONENT_CLASS">
-   
+<ipojo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="org.apache.felix.ipojo http://felix.apache.org/ipojo/schemas/CURRENT/core.xsd"
+	xmlns="org.apache.felix.ipojo">
+	<component classname="$YOUR_COMPONENT_CLASS">
+   		<!-- Component type description -->
 	</component>
-	<instance component="$YOUR_COMPONENT_CLASS"/>
-</iPOJO>
\ No newline at end of file
+	<instance component="$YOUR_COMPONENT_CLASS" />
+</ipojo>
\ No newline at end of file
