Changes from the 1.8.4 to 1.8.6
-------------------------------

** Bug
    * [FELIX-3742] - Implementing class fails to load unless super interface's (interface extended by implemented interface) package is imported.
    * [FELIX-3789] - Deadlock due to synchronization on INSTANCE_NAME
    * [FELIX-3819] - The export directive of iPOJO is wrong

Changes from the 1.8.2 to 1.8.4
--------------------------------

** Bug
    * [FELIX-3451] - "instance.name" attribute not recognized
    * [FELIX-3500] - InstanceManager concurrency issue: "A methodID cannot be associated with a method from the POJO class"
    * [FELIX-3501] - IPojo FactoryStateListener doesn't get notified while stopping factory
    * [FELIX-3545] - Memory leak when unregistering a component used by an aggregate dependency with an unbind callback
    * [FELIX-3548] - Concurrent access during startup
    * [FELIX-3567] - iPOJO Configuration Handler should not reuse the dictionary object from the configuration admin
    * [FELIX-3576] - iPOJO fails when using constructor injection and expecting BundleContext in ctor
    * [FELIX-3599] - Problem with 'subservice action="instantiate"' in ipojo composite
    * [FELIX-3621] - Two dimensional array as argument to a method in a component
    * [FELIX-3672] - Potential Concurrent Modification Exception when a bundle is stopped

** Improvement
    * [FELIX-3560] - Extensions to IPojo's Factory and ComponentInstance documentation for custom handlers

Changes from the 1.8.0 to 1.8.2
-------------------------------
** Bug
    * [FELIX-2893] - Properties are not propagate to service by default
    * [FELIX-2902] - Service properties added by propagation overrides already existing properties
    * [FELIX-2907] - Problem calling _setInstanceManager on guice enhanced classe
    * [FELIX-2981] - Unable to remove configuration properties using iPOJO's configuration handler
    * [FELIX-2989] - Using a Service Controller set to true can trigger a service registration-unregistration-registration sequence
    * [FELIX-2995] - The service properties are updated despite there is no changes
    * [FELIX-3009] - Abstract classes as service specifications generates warnings at runtime
    * [FELIX-3075] - Change to ServiceController status in current trunk does not re-register service
    * [FELIX-3172] - Error when calling BundleContext.register(Class, Object, Dictionary)
    * [FELIX-3192] - Service properties are not updated if the properties were already propagated
    * [FELIX-3271] - On KF, the Instance singleton strategy throws an UnsupportedOperationException when stopping
    * [FELIX-3323] - Ipojo composite throw ClassCastException when configuration is updated thru ConfigAdmin
    * [FELIX-3356] - Objectweb ASM Clashes with IPojo
    * [FELIX-3374] - Use of java.lang.Properties in iPOJO Core

** Improvement
    * [FELIX-3036] - Add IPOJO-Components header support
    * [FELIX-3081] - Integrate the online-manipulator in iPOJO Core
    * [FELIX-3144] - Method interceptors should receive Method or Constructor objects
    * [FELIX-3155] - Allow identifying iPojo extensions by a namespace qualified name
    * [FELIX-3190] - iPOJO Factories doesn't give access to the complete Metadata model
    * [FELIX-3252] - Merge the online manipulator into iPOJO Core
    * [FELIX-3326] - Accessing IPojo-Component's all inherited classes and all implemented interfaces in PrimitiveTypeDescription

** New Feature
    * [FELIX-2932] - Allows disabling the asynchronous processing in the iPOJO Extender

Changes from the 1.6.8 to 1.8.0
-------------------------------
** Bug
    * [FELIX-2694] - Instance state not recomputed after reconfiguration when the instance is stopped
    * [FELIX-2716] - [iPOJO] Failure when creating proxies for classes in java.* packages

** Improvement
    * [FELIX-2781] - Expose the implementation class as service when no interfaces are found in the hierarchy
    * [FELIX-1424] - Constructor Injection
    * [FELIX-1428] - Constructor injection of Configuration properties
    * [FELIX-2461] - Allow specifying the targeted service interface in the @ServiceController
    * [FELIX-2620] - Change iPojo annotation parameters to follow java naming conventions
    * [FELIX-2621] - Rename annotations to remove collisions
    * [FELIX-2622] - Support static service properties that are not mirrored into fields
    * [FELIX-2688] - iPojo "requires.filters" - Array object instead of Dictionary object
    * [FELIX-2705] - Provide a way to extend the logger strategy
    * [FELIX-2742] - Constructor injection of service dependencies
    * [FELIX-2744] - Add annotations to the maven-ipojo-plugin archetype

Changes from the 1.6.6 to 1.6.8
-------------------------------
** Improvement
 * [FELIX-2688] - iPojo "requires.filters" - Array object instead of Dictionary object
 * [FELIX-2705] - Provide a way to extend the logger strategy

** Bug
 * [FELIX-2685] - Wrong Element name when XML namespace contains ':'
 * [FELIX-2694] - Instance state not recomputed after reconfiguration when the instance is stopped

Changes from the 1.6.4 to 1.6.6
-------------------------------
** Improvement
 * [FELIX-2594] - Have a way to create new custom iPojo handler without having to specify a handler usage
 * [FELIX-2623] - @Update annotated methods should not require a Dictionary parameter

** Bug
 * [FELIX-2580] - iPOJO failed to create proxies on service which are not interface
 * [FELIX-2596] - DependencyHandler.onObjectCreation throws NPE when bundle is refreshed
 * [FELIX-2603] - wrong behavior of InstanceManager.onSet(..) method
 * [FELIX-2636] - Cannot control the validity of an iPOJO instance using a configuration property

