Changes from 2.0.2 to 2.0.4
---------------------------
** Improvement
    * [FELIX-5489] - Remove dependency to org.json
** Bug
    * [FELIX-5488] - DS Plugin should use PID from ComponentDescriptionDTO


Changes from 2.0.0 to 2.0.2
---------------------------
** Improvement
    * [FELIX-4998] - Declarative Service plugin might provide JSON format support for Inventory Printer
** Bug
    * [FELIX-5005] - BundleInfoProvider should work with null being passed as appRoot
    * [FELIX-5023] - Web Console plugin is missing function to enable component descriptions


Changes from 1.0.0 to 2.0.0
---------------------------

** Improvement
    * [FELIX-4786] - Update to latest DS implementation
    * [FELIX-4559] - DS plugin should use Inventory instead of deprecated ConfigurationPrinter
    * [FELIX-3861] - Set felix.webconsole.category on Web Console plugins
    * [FELIX-3140] - Display link for component id within the bundle details and service details view

** Bug
    * [FELIX-4872] - Error while downloadig full text config in BundlesServlet: IllegalArgumentException: Invalid local link

    
Initial Release 1.0.0
---------------------

** Bug
    * [FELIX-3135] - Error page on component reload
    * [FELIX-3268] - Cannot build webconsole and webconsole-plugins with JDK 7
    * [FELIX-3442] - native2ascii doesn't work for DS plugin

** Improvement
    * [FELIX-3100] - Separate SCR plugin
    * [FELIX-3441] - DS plugin inconsistent status text
