Changes from 1.10.0 to 1.10.1
-----------------------------

** Bug
    * [FELIX-4072] - onGet and onSet methods do not provide the reference on the pojo object
    * [FELIX-4076] - Useless locking on getRequiredHandler
    * [FELIX-4077] - Fix documentation urls in maven projects
    * [FELIX-4089] - Extender do not deactivate managed components when stopped
    * [FELIX-4096] - NPE when retrieve required and missing handler on a disposed factory
    * [FELIX-4105] - Factories not disposed when their bundle is leaving
    * [FELIX-4106] - Defensive service registration and update
    * [FELIX-4108] - Deadlock in the new extender
    * [FELIX-4109] - ComponentTypeDescription.addProperty() ignore immutable parameter
    * [FELIX-4113] - Factories not disposed when the extension provider is leaving
    * [FELIX-4114] - iPOJO ProvidedServiceDescription does not expose policy & CreationStrategy
    * [FELIX-4123] - Deadlock in new extender because of factory lock used in removedService
    * [FELIX-4127] - Configuration tracker bug when starting and stopping iPOJO successively
    * [FELIX-4129] - Cannot change the optionality of a dependency

** Improvement
    * [FELIX-1430] - Notification mechanism on bind/unbind events
    * [FELIX-4073] - PrimitiveHandler.attach(ComponentInstance) is final
    * [FELIX-4119] - Allow customization of DependencyHandler created Callbacks

** New Feature
    * [FELIX-4116] - Ability to listen for component service dependencies, providings, configuration properties, ...
    * [FELIX-4120] - Allow external entity to interact during the service resolution
    * [FELIX-4125] - Provide 'components' and 'component' commands
    * [FELIX-4130] - Allow retrieving the component instance from the instance description
    * [FELIX-4131] - Explicitly set configuration's location when the configuration is null

** Task
    * [FELIX-4092] - Move 'annotation' module from 'runtime' to 'manipulator' project
    * [FELIX-4103] - Skip deployment of it-tests
    * [FELIX-4104] - Do not run integration-tests in the default build
    * [FELIX-4124] - Move arch-gogo to runtime


Changes from 1.8.6 to 1.10.0
----------------------------

** Bug
    * [FELIX-3451] - "instance.name" attribute not recognized
    * [FELIX-3843] - ClassCastException when listing service properties of a non-ComponentFactory Factory service
    * [FELIX-3895] - iPOJO instance is not shown (with the "arch" commands) if constructor is failing
    * [FELIX-3896] - Null reference are injected with @Bind(optional=false) method on iPOJO components
    * [FELIX-3918] - iPOJO Logger cannot be dynamically configured on Equinox and KF
    * [FELIX-3919] - iPOJO Proxies strategy cannot be configured dynamically on Equinox and KF
    * [FELIX-3920] - Creation Strategy does not work on KF3
    * [FELIX-3974] - Properties cannot be set as immutable using annotations
    * [FELIX-3995] - Missing options in Bind annotation
    * [FELIX-4041] - Properties starting with . should not be propagated
    * [FELIX-4048] - @Requires handler does not fail when no specification can be found
    * [FELIX-4053] - Avoid @StaticServiceProperty to be used on classes
    * [FELIX-4054] - Use current factory version to generate instance name if required

** Improvement
    * [FELIX-3860] - factories and instances iPOJO gogo commands should show the "public=false" instances/factories
    * [FELIX-3932] - Allow dependency filter's to get context-source variables
    * [FELIX-4040] - Implement config admin support to handle binding location properly
    * [FELIX-4045] - Chain Exceptions when possible

** New Feature
    * [FELIX-4034] - Instance configuration DSL

** Task
    * [FELIX-3892] - Upgrade runtime codebase to Java 5
    * [FELIX-3903] - Migrate tests to pax exam 3
    * [FELIX-3921] - Update pom to latest Felix's parent
    * [FELIX-3948] - Define a new extender model
    * [FELIX-3978] - Check that we don't use java 6+ API

** Wish
    * [FELIX-3926] - Provide metadata for the Extender namespace

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


Version 1.8.2
-------------
    * Initial release
