diff --git a/ipojo/annotations/DEPENDENCIES b/ipojo/annotations/DEPENDENCIES
index c20d6f7..ac6fd9e 100644
--- a/ipojo/annotations/DEPENDENCIES
+++ b/ipojo/annotations/DEPENDENCIES
@@ -1,13 +1,13 @@
 Apache Felix iPOJO Annotations
 Copyright 2008-2010 The Apache Software Foundation
 
-I. Included Software
+This software was developed at the Apache Software Foundation
+(http://www.apache.org) and may have dependencies on other
+Apache software licensed under Apache License 2.0.
 
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-Licensed under the Apache License 2.0.
+I. Included Third-Party Software
 
-II. Used Software
+II. Used Third-Party Software
 
 III. License Summary
 - Apache License 2.0
diff --git a/ipojo/annotations/pom.xml b/ipojo/annotations/pom.xml
index ad1b0f5..bbe3d18 100644
--- a/ipojo/annotations/pom.xml
+++ b/ipojo/annotations/pom.xml
@@ -29,15 +29,15 @@
   <version>1.7.0-SNAPSHOT</version>
   <packaging>bundle</packaging>
   <name>Apache Felix iPOJO Annotations</name>
-  
+
   <description>
   iPOJO Annotation pack. contained annotations are used to define iPOJO component type.
   </description>
   <url>
   http://felix.apache.org/site/how-to-use-ipojo-annotations.html
   </url>
-  
-  
+
+
   <build>
     <plugins>
       <plugin>
@@ -68,7 +68,7 @@
               org.apache.felix.ipojo.handlers.event,
               org.apache.felix.ipojo.transaction
              </Export-Package>
-            <Include-Resource> 
+            <Include-Resource>
               META-INF/LICENSE=LICENSE,
               META-INF/NOTICE=NOTICE,
               META-INF/DEPENDENCIES=DEPENDENCIES
@@ -90,6 +90,7 @@
             <param>.checkstyle</param>
             <param>.externalToolBuilders/*</param>
             <param>LICENSE.asm</param>
+            <param>DEPENDENCIES</param>
           </excludes>
         </configuration>
       </plugin>
@@ -101,5 +102,21 @@
         </configuration>
       </plugin>
     </plugins>
+
+    <resources>
+		<resource>
+			<directory>src/main/resources</directory>
+		</resource>
+		<resource>
+			<directory>.</directory>
+			<targetPath>META-INF</targetPath>
+			<includes>
+				<include>LICENSE*</include>
+				<include>NOTICE*</include>
+				<include>DEPENDENCIES*</include>
+			</includes>
+		</resource>
+	</resources>
+
   </build>
 </project>
diff --git a/ipojo/core/DEPENDENCIES b/ipojo/core/DEPENDENCIES
index b28d3f5..4855e33 100644
--- a/ipojo/core/DEPENDENCIES
+++ b/ipojo/core/DEPENDENCIES
@@ -1,11 +1,11 @@
 Apache Felix iPOJO Runtime
 Copyright 2008-2010 The Apache Software Foundation
 
-I. Included Software
+This software was developed at the Apache Software Foundation
+(http://www.apache.org) and may have dependencies on other
+Apache software licensed under Apache License 2.0.
 
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-Licensed under the Apache License 2.0.
+I. Included Third-Party Software
 
 This product includes software developed at
 The OSGi Alliance (http://www.osgi.org/).
@@ -16,7 +16,7 @@
 Copyright (c) 2000-2005 INRIA, France Telecom
 Licensed under BSD License.
 
-II. Used Software
+II. Used Third-Party Software
 
 This product uses software developed at
 The OSGi Alliance (http://www.osgi.org/).
diff --git a/ipojo/core/doc/changelog.txt b/ipojo/core/doc/changelog.txt
index aee08b3..114bf35 100644
--- a/ipojo/core/doc/changelog.txt
+++ b/ipojo/core/doc/changelog.txt
@@ -3,7 +3,10 @@
 ** Improvement
     * [FELIX-2420] - Enum support for @Property annotation
     * [FELIX-2461] - Allow specifying the targeted service interface in the @ServiceController
-    * [FELIX-2472] - Proxies should throw a runtime exception instead of a null point exception
+    * [FELIX-2472] - Proxies should throw a runtime exception instead of a null pointer exception
+
+** Bug
+	* [FELIX-2561] - Properties set as required instead of optional in  the component type descriptions
 
 Changes from the 1.6.0 to 1.6.2
 -------------------------------
@@ -34,17 +37,17 @@
     * [FELIX-1854] - Allows instances to directly declares service.* properties (pid, ranking, vendor, description)
     * [FELIX-1885] - Ease CreationStrategy & iPOJOServiceFactory usage
     * [FELIX-1906] - Allow calling a method when service properties of an already injected service are modified
-    
+
 ** New Feature
     * [FELIX-2132] - Provides a way to control service exposition from the implementation class
 
-    
+
 Changes from 1.2.0 to 1.4.0
 ---------------------------
 ** Bug
     * [FELIX-985] - iPOJO analyzes already installed bundle by holding a lock
     * [FELIX-1002] - iPOJO Static binding policy is not compliant with the Declarative Service static binding policy.
-    * [FELIX-1318] - Case mismatch problem of iPOJO custom handler name 
+    * [FELIX-1318] - Case mismatch problem of iPOJO custom handler name
 ** Improvement
     * Update parent pom
     * [FELIX-936] - Allowing publishing class as services
@@ -53,8 +56,8 @@
     * [FELIX-1114] - callback after configuration change needed
     * [FELIX-1163] - Improve error message when an array cannot be created due to a classloading issue
     * [FELIX-1182] - iPOJO - reconfiguration : get all properties with the update callback
-    
-    
+
+
 Changes from 1.0.0 to 1.2.0
 ---------------------------
 ** Bug
@@ -72,35 +75,35 @@
     * [FELIX-818] - Implement the ServiceReference compareTo method
     * [FELIX-853] - Provide new service object creation strategies
     * New introspection API
-    
+
 Changes from 0.8.0 to 1.0.0
 ---------------------------
-** Bug  
+** Bug
     * [FELIX-557] - Factories still living when a primitive component does not have its manipulation metadata
     * [FELIX-632] - Component are set to immediate despite they are already immediate
     * [FELIX-635] - Simplify factory name computation
     * [FELIX-628] - Architecture service should not publish the instance.name property
     * [FELIX-621] - Instances not disposed when instances creation failed
-    
+
 ** Improvement
     * [FELIX-552] - ClassCastException when using services as dynamic proxies
     * [FELIX-555] - Error message in the iPOJO Extender could be more accurate when failing to get the bundle context
-    * [FELIX-558] - Non caught NoClassDefFoundError when the instantiation of a Nullable object failed 
-    * [FELIX-603] - Improve iPOJO Arch service dependency description 
-    * [FELIX-626] - Allow specifying instance configuration containing empty dictionaries 
+    * [FELIX-558] - Non caught NoClassDefFoundError when the instantiation of a Nullable object failed
+    * [FELIX-603] - Improve iPOJO Arch service dependency description
+    * [FELIX-626] - Allow specifying instance configuration containing empty dictionaries
     * [FELIX-629] - Allows instance configuration to declares complex properties
     * [FELIX-631] - Immediate Component Detection
-    * [FELIX-633] - Factory creation should be done in another thread 
-    * [FELIX-634] - Improve error handling 
+    * [FELIX-633] - Factory creation should be done in another thread
+    * [FELIX-634] - Improve error handling
     * [FELIX-655] - Add a 'from' attribute in the service dependencies
     * [FELIX-673] - Provide OBR description to iPOJO bundles
     * [FELIX-683] - Supporting lists and vectors in the service dependency management
     * [FELIX-686] - Supporting collections and set in the service dependency management
-    * [FELIX-688] - Better error reporting when an instance creation failed 
+    * [FELIX-688] - Better error reporting when an instance creation failed
     * [FELIX-689] - Instance 'name' property should become 'instance.name'
-    * [FELIX-716] - Provide XML schemas for iPOJO descriptors 
-    * [FELIX-732] - Duplicate instance created of a managed service 
-    
+    * [FELIX-716] - Provide XML schemas for iPOJO descriptors
+    * [FELIX-732] - Duplicate instance created of a managed service
+
 Version 0.8.0
 -------------
     * Initial release
diff --git a/ipojo/core/pom.xml b/ipojo/core/pom.xml
index a47db9e..35d395b 100644
--- a/ipojo/core/pom.xml
+++ b/ipojo/core/pom.xml
@@ -33,7 +33,7 @@
   <properties>
     <ipojo.package.version>1.6.0</ipojo.package.version>
   </properties>
-  
+
   <description>
   iPOJO Core bundle
   </description>
@@ -155,6 +155,7 @@
             <param>.externalToolBuilders/*</param>
             <param>LICENSE.asm</param>
             <param>.fbprefs</param>
+            <param>DEPENDENCIES</param>
           </excludes>
         </configuration>
       </plugin>
@@ -168,5 +169,21 @@
         </configuration>
       </plugin>
     </plugins>
+
+    <resources>
+		<resource>
+			<directory>src/main/resources</directory>
+		</resource>
+		<resource>
+			<directory>.</directory>
+			<targetPath>META-INF</targetPath>
+			<includes>
+				<include>LICENSE*</include>
+				<include>NOTICE*</include>
+				<include>DEPENDENCIES*</include>
+			</includes>
+		</resource>
+	</resources>
+
   </build>
 </project>
diff --git a/ipojo/manipulator/DEPENDENCIES b/ipojo/manipulator/DEPENDENCIES
index 3a843d3..ee7a58d 100644
--- a/ipojo/manipulator/DEPENDENCIES
+++ b/ipojo/manipulator/DEPENDENCIES
@@ -1,17 +1,17 @@
 Apache Felix iPOJO Manipulator
 Copyright 2008-2010 The Apache Software Foundation
 
-I. Included Software
+This software was developed at the Apache Software Foundation
+(http://www.apache.org) and may have dependencies on other
+Apache software licensed under Apache License 2.0.
 
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-Licensed under the Apache License 2.0.
+I. Included Third-Party Software
 
 This product includes software developed at
 Copyright (c) 2000-2005 INRIA, France Telecom
 Licensed under BSD License.
 
-II. Used Software
+II. Used Third-Party Software
 
 This product uses software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/ipojo/manipulator/doc/changelog.txt b/ipojo/manipulator/doc/changelog.txt
index 5f50586..1a1a37f 100644
--- a/ipojo/manipulator/doc/changelog.txt
+++ b/ipojo/manipulator/doc/changelog.txt
@@ -6,12 +6,14 @@
 ** Improvement
     * [FELIX-2420] - Enum support for @Property annotation
     * [FELIX-2461] - Allow specifying the targeted service interface in the @ServiceController
-    
+    * [FELIX-2485] - Improve the performance of the manipulator on large files
+    * [FELIX-2542] - Annotations on methods parameters are not moved on public methods after manipulation
+
 Changes from the 1.6.0 to 1.6.2
 -------------------------------
 ** Improvement
     * [FELIX-2296] - Access to ServiceReference in iPOJO service.
-    
+
 Changes from the 1.4.2 to 1.6.0
 -------------------------------
 ** Improvement
@@ -21,15 +23,15 @@
 
 ** Wish
     * [FELIX-1940] - Add @Instance annotation to declare instances without metadata.xml
-    
-        
+
+
 Changes from the 1.4.0 to 1.4.2
 -------------------------------
 ** Bug
     * [FELIX-1411] - Issue on windows to find components inside bundle
     * [FELIX-1518] - iPOJO manipulator is really slow even when annotation are ignored
-    
-    
+
+
 Changes from 1.2.0 to 1.4.0
 ---------------------------
 ** Bug
@@ -39,8 +41,8 @@
 ** Improvement
     * Update parent pom
     * [FELIX-943] - Allow iPOJO manipulator to manipulate directories
-    
-    
+
+
 Changes from 1.0.0 to 1.2.0
 ---------------------------
 ** Bug
@@ -67,7 +69,7 @@
     * [FELIX-687] - Support inner and nested classes
     * [FELIX-716] - Provide XML schemas for iPOJO descriptors
 
-    
+
 Version 0.8.0
 -------------
     * Initial release
diff --git a/ipojo/manipulator/pom.xml b/ipojo/manipulator/pom.xml
index 83473d5..5b0e68b 100644
--- a/ipojo/manipulator/pom.xml
+++ b/ipojo/manipulator/pom.xml
@@ -29,11 +29,11 @@
   <groupId>org.apache.felix</groupId>
   <version>1.7.0-SNAPSHOT</version>
   <name>Apache Felix iPOJO Manipulator</name>
-  
+
   <description>
   iPOJO bytecode manipulator. This manipulator is used to instrument java classes in order to be managed by iPOJO.
   </description>
-  
+
   <dependencies>
     <dependency>
       <groupId>asm</groupId>
@@ -71,11 +71,11 @@
               org.apache.felix.ipojo.manipulation.annotations,
               org.apache.felix.ipojo.xml.parser, org.objectweb.asm,
               org.objectweb.asm.commons </Private-Package>
-            <Include-Resource> 
+            <Include-Resource>
               META-INF/LICENSE=LICENSE,
-              META-INF/LICENSE.asm=LICENSE.asm, 
+              META-INF/LICENSE.asm=LICENSE.asm,
               META-INF/NOTICE=NOTICE,
-              xsd=src/main/resources, 
+              xsd=src/main/resources,
               META-INF/DEPENDENCIES=DEPENDENCIES
             </Include-Resource>
             <Import-Package>!org.objectweb.asm.tree, *</Import-Package>
@@ -96,6 +96,7 @@
             <param>.checkstyle</param>
             <param>.externalToolBuilders/*</param>
             <param>LICENSE.asm</param>
+            <param>DEPENDENCIES</param>
           </excludes>
         </configuration>
       </plugin>
@@ -109,5 +110,20 @@
         </configuration>
       </plugin>
     </plugins>
+
+    <resources>
+		<resource>
+			<directory>src/main/resources</directory>
+		</resource>
+		<resource>
+			<directory>.</directory>
+			<targetPath>META-INF</targetPath>
+			<includes>
+				<include>LICENSE*</include>
+				<include>NOTICE*</include>
+				<include>DEPENDENCIES*</include>
+			</includes>
+		</resource>
+	</resources>
   </build>
 </project>
