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
