Changes in 1.9.20
-----------------
** Bug
    * [FELIX-6354] : IllegalStateException on shutdown
    * [FELIX-5690] : ConfigurationHandler should support ignoring whitespace between property key/equal sign & equal sign/property value


Changes in 1.9.18
-----------------
** Improvement
    * [FELIX-6177] : Use BlockingQueue instead of synchronized blocks in UpdateThread
** Bug
    * [FELIX-6162] : ConfigurationManager crashes on shutdown if PersistenceManager not yet available
    * [FELIX-6296] : NPE in Configuration.getProcessedProperties if no properties are set


Changes in 1.9.16
-----------------
** New Feature
    * [FELIX-6131] : Add in-memory persistence manager
    * [FELIX-6059] : Improve usability for ConfigurationPlugins
** Bug
    * [FELIX-6091] : Permissions do not declare a CapabilityPermission for `osgi.implementation`


Changes in 1.9.14
-----------------
** Bug
    * [FELIX-6066] : Duplicate registration of ConfigurationAdmin from PersistenceManagerTracker


Changes in 1.9.12
-----------------
** Bug
    * [FELIX-6062] : Coordination is not checked if its terminated
    * [FELIX-6061] : Avoid using getDeclaredMethods which needs a permission check


Changes in 1.9.10
-----------------
** Bug
    * [FELIX-5962] : Exception during event processing leaves CM threads alive and holding the JVM running during framework shutdown

** New Feature
    * [FELIX-5951] : Automatically add ConfigurationAdmin service as a shell command


Changes in 1.9.8
----------------
** Bug
    * [FELIX-5949] : Configuration _updates_ are ignored when using a NotCachablePersistenceManager


Changes in 1.9.6
----------------
** Bug
    * [FELIX-5908] : NoClassDefFoundError for the CM Security Domain combiner
    * [FELIX-5918] : AccessControlExceptions in ConfigurationAdmin methods


Changes in 1.9.4
----------------
** Bug
    * [FELIX-5892] : Repeated calls to getFactoryConfiguration return different configuration instances


Changes in 1.9.2
----------------
** Bug
    * [FELIX-5845] : org.apache.felix.cm.impl.persistence.PersistenceManagerProxy broken


Changes in 1.9.0
----------------
** Improvement
    * [FELIX-5288] : Implement RFC 227 (OSGi R7 Update)
    * [FELIX-5351] : Implement coordinations (OSGi R7)
    * [FELIX-5289] : Alias PID Handling of Factory Configurations (OSGi R7)
    * [FELIX-5290] : Locking Configuration Records (OSGi R7)
    * [FELIX-5291] : Improve Configuration Updates (OSGi R7)
    * [FELIX-5292] : Capabilities (OSGi R7)
    * [FELIX-5293] : Improved ConfigurationPlugin Support (OSGi R7)
    * [FELIX-5468] : Refactor persistence handling
    * [FELIX-5693] : Improve persistence manager handling
    * [FELIX-5695] : Use Java 7 as base version
    * [FELIX-5778] : Refactor factory configuration handling
** Bug
    * [FELIX-5745] : Empty collections should be allowed as property value


Changes from 1.8.14 to 1.8.16
-----------------------------
** Bug
    * [FELIX-5669] : Registering a PersistenceManager causes duplicate caches.


Changes from 1.8.12 to 1.8.14
-----------------------------
** Bug
    * [FELIX-5443] : Frequent Changes cause UpdateThread to ConcurrentModificationException
    * [FELIX-5435] : Service does not get loaded with updated properties that have been modified on file system after felix framework restart


Changes from 1.8.10 to 1.8.12
-----------------------------

** Improvement
    * [FELIX-5380] : Reduce quite useless log verbosity
    * [FELIX-5366] : Additional Unit Tests for ConfigurationHandler

** Bug
    * [FELIX-5368] : ConfigurationManager ignores NotCachablePersistenceManager marker interface
    * [FELIX-5385] : ConfigAdmin uses wrong security when calling ManagedServices


Changes from 1.8.8 to 1.8.10
----------------------------

** Improvement
    * [FELIX-5088] : CaseSensitiveDictionary should implement equals()
    * [FELIX-5211] : Use provide/require capabilities instead of obsolete and meaningless import-export service headers

** Bug
    * [FELIX-5301] : ConfigurationPlugin support is not spec compliant


Changes from 1.8.6 to 1.8.8
---------------------------

** Improvement
    * [FELIX-4917] : FilePersistenceManager doesn't support comments

** Bug
    * [FELIX-4962] : Configadmin leaks caller's security context downstream
    * [FELIX-4945] : Escaped folder names makes ConfigAdmin incompatible and factory configs not always work


