Changes from the 1.8.0 to 1.8.2
-------------------------------
** Bug
    * [FELIX-2825] - The maven-ipojo-plugin does not replace component classes in WAR files
    * [FELIX-2829] - The maven-ipojo-plugin archetype descriptor is not conform
    * [FELIX-2833] - The maven-ipojo-plugin  does not support manipulating artifact with a classifier

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
