Changes from the 1.6.0 to 1.8.0
-------------------------------
** Improvement
    * [FELIX-2733] - The maven-ipojo-plugin should support JAR and WAR as packaging type
    * [FELIX-2744] - Add annotations to the maven-ipojo-plugin archetype
    * [FELIX-2755] - Allow the manipulator and the different front end to use several metadata files

Changes from the 1.4.2 to 1.6.0
-------------------------------
** Bug
    * [FELIX-1411] - Issue on windows to find components inside bundle

** Improvement
    * [FELIX-1427] - Service injection with Smart Proxies
    * [FELIX-1906] - Allow calling a method when service properties of an already injected service are modified


Changes from the 1.4.0 to 1.4.2
-------------------------------
** Bug
    * [FELIX-1411] - Issue on windows to find components inside bundle


Changes from 1.2.0 to 1.4.0
---------------------------
** Bug
    * [FELIX-1302] - Manipulator never ignore annotations

** Improvement
    * Update parent pom


Changes from 1.0.0 to 1.2.0
---------------------------
** Improvement
    * [FELIX-813] - Resolve XML-Schemas locally rather than from Internet
    * [FELIX-846] - Enhance the iPojo maven plugin to take metadata from pom.

Changes from 0.8.0 to 1.0.0
---------------------------
** Improvement
    * Embed the latest manipulator

Version 0.8.0
-------------
    * Initial release