Changes from 1.8.4 to 1.8.6
---------------------------

** Improvement
    * [FELIX-4844] : Store configuration data in a diff-tool friendly way
    * [FELIX-4884] : Avoid unnecessary array creation if listConfigurations does not find anything


Changes from 1.8.2 to 1.8.4
---------------------------

** Bug
    * [FELIX-4846] : Wrong exception type in list operation
    * [FELIX-4851] : ConfigAdmin only forwards ConfigurationEvents to ConfigurationListeners which are provided by bundles that are in state ACTIVE
    * [FELIX-4855] : ConfigAdmin does not update ManagedServiceFactory on framework restart


Changes from 1.8.0 to 1.8.2
----------------------------

** Bug
    * [FELIX-4302] : Config Admin can create illegal names on windows
    * [FELIX-4360] : Ensure ordered property values in configurations
    * [FELIX-4362] : Security ConfigAdmin permissions are inherited on the stack
    * [FELIX-4385] : NPE in Configuration Admin Service when deleting configuration
    * [FELIX-4408] : CaseInsensitiveDictionary is platform/locale dependant
    * [FELIX-4566] : Consistency in PersistenceManager and Cache is not guaranteed

** Improvement
    * [FELIX-4316] : Packages imported dynamically should also be imported statically with an optional flag
    * [FELIX-4811] : Optimize ConfigurationManager#listConfigurations


Changes from 1.6.0 to 1.8.0
----------------------------

** Bug
    * [FELIX-3360] : Bundle location is statically set for dynamically bound bundles
    * [FELIX-3762] : NPE in UpdateConfiguration#run
    * [FELIX-3820] : Possible NPE in ConfigAdmin after shutting down when accessed by bad behaving bundles
    * [FELIX-3823] : ConfigAdmin should explicitely unregister services
    * [FELIX-4165] : FilePersistenceManager fails to rename configuration file
    * [FELIX-4197] : [CM] Always check permission on Configuration.get/setBundleLocation
    * [FELIX-4238] : Unnecessary re-initialization of PersistenceManagers in configadmin

** Improvement
    * [FELIX-4039] : Add Permissions file in ConfigAdmin bundle 

** Task
    * [FELIX-3808] : Upgrade ConfigAdmin to pax-exam 2


Changes from 1.4.0 to 1.6.0
----------------------------

** Bug
    * [FELIX-3532] : Source artifact is not being generated
    * [FELIX-3596] : Config Admin should track SynchronousConfigurationListeners
    * [FELIX-3721] : Configuration not always provided upon initial service registration

** Improvement
    * [FELIX-3577] : Refactor helpers and service trackers
    * [FELIX-3622] : ConfigurationManager.listConfigurations may not always properly log the configuration PID

** Task
    * [FELIX-3479] : [Config Admin 1.5] Implement Configuration.getChangeCount()
    * [FELIX-3480] : [Config Admin 1.5] Implement support for SynchronousConfigurationListener
    * [FELIX-3481] : [Config Admin 1.5] Implement support for Targeted PIDs
    * [FELIX-3483] : [Config Admin 1.5] Export cm API at version 1.5
    * [FELIX-3554] : Prevent same configuration to be delivered multiple times
    * [FELIX-3562] : Use OSGi Configuration Admin 1.5 API classes
    * [FELIX-3578] : ConfigAdmin Maven build does not have Maven convention *-sources.jar artifacts


Changes from 1.2.8 to 1.4.0
----------------------------

** Bug
    * [FELIX-2766] : Calling update() on a newly created factory configuration causes FileNotFoundException
    * [FELIX-2771] : Configuration Admin does not work on Foundation 1.2 and Mika
    * [FELIX-2813] : NPE in UpdateThread when updating a configuration right after ConfigurationAdmin service starts
    * [FELIX-2847] : NPE in ConfigurationManager.java:1003 (static String toString( ServiceReference ref ))
    * [FELIX-2885] : The config admin bundle does not indicate its provided and required services dependencies
    * [FELIX-2888] : if you create a factory configuration and anybody takes a peek before you've had a chance to update, your pudding is trapped forever
    * [FELIX-3046] : Empty array configuration value is read as null after restart
    * [FELIX-3175] : RankingComparator results in wrong results
    * [FELIX-3227] : ManagedService.update must be called with null if configuration exists but is not visilbe
    * [FELIX-3228] : Configuration.getBundleLocation to generous
    * [FELIX-3229] : ConfigurationAdmin.getConfiguration(String, String) and .createConfiguration(String) to generous
    * [FELIX-3230] : ConfiguartionAdapter.setBundleLocation checks configuration permission incorrectly
    * [FELIX-3231] : Disable update counter
    * [FELIX-3233] : ConfigurationManager.canReceive may throw NullPointerException
    * [FELIX-3390] : Intermittent NPE in ConfigurationManager

