Changes from the 1.8.4 to 1.8.6
-------------------------------

** Bug
    * [FELIX-3461] - Re-manipulation with annotated component produces corrupted MANIFEST
    * [FELIX-3466] - Pojoization.directoryManipulation() does not take MANIFEST file location into account.
    * [FELIX-3508] - IPojo Manipulator left out 'array of enums' in generated metadata
    * [FELIX-3539] - iPOJO Manipulator failed on classes containing expanded frames
    * [FELIX-3573] - IPojo bytecode manipulation generates a duplicate local variable
    * [FELIX-3574] - IPojo bytecode manipulation looses method argument names
    * [FELIX-3621] - Two dimensional array as argument to a method in a component

Changes from the 1.8.2 to 1.8.4
-------------------------------

** Bug
    * [FELIX-3297] - iPOJO Manipulator throws ClassNotFoundException
    * [FELIX-3359] - Turn around to avoid to use the split verifier on Java 7

** Improvement
    * [FELIX-3384] - Ensure maven-ipojo-plugin is thread-safe for parallel maven builds

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
    * [FELIX-3012] - "Duplicate name&signature" problem
    * [FELIX-3098] - iPOJO new manipulator crashes when using a custom reporter
    * [FELIX-3145] - VerifyError on Java 7
    * [FELIX-3249] - iPOJO Bnd Plugin do not write all the metadatas in the manifest

** Improvement
    * [FELIX-3017] - The manipulator should return the original class if it's already manipulated
    * [FELIX-3078] - Introduce resource abstraction in the iPOJO manipulator
    * [FELIX-3079] - Adapt the Ant task and the maven plugin to use the new manipulator capabilities
    * [FELIX-3080] - Implement a BND plugin for iPOJO
    * [FELIX-3131] - Elements and attributes should conserve the insertion order
    * [FELIX-3204] - @Temporal should handle instantiation-time properties
    * [FELIX-3244] - Manipulator : DefaultManifestBuilder should be more extensible


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
