Changes in 2.1.0
----------------
** Improvement
    * [FELIX-5841] : Update webconsole plugin to DS 1.4 (R7)


Changes from 2.0.6 to 2.0.8
---------------------------
** Improvement
    * [FELIX-5697] : DS WebConsole Plugin should neither require Configuration Admin nor Metatype
    * [FELIX-5538] : Replace own JSONWriter with version from utils


Changes from 2.0.4 to 2.0.6
---------------------------
** Improvement
    * [FELIX-5495] : No details displayed if component is disabled
    * [FELIX-5496] : Use bundle id and component name as key for urls
** Bug
    * [FELIX-5493] : Component descriptions requiring a policy are not displayed if config is missing
    * [FELIX-5494] : URL handling not correct if component has no configuration


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
