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

** 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
