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
    * [FELIX-1302] - Manipulator never ignore annotations
    * [FELIX-1319] - Issue in the metadata overiding analysis in iPOJO annotations

** Improvement
    * Update parent pom
    * [FELIX-943] - Allow iPOJO manipulator to manipulate directories
    
    
Changes from 1.0.0 to 1.2.0
---------------------------
** Bug
    * [FELIX-788] - Failed to create object that extends super class with BundleContext argument

** Improvement
    * [FELIX-813] - Resolve XML-Schemas locally rather than from Internet
    * [FELIX-830] - Simplify the "id/parent" resolution to compute the metadata hierarchy during annotation processing
    * [FELIX-846] - Enhance the iPojo maven plugin to take metadata from pom.
    * [FELIX-876] - Specification auto import is not supported for simple component types


Changes from 0.8.0 to 1.0.0
---------------------------
** Bug
    * [FELIX-649] - "Expecting to find object/array on stack" Error when asking for instance of an iPOJO component
    * [FELIX-697] - Generation of a duplicated field when using generics
    * [FELIX-739] - iPOJO and annotations support when manipulating
    * [FELIX-751] - Wrong access for setter methods

** Improvement
    * [FELIX-655] - Add a 'from' attribute in the service dependencies
    * [FELIX-678] - Improve missing fields detection during the packaging process
    * [FELIX-687] - Support inner and nested classes
    * [FELIX-716] - Provide XML schemas for iPOJO descriptors

    
Version 0.8.0
-------------
    * Initial release
