Changes from 1.3.2 to 1.4.0
---------------------------
** Improvement
    * [FELIX-4608] - Merge Performance IT into Event Admin
    * [FELIX-4604] - Add a configuration to ignore certain events
    * [FELIX-3511] - Use java.concurrent from Java 6
    * [FELIX-4316] - Packages imported dynamically should also be imported statically with an optional flag


Changes from 1.3.0 to 1.3.2
---------------------------
** Bug
    * [FELIX-3689] - Event admin requires org.osgi.util.tracker in version 1.5
    

Changes from 1.2.14 to 1.3.0
----------------------------
** Bug
    * [FELIX-3121] - Add back the manifest header indicating the provided service
    * [FELIX-3451] - EventAdmin ignoring filters for handler which are registered for all (*) topics 

** Improvement
    * [FELIX-3319] - Add invalid topics when not accepting EventHandler
    * [FELIX-3321] - Improve implementation and reduce load on the service registry
    * [FELIX-3518] - Update to EventAdmin Spec 1.3

    
Changes from 1.2.12 to 1.2.14
-----------------------------
** Bug
    * [FELIX-2997] - java.lang.NullPointerException during shutdown while sending events
    * [FELIX-3002] - Embed the OBR specific information for the EventAdmin bundle in the manifest
    * [FELIX-3053] - Potential deadlock if event handler throws Throwable and is bypassing timeout handling
    * [FELIX-3055] - Event Admin deadlocks when sendEvent is called from within a handleEvent method

** Improvement
    * [FELIX-2156] - Remove Import-Service header in MANIFEST


Changes from 1.2.10 to 1.2.12
-----------------------------
** Bug
    * [FELIX-2915] - Potential deadlock on shutdown


Changes from 1.2.8 to 1.2.10
----------------------------
** Bug
    * [FELIX-2836] - Async threads should be daemon threads

** Improvement
    * [FELIX-2861] - Remove unnecessary object creation


Changes from 1.2.6 to 1.2.8
---------------------------
** Improvement
    * [FELIX-2655] - allow event admin log level to be configurable


Changes from 1.2.4 to 1.2.6
---------------------------
** Bug
    * [FELIX-2608] - Threads should be daemon threads


Changes from 1.2.2 to 1.2.4
---------------------------
** Bug
    * [FELIX-2582] - Event admin requires config admin packages
    * [FELIX-2431] - EventAdmin service unregistered but not registered again on ConfigAdmin startup

** Improvement
    * [FELIX-2562] - Remove object caches
    * [FELIX-2558] - Handle configuration changes without restarting event admin service


Changes from 1.0.0 to 1.2.2
---------------------------
** Bug
    * [FELIX-2089] - IllegalStateException thrown by LogWrapper if logging after bundle stop

** Improvement
    * [FELIX-1875] - Add R4.2 support for Event Admin
    * [FELIX-1913] - All events are processed in a queue
    * [FELIX-2020] - Make event admin configurable through configuration admin
    * [FELIX-1960] - Fine-grained timeout configuration
    * [FELIX-664]  - Event Admin OBR description


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