Changes from the 1.6.2 to 1.6.4
-------------------------------
** Improvement
    * [FELIX-2420] - Enum support for @Property annotation
    * [FELIX-2461] - Allow specifying the targeted service interface in the @ServiceController
    * [FELIX-2472] - Proxies should throw a runtime exception instead of a null pointer exception

** Bug
	* [FELIX-2561] - Properties set as required instead of optional in  the component type descriptions

Changes from the 1.6.0 to 1.6.2
-------------------------------
** Bug
    * [FELIX-2308] - getService is called during the unregistration of a service.
    * [FELIX-2309] - Potential NPE when a service has abruptly in the smart proxies.
    * [FELIX-2323] - Unbind method should not be called during the invalidation process if the invalidation does not come from a service departure.

** Improvement
    * [FELIX-2296] - Access to ServiceReference in iPOJO service.

Changes from the 1.4.0 to 1.6.0
-------------------------------
** Bug
    * [FELIX-1533] - Potential deadlock when stopping the underlying OSGi framework
    * [FELIX-1965] - iPojo component is made available regardless of exception during validate
    * [FELIX-2014] - Potential ClassCastException when a service property does not receive a value and is used in the constructor
    * [FELIX-2019] - The Property value is 'null' in the Architecture description, while the value is well assigned to the component's field.
    * [FELIX-2052] - Handler require callback are not called if the service (required) is registered before the instance of the handler has been started.
    * [FELIX-2093] - iPOJO doesn't always use the correct class loader

** Improvement
    * [FELIX-1425] - Service Proxy Mode
    * [FELIX-1426] - Service injection with Dynamic Proxies
    * [FELIX-1427] - Service injection with Smart Proxies
    * [FELIX-1532] - Be able to set the iPOJO Log Level from BND
    * [FELIX-1741] - Allows the configuration handler description to retrieve the managed service PID
    * [FELIX-1854] - Allows instances to directly declares service.* properties (pid, ranking, vendor, description)
    * [FELIX-1885] - Ease CreationStrategy & iPOJOServiceFactory usage
    * [FELIX-1906] - Allow calling a method when service properties of an already injected service are modified

** New Feature
    * [FELIX-2132] - Provides a way to control service exposition from the implementation class


Changes from 1.2.0 to 1.4.0
---------------------------
** Bug
    * [FELIX-985] - iPOJO analyzes already installed bundle by holding a lock
    * [FELIX-1002] - iPOJO Static binding policy is not compliant with the Declarative Service static binding policy.
    * [FELIX-1318] - Case mismatch problem of iPOJO custom handler name
** Improvement
    * Update parent pom
    * [FELIX-936] - Allowing publishing class as services
    * [FELIX-966] - iPOJO: Better error reporting when getPojoObject return null
    * [FELIX-982] - Declare iPOJO as a singleton bundle to avoid multiple version of the runtime at the same time
    * [FELIX-1114] - callback after configuration change needed
    * [FELIX-1163] - Improve error message when an array cannot be created due to a classloading issue
    * [FELIX-1182] - iPOJO - reconfiguration : get all properties with the update callback


Changes from 1.0.0 to 1.2.0
---------------------------
** Bug
    * [FELIX-797] - Composite Architecture contains duplicate instances
    * [FELIX-803] - iPOJO Core schema needs to be fixed
    * [FELIX-805] - Instance not created if the factory becomes valid later
    * [FELIX-866] - iPOJO Provides 'interface' attribute should be 'specifications'

** Improvement
    * [FELIX-787] - iPOJO logger log messages inside the log service and print them
    * [FELIX-796] - Allows enabling/disabling the internal event dispatcher
    * [FELIX-801] - Support service properties injection in bind/unbind callbacks
    * [FELIX-815] - Support optional properties
    * [FELIX-816] - Support comparator attribute with any service binding policy
    * [FELIX-818] - Implement the ServiceReference compareTo method
    * [FELIX-853] - Provide new service object creation strategies
    * New introspection API

Changes from 0.8.0 to 1.0.0
---------------------------
** Bug
    * [FELIX-557] - Factories still living when a primitive component does not have its manipulation metadata
    * [FELIX-632] - Component are set to immediate despite they are already immediate
    * [FELIX-635] - Simplify factory name computation
    * [FELIX-628] - Architecture service should not publish the instance.name property
    * [FELIX-621] - Instances not disposed when instances creation failed

** Improvement
    * [FELIX-552] - ClassCastException when using services as dynamic proxies
    * [FELIX-555] - Error message in the iPOJO Extender could be more accurate when failing to get the bundle context
    * [FELIX-558] - Non caught NoClassDefFoundError when the instantiation of a Nullable object failed
    * [FELIX-603] - Improve iPOJO Arch service dependency description
    * [FELIX-626] - Allow specifying instance configuration containing empty dictionaries
    * [FELIX-629] - Allows instance configuration to declares complex properties
    * [FELIX-631] - Immediate Component Detection
    * [FELIX-633] - Factory creation should be done in another thread
    * [FELIX-634] - Improve error handling
    * [FELIX-655] - Add a 'from' attribute in the service dependencies
    * [FELIX-673] - Provide OBR description to iPOJO bundles
    * [FELIX-683] - Supporting lists and vectors in the service dependency management
    * [FELIX-686] - Supporting collections and set in the service dependency management
    * [FELIX-688] - Better error reporting when an instance creation failed
    * [FELIX-689] - Instance 'name' property should become 'instance.name'
    * [FELIX-716] - Provide XML schemas for iPOJO descriptors
    * [FELIX-732] - Duplicate instance created of a managed service

Version 0.8.0
-------------
    * Initial release
