Changes from the 1.6.0 to the 1.7.0
-----------------------------------
** Improvements
    * Remove dependency to org.json

    
Changes from the 1.6.0 to the 1.7.0
-----------------------------------
** Improvements
    * Integration with the webconsole 4.x

** Task
    * [FELIX-3921] - Update pom to latest Felix's parent

Changes from the 1.4.4 to 1.6.0
-------------------------------
** Improvements
    * Integration with the webconsole 3.x

Changes from the 1.4.2 to 1.4.4
-------------------------------
** Bug
    * [FELIX-1579] - iPOJO Web Console Plugin 1.4.2 does not work as expected

Changes from the 1.4.0 to 1.4.2
-------------------------------
** Bug
    * [FELIX-1497] - iPOJO Web Console plugin NPE when the service reference list is null


Version 1.4.0
-------------
** Improvement
    * Update parent pom
    * Initial commit


