Changes from the 1.6.0 to 1.6.2
-------------------------------
** Improvement
    * [FELIX-2296] - Access to ServiceReference in iPOJO service.

Changes from the 1.4.0 to 1.6.0
-------------------------------
** Bug
    * [FELIX-1557] - Cosmetic change of the Bundle-Name and Bundle-SymbolicName in iPOJO annotations.
    
** Improvement
    * [FELIX-1426] - Service injection with Dynamic Proxies
    * [FELIX-1427] - Service injection with Smart Proxies
    * [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

** Wish
    * [FELIX-1940] - Add @Instance annotation to declare instances without metadata.xml
    
Changes from 1.2.0 to 1.4.0
---------------------------
** Bug
    * [FELIX-1319] - Issue in the metadata overriding analysis in iPOJO annotations

** Improvement
    * Update parent pom

    
Changes from 1.0.0 to 1.2.0
---------------------------
** Improvement
    * [FELIX-825] - Provide annotation for iPojo JMX Handler
    * [FELIX-834] - Provide Annotations for the extender, whiteboard and event admin handlers

** Bug
    * [FELIX-867] - iPOJO @ServiceProperty can target method
    * [FELIX-868] - iPOJO @Component don't support factory methods    


Changes from 0.8.0 to 1.0.0
---------------------------
** Improvement
    * [FELIX-627] - Temporal dependency annotation


Version 0.8.0
-------------
    * Initial release
