Changes from 1.0.8 to 1.0.10
----------------------------

** Bug
    * [FELIX-6079] - Web Console memory usage page does not display information on Java 11

Changes from 1.0.6 to 1.0.8
---------------------------
** Bug
    * [FELIX-5552] - Handle MemoryPoolMXBean.getUsed returning -1
    * [FELIX-4019] - Memory Management Plugin does not handle unknown values properly


Changes from 1.0.4 to 1.0.6
---------------------------
** Bug
    * [FELIX-4862] - Correct version range for web console package import


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

** Bug
    * [FELIX-3437] - native2ascii doesn't work for memory usage plugin
    * [FELIX-3439] - Bad German localization in memory usage plugin

** Improvement
    * [FELIX-3438] - Add Bulgarian language for memory usage plugin

** Sub-task
    * [FELIX-2538] - Adapt MemoryUsage Web Console Plugin LICENSE and NOTICE files


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

** Bug
    * [FELIX-2241] - The Memory Usage plugin does not support multipart/form-data POST requests
    * [FELIX-2242] - Memory Usage page non-functional if no heap dumps exist
    * [FELIX-2262] - MemoryUage plugin has incorrect symbolic name

** Improvement
    * [FELIX-2264] - Allow for lazy loading and late API binding
    * [FELIX-2498] - Add dump interval to limit memory dumps
    * [FELIX-2499] - Disable Memory Dump writing by default
    * [FELIX-2512] - Web Console Memory Usage plugin also runs with Web Consoel API version 3.1


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

** Improvement
    * [FELIX-2223] - Provide German Translation for the Memory Usage Plugin
    * [FELIX-2224] - Add support to configure the automatic Heap Dump functionality
    * [FELIX-2225] - Format dump file sizes as scaled values like the memory sizes
    * [FELIX-2236] - Improvements and Fixes to the Memory Usage plugin

** Task
    * [FELIX-2208] - Import memory management plugin
    
