Changes from 1.4.2 to 1.4.4
---------------------------
** Improvement
    * [FELIX-4623] - Add test for thread based ordering
    * [FELIX-4638] - Less locking on event handler timing
    * [FELIX-4663] - Potential memory leak in AsyncDeliveryTask
** Bug
    * [FELIX-4963] - Eventadmin leaks caller's security context downstream


Changes from 1.4.0 to 1.4.2
---------------------------
** Improvement
    * [FELIX-4623] - Make Async to Sync ThreadPool Ratio Configurable
    * [FELIX-4629] - Documentation - Properties and Property Defaults Incorrect
    * [FELIX-4630] - Adding PerformanceTestIT to measure difference between send and post events
** Bug
    * [FELIX-4627] - Potential Memory Leak in AsyncDeliverTasks
    * [FELIX-4617] - Empty configurations for ignore topic and ignore timeout lead to error messages in the log
    * [FELIX-4618] - NPE if config value for ignore topic or timeout is empty


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