Changes from 1.0.6 to 1.0.8
---------------------------
** Improvement
    * [FELIX-5510] - Remove usage of org.json form web console plugins


Changes from 1.0.4 to 1.0.6
---------------------------
** Bug
    * [FELIX-4747] - Executing actions with parameters on UPnP devices does not work

Changes from 1.0.2 to 1.0.4
---------------------------

** Bug
    * [FELIX-3589] - The service id link for UPnP devices doesn't work
    * [FELIX-3595] - NPE in ControlServlet.addingService
    * [FELIX-3669] - NPE in ControlServlet.deviceToJSON
    * [FELIX-4012] - Sometimes the UPnP plugin fails to start due to device being removed from network
    * [FELIX-4013] - Incorrect usage of ServiceTracker.size() in UPnP Plugin
    * [FELIX-4032] - UPnP Plugin small refactoring
    * [FELIX-4560] - Unsynchonized access to map can cause infinite loop in UPnP web console plugin
    * [FELIX-4733] - UPnP plugin native2ascii plugin conflicts with Eclipse m2e

** Improvement
    * [FELIX-3861] - Set felix.webconsole.category on Web Console plugins
    * [FELIX-4016] - Provide more meta data to the UPnP action arguments


Changes from 1.0.0 to 1.0.2
---------------------------

** Bug
    * [FELIX-2783] - UPnP Web Console plug-in expects that action arguments have a constructor with a string argument
    * [FELIX-3268] - Cannot build webconsole and webconsole-plugins with JDK 7
    * [FELIX-3426] - UPnP Plugin device tracking is error-prone
    * [FELIX-3427] - NPE in UPnP Web Console Plugin
    * [FELIX-3428] - NPE in UPnP Web Console Plugin (again)
    * [FELIX-3435] - UPnP plugin doesn't play nice if the service doesn't have state variables
    * [FELIX-3436] - native2ascii doesn't work for UPnP plugin

** Improvement
    * [FELIX-3314] - Sort UPnP devices in alphabetical order
    * [FELIX-3429] - UPnP plugin should also include a configuration printer
    * [FELIX-3431] - UPnP plugin should provide a better status line
    * [FELIX-3432] - UPnP plugin should provide better device property representation
    * [FELIX-3434] - UPnP plugin should give better error description when invoke action fails
    * [FELIX-3454] - Add German language support for Event and UPnP plugins

** Task
    * [FELIX-3528] - Update to parent pom 2.1 and fix license files


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

** Improvement
    * [FELIX-2121] - ProSyst donation of UPnP plugin for the web console
