Changes from 1.2.0 to 1.4.0
---------------------------
** Bug
    * [FELIX-944] - Fix white-board pattern handler symbolic name
     
** Improvement
    * Update parent pom


Changes from 1.0.0 to 1.2.0
---------------------------
** Improvement
    * [FELIX-834] - Provide Annotations for the extender, whiteboard and event admin handlers
    
Changes from 0.8.0 to 1.0.0
---------------------------
** Improvement
    * [FELIX-673] - Provide OBR description to iPOJO bundles
    * [FELIX-716] - Provide XML schemas for iPOJO descriptors

    
Version 0.8.0
-------------
    * Initial release 
