2.0.2
-----

** Bug
    * [FELIX-6140] - possible deadlock in ResolverImpl.EnhancedExecutor.await()
    * [FELIX-6212] - Issues with uses capability checking with split packages and reexport

2.0.0
-----

** New Feature
    * [FELIX-5482] - Contribute Resolver 1.1 implementation for OSGi R7

1.16.0
------

** Improvement
    * [FELIX-5782] - allow resolver errors to be introspected

1.14.0
------

** Bug
    * [FELIX-5601] - issues resolving with substitutable exports when the export is the last available provider

1.12.0
------

** Bug
    * [FELIX-5450] - Fragments with multiple hosts can cause java.lang.ArrayIndexOutOfBoundsException
    * [FELIX-5514] - Issues with substituted exports with require bundle

1.10.1
------

** Bug
    * [FELIX-5389] - NullPointerException in Candidates#prepare() method
    * [FELIX-5390] - remove unused imports from resolver source code.

1.10.0
------

** Bug
    * [FELIX-5131] - UnsupportedOperationException when embedding felix in WebSphere
    * [FELIX-5166] - WrappedResource does not handle namespace correctly

1.8.0
-----

** Bug
    * [FELIX-5015] - NPE in ResolverImpl

1.6.0
-----

** Bug
    * [FELIX-4987] - Dynamic package resolution with unresolvable or fragment package exports can lead to invalid wirings
    * [FELIX-4988] - ResolverImpl uses an internal ExecutorService
    * [FELIX-4989] - CopyOnWriteList.removeAll(Collection<?>) is incorrect causing failures for multiple cardinality resolution
    * [FELIX-5011] - Resolver creates and shutdown ExecuterService within the wrong AccessControlContext

** New Feature
    * [FELIX-4926] - Investigate rewriting the resolver algorithm to use loops instead of recursion 
    * [FELIX-4942] - Optimise the resolver

1.4.0
-----

** Bug
    * [FELIX-4897] - Dynamic package resolution with fragment package exports can lead to invalid wirings
    * [FELIX-4914] - Resolution problem with identity requirements on fragments

1.2.0
-----

** Bug
    * [FELIX-4182] - Issues with package space consistency check
    * [FELIX-4428] - When inserting hosted capability from an already resolved fragment the real non-hosted capability is not removed as a candidate
    * [FELIX-4494] - Fragment identity capabilities are incorrectly wrapped
    * [FELIX-4495] - Candidates from already resolved fragments get ignored if no new hosts are available
    * [FELIX-4497] - Invalid wirings may result from substitutable exports
    * [FELIX-4524] - Substituted exports may cause IndexOutOfBoundsException
    * [FELIX-4642] - NPE in the resolver when substituting
    * [FELIX-4727] - WrappedResource.getCapabilities ignores the namespace param
    * [FELIX-4762] -  OutOfMemoryError (Java Heap Space) when resolving bundles 
    * [FELIX-4825] - The resolver may return wires to unresolved resources in some cases

** Improvement
    * [FELIX-4492] - Enhance resolver logging to get better uses diagnostics
    * [FELIX-4493] - Allow ResolveContext to supply on demand resources
    * [FELIX-4498] - Resolver does not allow optional reqs to resolve if they introduce class space inconsistencies
    * [FELIX-4656] - Improve memory usage and speed of the resolver

1.0.0
-----

** Initial Release