** Improvement
    * [FELIX-3180] : Provide MessageFormat based logging method
    * [FELIX-3327] : Gracefully handle Configuration access after Configuration Admin Service has terminated

** Task
    * [FELIX-3176] : Implement Configuration Admin 1.4 changes
    * [FELIX-3177] : Remove temporary inclusion of OSGi classes
    * [FELIX-3200] : Track PID changes of ManagedService[Factory] services
    * [FELIX-3301] : Enforce only using Java 1.3 API use

** Wish
    * [FELIX-1747] : Use Remote Resources Plugin to generate the legal files


Changes from 1.2.4 to 1.2.8
---------------------------

** Bug
    * [FELIX-1545] : Configurations may still be delivered more than once (or not at all)
    * [FELIX-1727] : Properties with leading dots not allowed
    * [FELIX-2179] : junit does not need to be a compile scope dependency of configadmin
    * [FELIX-2557] : ConfigurationEvent delivery not building the listener list correctly

** Improvement
    * [FELIX-1907] : Improve documentation on PersistenceManager API
    * [FELIX-2552] : Add caching PersistenceManager proxy
    * [FELIX-2554] : Improve unit test setup to allow for easier use of integration tests from within IDEs

** Task
    * [FELIX-1543] : Remove org.osgi.service.cm from configadmin project as soon as R4.2 compendium library is available from the Maven Repository
    * [FELIX-2559] : Adapt Configuration Admin LICENSE and NOTICE files


Changes from 1.2.0 to 1.2.4
---------------------------

** Bug
    * [FELIX-1535] : Permission is checked against the using bundle instead of the access control context (call stack)
    * [FELIX-1542] : Configuration may be supplied twice in certain situations

** Improvement
    * [FELIX-1541] : Include latest CM 1.3 (Compendium R 4.2) package export


Changes from 1.0.10 to 1.2.0
----------------------------

** Bug
    * [FELIX-979] : Config Admin throwing NPE
    * [FELIX-1146] : ConfigAdmin can deliver updates to a managed service factory more than once
    * [FELIX-1165] : When restarting a bundle, the config admin reports "Configuration ... has already been delivered", and the bundle receives no configuration.
    * [FELIX-1477] : ConfigAdmin implementation is not thread-safe
    * [FELIX-1479] : Security errors accessing configurations in the file system
    * [FELIX-1484] : Dynamically bound configuration must be reset to null after target bundle is uninstalled.
    * [FELIX-1486] : Multiple PIDs must be supported
    * [FELIX-1488] : Configuration binding is broken
    * [FELIX-1489] : New Configurations must still be delivered to ManagedService
    * [FELIX-1508] : Configuration.update() must not send CM_UPDATED event

** Improvement
    * [FELIX-1219] : ConfigAdmin package version has been bumped
    * [FELIX-1507] : Prevent update failure in case of multiple updates/deletes

** New Feature
    * [FELIX-1231] : Support multi-value service.pid service properties
    * [FELIX-1234] : Configuration Plugins should be called for all configuration instances of factory targets


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

** Bug
    * [FELIX-889] : Arrays of primitives not supported by Configuration Admin
    * [FELIX-890] : Configuration.getProperty returns a Dictionary which is not entirely private

** Improvement
    * [FELIX-903] : Add functionality to limit log output in the absence of a LogService


Changes from 1.0.4 to 1.0.8
---------------------------

** Bug
    * [FELIX-740] : ConfigurationManager throws NPE when bundle that registered service is uninstalled
    * [FELIX-880] : ServiceReference of ConfigurationEvent is null
    * [FELIX-881] : Stopping the Configuration Admin bundle causes a NullPointerException

** Improvement
    * [FELIX-665] : Configuration Admin OBR description
    * [FELIX-865] : OBR: Do not declare ManagedService[Factory], ConfigurationListener and PersistenceManager as required services
    * [FELIX-879] : Use Collection interface internally instead of Vector, also be lenient and accept any Colleciton value and do not require Vector


Changes from 1.0.1 to 1.0.4
---------------------------

** Bug
    * [FELIX-611] : ConfigurationAdmin.listConfigurations returns empty configurations
    * [FELIX-612] : ConfigurationAdmin.createFactoryConfiguration should not persist Configuration

** Improvement
    * [FELIX-605] : Include ServiceTracker as private package


Changes from 1.0.0 to 1.0.1
---------------------------

** Bug
    * [FELIX-516] : ManagedService[Factory] may be updated twice with the same Configuration
    * [FELIX-522] : Configuration Admin allows configuration keys with illegal characters


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