Changes from 6.0.2 to 6.0.3
---------------------------

** Bug
    * [FELIX-6067] - ClassLoading and getService can fail unpredictably due to interrupts
    * [FELIX-6092] - Missing Framework Capabilities

Changes from 6.0.1 to 6.0.2
---------------------------

** Bug
    * [FELIX-5917] - [Fwk security] Fix BundlePermission check for fragments
    * [FELIX-5942] - Felix Framework freezes when resolving classes in parallel with Java 10
    * [FELIX-5978] - Felix framework unable to retrieve custom URL handlers when security is on

** Improvement
    * [FELIX-5912] - Handle empty package definitions in system package definitions more gracefully
    * [FELIX-5914] - Workaround SecurityManager.getClassContext returning null on Android
    * [FELIX-6035] - Allow urlhandlers to create urls for jrt protocol without an add-opens

Changes from 6.0.0 to 6.0.1
---------------------------

** Bug
    * [FELIX-5886] - Error logged by org.apache.felix.framework.BundleWiringImpl.getClassByDelegation
    * [FELIX-5889] - Extension Bundle capabilities do not index correctly

Changes from 5.6.10 to 6.0.0
----------------------------

** New Feature
    * [FELIX-5791] - Support OSGi R7 framework features

** Sub-task
    * [FELIX-5792] - Implement java.* import and exports
    * [FELIX-5796] - Implement multi-release jar support
    * [FELIX-5797] - Implement extension bundle imports
    * [FELIX-5798] - Implement FrameworkWiringDTO
    * [FELIX-5811] - Prevent bundles from providing ee capabilities

** Bug
    * [FELIX-5754] - error in default.properties contained in jar org.apache.felix.framework-5.6.10.jar
    * [FELIX-5759] - StackOverflowError thrown during URL construction
    * [FELIX-5799] - Fix bugs in Service Factory unregister callback handling
    * [FELIX-5807] - Do not hide the cause when a problem occurs in URLHandlersStreamHandlerProxy
    * [FELIX-5810] - URLHandlers ContentHandler fails to load sun.net.www.content on Java 9
    * [FELIX-5864] - Missing uses constraints for OSGi spec packages
    * [FELIX-5870] - Handle relative path elements in bundle classpath
    * [FELIX-5874] - URLHandlersContentHandlerProxy.getBuiltIn always returns null
    * [FELIX-5875] - org.osgi.framework.os.name et.al. are not obeyed

** Improvement
    * [FELIX-5800] - Improve calculation of available system bundle exports
    * [FELIX-5803] - Auto refresh uninstalled bundle graph if possible
    * [FELIX-5804] - Improve framework lookup for bundle protocol urls
    * [FELIX-5808] - Clean-up bundlecache manifest parsing and entry reading
    * [FELIX-5809] - Capture context for bundle: protocol urls if possible
    * [FELIX-5816] - Switch to java.util.Random for startup performance
    * [FELIX-5818] - Only resolve fragments that are required on dynamic import
    * [FELIX-5823] - Remove support for old multi-file bundle cache format.
    * [FELIX-5824] - Use VersionRange from OSGi and remove our own impl.
    * [FELIX-5825] - Use ReentrantLock inside WeakZipFileFactory/WeakZipFile and use less synchronized.
    * [FELIX-5826] - Remove FelixBundleContext interface
    * [FELIX-5827] - Use less synchronized in the BundleWiring and BundleClassloader
    * [FELIX-5828] - Remove android support.
    * [FELIX-5829] - Delete ImmutableMap/List
    * [FELIX-5877] - Add missing org.w3c.dom exports for java < 9

Changes from 5.6.8 to 5.6.10
----------------------------

** Bug
    * [FELIX-5707] - Bundle-NativeCode header should not require osname and processor parameter to be present to match
    * [FELIX-5709] - PackageAdmin getHosts should only return hosts required via HOST_NAMESPACE.

** Improvement
    * [FELIX-5710] - Improve Java9 support

** Sub-task
    * [FELIX-5717] - Define proper package lists for java9 modules
    * [FELIX-5718] - Autodetect modules available
    * [FELIX-5719] - Extend property substitution to user defined FRAMEWORK_SYSTEMPACKAGES_EXTRA and FRAMEWORK_SYSTEMPACKAGES properties for java9 module expansion.
    * [FELIX-5720] - Use PlatformClassLoader as boot classloader on java9
    * [FELIX-5721] - Make javafx packages available by default on java9 if they are there
    * [FELIX-5725] - Cache generated reflection classes for jdk.internal.reflect like we do for sun.reflect.
    * [FELIX-5727] - Allow extension bundles when loaded with the PlattformClassLoader
    * [FELIX-5742] - Provide java9 system bundle exports for jpms jre

Changes from 5.6.6 to 5.6.8
---------------------------

** Bug
    * [FELIX-5672] - Cannot launch Felix on Raspberry Pi: problem with normalizeOSVersion()
    * [FELIX-5676] - Uninstall should throw an exception if called while the bundle is starting or stopping

** Improvement
    * [FELIX-5665] - High CPU usage on sun.reflect.Generated* class loads by log4j 

Changes from 5.6.4 to 5.6.6
---------------------------

** Bug
    * [FELIX-5646] - Missing EE and system packages for Java 9
    * [FELIX-5649] - Refreshing a fragment causes the framework to be restarted
    * [FELIX-5652] - Felix Framework hangs on shutdown

Changes from 5.6.2 to 5.6.4
---------------------------

** Bug
    * [FELIX-4695] - Normalize os.version system property in framework properties
    * [FELIX-4837] - Workaround for JNLPClassLoader in ShutdownHook 
    * [FELIX-5553] - Cannot load native libraries in Windows Server 2016 with the name win32
    * [FELIX-5573] - Don't return null but throw a CNFE from BundleClassloader.loadclass and Bundle.loadClass on recursive class loads.
    * [FELIX-5604] - Normalize require capabilites the same way we normalize provide capabilites
    * [FELIX-5605] - Update to latest resolver 1.14.0

** Improvement
    * [FELIX-4696] - Improve native OS version sanitation
    * [FELIX-5574] - When detecting an unknow Windows OS name, provides a suitable default value for org.osgi.framework.os.name
    * [FELIX-5589] - reduce memory usage of BundleRequirementImpl / BundleCapabilityImpl
    * [FELIX-5593] - Specify ARM processor Endianness

Changes from 5.6.1 to 5.6.2
---------------------------

** Bug
    * [FELIX-5184] - Regression: Native JNA bundle cannot be installed on Windows Server 2012
    * [FELIX-5485] - ServiceReference#getUsingBundles() returns usages with 0 count
    * [FELIX-5544] - Don't take implicit boot delegation into account on service assignability check

** Improvement
    * [FELIX-5138] - Felix should log underlying exception on failed bundle update
    * [FELIX-5513] - Remove code for pre java 5
    * [FELIX-5528] - Improve handing of bundle updates concurrent to other lifecycle changes
    * [FELIX-5547] - Implement FelixResolveContext.getSubstitutionWires(Wiring)
    * Update to latest resolver 1.12.0

** New Feature
    * [FELIX-5329] - [Framework] Fix Java 8 packages and add Java 9 packages in default.properties

Changes from 5.6.0 to 5.6.1
---------------------------

** Bug
    * [FELIX-5363] - new URL(string) suffers under concurrency
    * [FELIX-5372] - BundleWiring#getClassLoader should return null for fragments
    * [FELIX-5384] - EventDispatcher#createWhitelistFromHooks fails under security

** Improvement
    * [FELIX-5247] - Reduce number of threads created by Resolver during a startup of OSGi-based applications

Changes from 5.4.0 to 5.6.0
---------------------------

** Improvement
    * Update to latest resolver 1.10.0

** Bug
    * [FELIX-4871] - The felix framework logger can't be used with reflection anymore
    * [FELIX-5204] - IllegalStateException when using custom URL handlers for bundles

** Test
    * [FELIX-5084] - Add a mock based test for BundleTracker
    * [FELIX-5085] - Add a mock based test for ServiceTracker

Changes from 5.2.0 to 5.4.0
---------------------------

** Bug
    * [FELIX-5043] - Potential of waiting forever in ServiceRegistry.getService()
    * [FELIX-5061] - Optional resource fragment with requirements that cause class space consistency issues with the host export cause unexpected ResolutionExceptions
    * [FELIX-5064] - Framework should provide service capabilities for registered services
    * [FELIX-5075] - Framework hooks not re-sorted on service ranking update

** Improvement
    * [FELIX-5014] - Support Windows 10 for Bundle-NativeCode
    * [FELIX-5034] - Reduce and correct locking related to the hook registry
    * Update to latest resolver 1.8.0

Changes from 5.0.1 to 5.2.0
---------------------------
** Bug
    * [FELIX-4456] - openConnection().getContentLengthLong() always returns -1 for bundle URLs on Java7
    * [FELIX-4468] - EventObject is created with null pointer : "null source"
    * [FELIX-4960] - NPE in BundleRevisionImpl.getResourcesLocal()
    * [FELIX-4977] - Concurrency issue with factory services
    * [FELIX-5010] - NPE when resolving bundle with a header "Bundle-NativeCode = *"

** Improvement
    * [FELIX-4938] - Throw an exception when service use count overflow

** New Feature
    * [FELIX-4942] - Optimise the resolver

Changes from 5.0.0 to 5.0.1
---------------------------
** Bug
    * [FELIX-4867] - Stale bundle revisions don't get cleaned up when last using bundle is gone
    * [FELIX-4905] - Framework does not export org.osgi.service.resolver
    * [FELIX-4914] - Resolution problem with identity requirements on fragments
    * [FELIX-4927] - Felix reports itself as an OSGi R4/R5 Framework
    * [FELIX-4928] - Singleton getService() sometimes incorrectly returns null

** Improvement
    * [FELIX-4866] - Improve service registry

Changes from 4.6.1 to 5.0.0
---------------------------
** Bug
    * [FELIX-4838] - Deadlock in Service Registry
    * [FELIX-4850] - org.osgi.framework.version should be 1.8
    * [FELIX-4854] - Unable to create consistent wiring when same package is exported in same version by multiple bundles

** Improvement
    * [FELIX-4821] - Use a faster implementation for StringMap
    * [FELIX-4845] - Clean up Logger implementation
    * [FELIX-4525] - Refactor the Framework to use the Resolver module

Changes from 4.6.0 to 4.6.1
---------------------------
** Bug
    * [FELIX-4806] - Ungetting service through ServiceObjects might throw IllegalArgumentException

** Improvement
    * [FELIX-4810] - Cache WeakZipFile#entries

Changes from 4.4.1 to 4.6.0
---------------------------
** Sub-task
    * [FELIX-4503] - [Core R6] Support osgi.native capability
    * [FELIX-4504] - [Core R6] Support Framework DTOs
    * [FELIX-4505] - [Core R6] Support Prototype Service Factory
    * [FELIX-4578] - [Core R6] Support new Framework.init(FrameworkListener ... listeners) override
    * [FELIX-4579] - [Core R6] Support Framework Extension Bundle Activators
    * [FELIX-4580] - [Core R6] Support service.bundleid Service Registration property
    * [FELIX-4581] - [Core R6] Support FrameworkWiring.findProviders(Requirement)
    * [FELIX-4582] - [Core R6] Support WovenClassListener
    * [FELIX-4583] - [Core R6] Ensure that all OSGi Core R6 CT tests pass
    * [FELIX-4590] - [Core R6] Update to R6 API
    * [FELIX-4593] - Support the JavaSE/compact profiles for Java 8
    * [FELIX-4726] - [Core R6] Update bundle and service hooks for the system bundle

** Bug
    * [FELIX-3883] - [Framework] Move OS and processor aliases to configuration properties
    * [FELIX-4690] - Some bundles containing native code can fail to start on Windows 7+
    * [FELIX-4701] - Properties with surprising spelling in AutoProcessor
    * [FELIX-4729] - [Core R6] Support for osgi.native namespace with Loading native code libraries

** Improvement
    * [FELIX-4502] - [Core R6] Provide an OSGi R6 compliant framework implementation
    * [FELIX-4658] - URL of the CodeSource of a ProtectionDomain should resolve to the right JAR
    * [FELIX-4692] - Improve Service access time
    * [FELIX-4757] - Native Capabilities should allow OS and Processor alias to load from default and config properties

Changes form 4.4.0 to 4.4.1
---------------------------
** Bug
    * [FELIX-3239] - PackageAdmin#getExportedPackages does not work on packages exported by attached fragments
    * [FELIX-3309] - Dashes in qualifier get replaced by periods causing framework not to start up
    * [FELIX-3701] - Intermittent CNFE with embedded jars in Fragment Bundles
    * [FELIX-4220] - BundleException type is always set to 0 
    * [FELIX-4281] - Security Warning: Felix with Java Web Start
    * [FELIX-4515] - BundleRevision for system extension has no capabilities
    * [FELIX-4523] - Deadlock in URLHandlers when Felix.init and Felix.stop are called concurrently
    * [FELIX-4534] - Bundles containing native code fails to start on Windows 7

Changes from 4.2.1 to 4.4.0
---------------------------
** Bug
    * [FELIX-1131] - ServiceReference.isAssignableTo fails when using a factory that can not see the exported class and the bundle exporting the service does not have a direct wire to this class
    * [FELIX-3992] - Classloader access outside of a privileged block
    * [FELIX-4190] - The framework should not hold any lock while calling ServiceFactory#unget
    * [FELIX-4283] - actually throw exception if method not found
    * [FELIX-4331] - [Core R5] Support BundleContext and Framework adaptations
    * [FELIX-4353] - [Core R5] BundleWiringTests OSGi CT test failures
    * [FELIX-4354] - [Core R5] ResolverHookTests OSGi CT test failures
    * [FELIX-4355] - [Core R5] org.osgi.test.cases.framework.launch OSGi CT test failure
    * [FELIX-4365] - Input stream not properly closed on org.apache.felix.framework.Felix.getFrameworkVersion
    * [FELIX-4388] - Initial start level not considered when bundle.start() is called
    * [FELIX-4462] - Classloader deadlock in Java6 between two bundles

** Improvement
    * [FELIX-4128] - [Core R5] Provide an OSGi R5 compliant framework implementation
    * [FELIX-4284] - remove dead allocation

** Task
    * [FELIX-4080] - [Core R5] Add support for org.osgi.framework.UnfilteredServiceListener
    * [FELIX-4082] - [Core R5] Update org.osgi.framework.bsnversion framework property
    * [FELIX-4083] - [Core R5] Support for valueOf when evaluating a Filter
    * [FELIX-4084] - [Core R5] Enhance Bundle.adapt() to provider AccessControlContext.
    * [FELIX-4085] - [Core R5] Implement updates to the Bundle Hook Specification
    * [FELIX-4324] - [Core R5] Implement osgi.identity namespace for fragments

** Wish
    * [FELIX-3868] - Adding osgi.identity namespace to bundles (resources)

Changes from 4.2.0 to 4.2.1
---------------------------
** Bug
    * [FELIX-3411] - The implementation of org.osgi.service.startlevel.StartLevel#setStartLevel(int) does not follow the spec
    * [FELIX-3893] - Bundle in cache doesn't pass security check anymore.
    * [FELIX-3907] - NullPointerException in BundleWiringImpl when m_disposed is true.
    * [FELIX-3939] - IllegalArgumentException from ClassLoader.definePackage
    * [FELIX-3950] - Permission check being done even when security manager is absent
    * [FELIX-3957] - Error events can be thrown when refreshing fragment bundles

** Improvement
    * [FELIX-3961] - Add a fallback to the default java security policy if no security provider is present

Changes from 4.0.3 to 4.2.0
---------------------------
** Bug
    * [FELIX-2780] - Extension bundle implementation relies on urlhandlers  service to start extension bundles
    * [FELIX-3160] - NPE in BundleRevisionImpl.close() when uninstalling a bundle
    * [FELIX-3242] - Concurrent modification problem in StatefulResolver$ResolverStateImpl.getCandidates
    * [FELIX-3273] - Possible exception when accessing headers
    * [FELIX-3306] - Lazy activation of bundles is not always working as expected
    * [FELIX-3343] - Installing an fragment bundle without Bundle-ManifestVersion: 2 causes NPE in resolver
    * [FELIX-3348] - StartLevel thread may terminate on uncaught exception
    * [FELIX-3353] - The implementation of org.osgi.service.packageadmin.PackageAdmin#getExportedPackages(Bundle), does not follow the spec.
    * [FELIX-3367] - getClassloader permission
    * [FELIX-3397] - NPE when trying to resolve invalid fragments
    * [FELIX-3411] - The implementation of org.osgi.service.startlevel.StartLevel#setStartLevel(int) does not follow the spec
    * [FELIX-3413] - NPE and thread blocked in org.osgi.service.packageadmin.PackageAdmin#refreshPackages(Bundle[])
    * [FELIX-3455] - Framework JARs for JDK 7
    * [FELIX-3465] - Multi root resolve operations may cause duplicate blame chains to be created
    * [FELIX-3618] - [Framework] Should not allow bundles to use generic cap/req headers for osgi.wiring.* namespaces
    * [FELIX-3626] - Issue of felix on android 4.1
    * [FELIX-3632] - [Framework] Parsing of delimited strings in manifest parser collapses all consecutive escapes
    * [FELIX-3670] - PackageAdmin.isBundleType throws NPE for uninstalled bundle
    * [FELIX-3713] - Bundle.start() returns without starting the bundle
    * [FELIX-3743] - Potential endless loop setting the active framework startlevel
    * [FELIX-3753] - Felix crashes when embedded within Felix
    * [FELIX-3761] - When a bundle registers a service, the bundle lock is obtained without any real purpose
    * [FELIX-3766] - Slightly invalid logic for pre-checking dynamic imports which cause the framework the grab the lock with no real need
    * [FELIX-3803] - Bundle#getResource always try to resolve the bundle
    * [FELIX-3824] - Possible InvalidStateException thrown while unregistering bundle services
    * [FELIX-3840] - problem with URLHandlers when running 2 frameworks in one jvm in separate class loaders
    * [FELIX-3844] - Native bundles cannot be installed on Windows 8 and Windows Server 2012
    * [FELIX-3852] - InstallBundle throws ClassCastException: java.util.jar.Attributes$Name cannot be cast to java.lang.String
    * [FELIX-3887] - ClassCastException during resolution of Require-Bundle: system.bundle

** Improvement
    * [FELIX-3344] - [Framework] Filter parsing treats ** as invalid syntax
    * [FELIX-3372] - Add the ability to handle a blank on the property "org.osgi.framework.system.packages.extra"
    * [FELIX-3394] - [Framework] Refactor internal resolver APIs to better align with upcoming OSGi resolver spec
    * [FELIX-3447] - Optimize read only collections by using a specific class and not a wrapper which is slower
    * [FELIX-3553] - Use of parallel class loading capability of JDK7
    * [FELIX-3609] - Small optimizations
    * [FELIX-3611] - Bundle certificates are not added to the CodeSource when building the BundleProtectionDomain
    * [FELIX-3807] - Refreshing bundles should first grab all the bundle locks to avoid concurrent modifications of those bundles

** New Feature
    * [FELIX-3504] - [Framework] Move to OSGi R5 packages

** Task
    * [FELIX-3786] - Create system package definintions for Java 8


Changes from 4.0.2 to 4.0.3
---------------------------

** Bug
    * [FELIX-3003] - NPE in ResolverImpl.permutateIfNeeded
    * [FELIX-3296] - URLHandlers caches null as values for common protocols
    * [FELIX-3302] - Adapt the URLHandlers for the 4.0 refactoring
    * [FELIX-3363] - Native bundles cannot be installed on Windows Server 2008 r2 with the tag win32
    * [FELIX-3393] - Possible deadlock with reentrant calls
    * [FELIX-3572] - [Framework] Resolver is not checking package space consistency for dynamic imports

** Improvement
    * [FELIX-3262] - Startup delay due to URLHandlersBundleStreamHandler

Changes from 4.0.1 to 4.0.2
---------------------------

** Bug
    * [FELIX-3178] - NPE in ResolverImpl
    * [FELIX-3194] - [Framework] Manifest parser is not correctly handling escapes
    * [FELIX-3205] - Error resolving system.bundle dependencies
    * [FELIX-3207] - Improper handling of nulls and substring matching at CapabilitySet/SimpleFilter
    * [FELIX-3211] - org.apache.felix.framework.cache.BundleCache.deleteDirectoryTreeRecursive throws NPE
    * [FELIX-3220] - Multiple ClassCastException(s) when invoking OSGi Service-Hooks (EventHook, FindHook)

** Improvement
    * [FELIX-3166] - Make Felix compile within Eclipse

** New Feature
    * [FELIX-3156] - Implement Bundle::getDataFile and Bundle::compareTo

Changes from 4.0.0 to 4.0.1
---------------------------

** Bug
    * [FELIX-3137] - [Framework] Capabilities from resolved singleton bundles are not indexed correctly
    * [FELIX-3150] - Filter parameter is ignored at getServiceReferences
    * [FELIX-3153] - [Framework] refreshPackages() should stop bundles in one pass and refresh them in a second pass

** Improvement
    * [FELIX-3138] - [Framework] Refactor some unnecessary code in the resolver
    * [FELIX-3141] - [Framework] Framework should filter removal pending fragments not the resolver

Changes from 3.2.2 to 4.0.0
---------------------------

** Bug
    * [FELIX-2762] - Substring parser incorrectly disallowing use of parentheses characters
    * [FELIX-2990] - [Framework] Bug introduced into handling of native libraries during a fresh
    * [FELIX-3015] - [Framework] Provide org.osgi.util.tracker version 1.5
    * [FELIX-3033] - [Framework] Service registry hooks are not correctly filtering bundle contexts for event hook
    * [FELIX-3038] - Framework does not offer J2SE-1.2 Execution Environment
    * [FELIX-3043] - [Framework] Resolver is not correctly resolving fragments in all cases
    * [FELIX-3059] - Reexported packages are not calculate correctly leading to resolver and class loading bugs
    * [FELIX-3062] - [Framework] Resolver gets into infinite loop in the face of a require-bundle cycle
    * [FELIX-3082] - [Framework] Bundles not allowed to add listeners while in STOPPING state
    * [FELIX-3085] - Importing/exporting "." should not be allowed
    * [FELIX-3096] - Could not add FrameworkListener from ServiceListener

** Improvement
    * [FELIX-2467] - The framework extensions should be returned when invoking the method PackageAdmin#getFragments with the system bundle
    * [FELIX-2572] - JRE system packages should include "uses" constraints
    * [FELIX-2950] - [Framework] Adopt OSGi R4.3 API as framework internal API
    * [FELIX-2998] - [Framework] OSGi R4.3 changed filter handling of exceptions when calling equals()/compare() to return false
    * [FELIX-3000] - Move sending service registered event out of bundle lock
    * [FELIX-3071] - [Framework] It should be possible to limit number of open JAR files
    * [FELIX-3125] - [Framework] Use single file per bundle in bundle cache by default

** New Feature
    * [FELIX-2959] - [Framework] Implement OSGi R4.3 class loader byte-code weaving hook
    * [FELIX-2969] - [Framework] Implement OSGi R4.3 framework wiring object
    * [FELIX-2973] - [Framework] Implement OSGi R4.3 generic capabilities and requirements
    * [FELIX-2975] - [Framework] Implement OSGi R4.3 framework start level object
    * [FELIX-2986] - [Framework] Implement OSGi R4.3 resolver hooks
    * [FELIX-2999] - [Framework] OSGi R4.3 now specifies that number types should be trimmed when evaluating filters
    * [FELIX-3032] - [Framework] Implement OSGi R4.3 bundle hooks
    * [FELIX-3052] - [Framework] Implement OSGi R4.3 system bundle generic capabilities
    * [FELIX-3056] - [Framework] Implement OSGi R4.3 event listener service registry hook
    * [FELIX-3122] - [Framework] Implement OSGi R4.3 framework UUID
    * [FELIX-3124] - [Framework] Implement OSGi R4.3 property to allow installing bundles with the same BSN and version

** Task
    * [FELIX-3110] - [Framework] Implement 4.3 security checks


Changes from 3.2.1 to 3.2.2
---------------------------

** Bug
    * [FELIX-2935] - Bundle.getEntryPaths and findEntries are returning META-INF/ multiple times
    * [FELIX-2941] - Felix Framework 3.2.0 and Framework Security 1.4.2 fails OSGI Conditional Permission Admin CT when running on IBM JVM 5 and 6.
    * [FELIX-2942] - Bundles with higher start level get activated even before framework reaches that start level


Changes from 3.2.0 to 3.2.1
---------------------------

* Bug
    * [FELIX-2901] - [Framework] NPE from a host bundle during framework shutdown
    * [FELIX-2917] - Constructor of SecurityExceptino() which is incompatible to 1.4 is used  
    * [FELIX-2924] - bundle stop hangs for http-2.2.0 in felix-3.2.0

** Improvement
    * [FELIX-2909] - [Framework] Resolver could be more efficient if it detected if fragments were present


Changes from 3.0.9 to 3.2.0
---------------------------

* Bug
    * [FELIX-1816] - deadlock on SystemBundle.stop()
    * [FELIX-2741] - NPE in ResolverImpl.calculatePackageSpaces
    * [FELIX-2748] - Possible synchronization issue with BundleContext.getBundle()
    * [FELIX-2877] - java6 update 24 breaks felix when used inside webstart


** Improvement
    * [FELIX-2858] - [Framework] Modify resolver to be self-contained with respect to fragment handling
    * [FELIX-2859] - [Framework] Modify resolver to be self-contained with respect to singleton handling
    * [FELIX-2864] - [Framework] Add package profile for JDK7 to default properties

Changes from 3.0.8 to 3.0.9
---------------------------

** Bug
    * [FELIX-1581] - Bundle#update, Bundle#uninstall and Bundle#stop should wait for a (configurable) timeout before throwing an exception if the bundle is starting or stopping
    * [FELIX-2784] - When the framework try to grab the bundle lock, it ignores thread interruption
    * [FELIX-2822] - [Framework] System bundle module's state not reset when framework restarted leading to NPE
    * [FELIX-2832] - [Framework] It should not be possible to open an URLConnection to "/" for a bundle URL
    * [FELIX-2840] - [Framework] Uninstalling an uninstalled bundle throws NoSuchElementException
    * [FELIX-2849] - PackageAdmin is inconsistent between getFragments and getHosts
    * [FELIX-2850] - PackageAdmin return fragments / hosts even if the host isn't resolved
    * [FELIX-2851] - Resolution problems after a fragment can't be resolved

** Improvement
    * [FELIX-2841] - [Framework] Improve resolve exception messages

Changes from 3.0.7 to 3.0.8
---------------------------

** Bug
    * [FELIX-2749] - Boolean.parseBoolean() newly defined in Java5 should not be used.
    * [FELIX-2789] - Native library matching is not correctly checking additional extensions
    * [FELIX-2800] - Logging will throw an NPE if no bundle is specified
    * [FELIX-2802] - A failed update doesn't rollback properly
    * [FELIX-2805] - Cache PackageAdmin.getBundle() result for system bundle classes

Changes from 3.0.6 to 3.0.7
---------------------------

** Bug
    * [FELIX-2456] - Framework no longer fires UNRESOLVED event when a bundle is explicitly refreshed
    * [FELIX-2693] - [Framework] Service registry should throw a ServiceException for factories resulting in a cycle
    * [FELIX-2700] - Framework uses java.nio package which is not supported by CDC VM
    * [FELIX-2710] - [Framework] For exploded bundles Bundle.getEntry("a/b.jar/")==Bundle.getEntry("a/b.jar")
    * [FELIX-2717] - [Framework] Resolver treats multiple exports of same package as conflicting for fragment imports
    * [FELIX-2725] - [Framework] Resolver is not correctly calculating exported packages for already resolved modules
    * [FELIX-2728] - JarRevision does not close URLConnections which are instances of HttpURLConnection
    * [FELIX-2736] - [Framework] Resolver is not correctly verifying package space consistency for dynamic imports
    * [FELIX-2738] - [Framework] DirectoryContent does not handle security correctly

** Improvement
    * [FELIX-2703] - [Framework] Include OSGi/Minimum EEs in default properties
    * [FELIX-2721] - [Framework] Implement custom manifest parser and avoid JarFile
    * [FELIX-2737] - [Framework] Optimize resolver algorithm by not re-calculating uses constraints for resolved modules

Changes from 3.0.5 to 3.0.6
---------------------------

** Bug
    * [FELIX-2670] - [Framework] Implicit boot delegation doesn't delegate for external code in all cases
    * [FELIX-2683] - [Framework] Bundle last modified time is not persisted on deployment

** Improvement
    * [FELIX-2560] - Bundle URLs do not survive refreshes

** New Feature
    * [FELIX-2646] - [Framework] Locking could be used to prevent concurrent access to a single bundle cache

Changes from 3.0.4 to 3.0.5
---------------------------

** Bug
    * [FELIX-2653] - LinkageError caused by duplicate class definition during implicit boot delegation

** Improvement
    * [FELIX-2645] - Add a (hidden) way to retrieve a local URL for a given bundle URL
    * [FELIX-2654] - [Framework] Modify bundle cache to use a single file per bundle state

Changes from 3.0.3 to 3.0.4
---------------------------

** Bug
    * [FELIX-2584] - No FrameworkEvent.ERROR on unchecked exception in event listener
    * [FELIX-2629] - [Framework] Module class loader should return an empty enumeration for getResources()

** Improvement
    * [FELIX-2619] - [Framework] Bundle cache is rechecking nonexistent files again and again
    * [FELIX-2626] - [Framework] Bundle cache is rewriting some files when restarting bundles

Changes from 3.0.2 to 3.0.3
---------------------------

** Bug
    * [FELIX-2548] - Resolver should use case sensitive indexing for capabilities
    * [FELIX-2569] - Felix bundle classloader always delegates to parent loader in getResources()
    * [FELIX-2589] - SecurityException "SecurityManager already installed" is thrown when calling Framework.init() multiple times with FRAMEWORK_SECURITY set
    * [FELIX-2598] - Hang in Felix: thread owing a bundle lock waits for ever to lock it again
    * [FELIX-2599] - When specifying the packages exported by the system bundle, attributes and directives on packages do not show up in the system bundle headers

** Improvement
    * [FELIX-1022] - Classloader Exceptions should be more informative
    * [FELIX-2549] - Fix some synchronization issues in content handling
    * [FELIX-2555] - Log messages should contain the bundle id, when available
    * [FELIX-2597] - Deadlock during delivery of resolved event

Changes from 3.0.1 to 3.0.2
---------------------------

** Bug
    * [FELIX-2421] - Implicit bootdelegation doesn't ignore classloaders if they are inner classes
    * [FELIX-2437] - Deadlock on refrsh Import and refresh
    * [FELIX-2451] - Felix uses System.out to print debug messages related to resolver...
    * [FELIX-2459] - Wrong error message on a missing package
    * [FELIX-2466] - Unknown attributes are not stripped from Fragment-Host header
    * [FELIX-2473] - Subtring matching is incorreclty matching against an empty string
    * [FELIX-2479] - Required bundles not correctly re-exporting their substitutable exports

** Improvement
    * [FELIX-2528] - Potential performance issue in resolver when uses constraint conflict is detected
    * [FELIX-2529] - In some scenarios the resolver will not backtrack on imported package decisions

Changes from 3.0.0 to 3.0.1
---------------------------

** Bug
    * [FELIX-2401] - NPE in org.apache.felix.framework.FilterImpl.DictionaryCapability.getAttribute(String)

Changes from 2.0.5 to 3.0.0
---------------------------
** Sub-task
    * [FELIX-2036] - Improve resolver's generic capability/requirement model
    * [FELIX-2037] - Improve resolver performance by making solution space searching smarter

** Bug
    * [FELIX-995] - JRE packages are exported with wrong version
    * [FELIX-1967] - Freeze finding consistent class space
    * [FELIX-2080] - Updating bundles when debugging switched on might result in a deadlock with 100% CPU usage
    * [FELIX-2150] - URLStreamHandlerProxy.setURL may not set query component correctly
    * [FELIX-2172] - Extremely long resolve stage when running CXF-DOSGi system test
    * [FELIX-2177] - Fragment bundles not loaded after second start when using autodeploy
    * [FELIX-2271] - CLONE -NPE "name can't be null" when trying to install a bundle in Felix 2.0.3
    * [FELIX-2273] - getClassLoader-permission required accessing classes from dynamically loaded class
    * [FELIX-2281] - Bundle id order affects fragment resolution success
    * [FELIX-2317] - Possible NPE for jars with null Manifest
    * [FELIX-2321] - BundleException type should be properly set when installing a duplicate bundle
    * [FELIX-2332] - Lots of contention on ExtensionManager.openConnection(URL)
    * [FELIX-2335] - Bundle.loadClass() for system bundle doesn't obey boot delegation
    * [FELIX-2356] - extension bundle cannot load class from embed jar
    * [FELIX-2383] - Bundles are restarted during start level change
    * [FELIX-2392] - Felix framework uses a Java5 method

** Improvement
    * [FELIX-1210] - Allow jars with missing intermediate entries to be handled as if they were present in Bundle.getEntryPaths
    * [FELIX-1797] - Customizable Framework startup message
    * [FELIX-2035] - Reimplement framework resolver
    * [FELIX-2039] - Reimplement standard OSGi LDAP filter to use new filter solution for resolver
    * [FELIX-2040] - Modify framework service registry to use resolver's new capability/requirement model
    * [FELIX-2041] - Look into using generics in framework code
    * [FELIX-2042] - Use Gogo as the default shell for the framework distribution
    * [FELIX-2324] - Support execution environment so that OBR works properly
    * [FELIX-2336] - Variable substitution in configuration files should ignore mismatched delimiters

Changes from 2.0.4 to 2.0.5
---------------------------
** Bug
    * [FELIX-1753] - The start level should check that the bundle still exists before starting it to avoid an ugly exception
    * [FELIX-2087] - NPE "name can't be null" when trying to install a bundle in Felix 2.0.3
    * [FELIX-2107] - Bundle.findEntries() matches '*<filePattern>' instead of '<filePattern>'
    * [FELIX-2195] - Using URLDecoder.decode on locations is wrong
    * [FELIX-2222] - Failure to reinstall a cached bundle will corrupt the bundle cache

Changes from 2.0.3 to 2.0.4
---------------------------

** Bug
    * [FELIX-2056] - URLHandlersStreamHandler not getting handlers from frameworks that are inside a different classloader
    * [FELIX-2067] - Fragment bundle ignored silently when the host Bundle-SymbolicName equals import package name
    * [FELIX-2073] - The System Bundle is not providing WS Addressing

** Improvement
    * [FELIX-2071] - Missing checks inside ModuleImpl (in Framework) which causes exceptions

Changes from 2.0.2 to 2.0.3
---------------------------

** Bug
    * [FELIX-1838] - PackageAdmin.getExportedPackages() duplicates output for packages with different version
    * [FELIX-1867] - ModuleImpl diagnoseClassLoadError throw NullPointerException for empty package name in debug mode
    * [FELIX-1917] - A few minor bugs in the framework found while embedding Felix
    * [FELIX-1919] - Fragment bundle cannot be linked to its host
    * [FELIX-1920] - RequiredBundle.getRequiringBundles() incorrectly calculates result
    * [FELIX-1929] - getStartLevel() always reports requested start level, not active start level
    * [FELIX-1982] - Documented but uninterpreted felix.cache.* properties
    * [FELIX-1998] - Use UTF-8 when decoding reference location URLs
    * [FELIX-2002] - Uninstalled fragments are not properly detached

** Improvement
    * [FELIX-37] - Implement security for bundle resource URLs
    * [FELIX-325] - Factor out security checks from the framework/system bundle code
    * [FELIX-1973] - Implement all required security checks

** New Feature
    * [FELIX-30] - Implement extension bundles
    * [FELIX-1991] - Allow boot delegation class loader to be configurable per bundle


Changes from 2.0.1 to 2.0.2
---------------------------

** Bug
    * [FELIX-1754] - Usage of BundleContext.getServiceReferences results in failure to activate components
    * [FELIX-1782] - Errors during start-up on gnu/classpath based VMs (jamvm, kaffe, cacao) and mika
    * [FELIX-1795] - Bundle version ignored in Fragment-Host header
    * [FELIX-1834] - java.io.IOException: No framework context found when embedding felix frameworks as bundles

** Improvement
    * [FELIX-1534] - Improve fragment merging
    * [FELIX-1781] - Try to reduce object allocations/usage in resolver algorithm
    * [FELIX-1783] - Eliminate contention on ServiceRegistry.getServiceReferences(String, Filter)

Changes from 2.0.0 to 2.0.1
---------------------------

** Bug
    * [FELIX-1565] - Deadlock UrlHandlers
    * [FELIX-1573] - Occasional NPE in URLHandlersBundleStreamHandler
    * [FELIX-1580] - Regression with native library handling
    * [FELIX-1586] - Framework reports org.osgi.framework.version as 1.3
    * [FELIX-1600] - ServiceReference.isAssignableTo() always returns true if requesting bundle has no wire
    * [FELIX-1631] - Implicit bootdelegation causes hang on android
    * [FELIX-1710] - Resolver still does not discard all partial results when a cyclical dependency fails
    * [FELIX-1721] - Framework boot delegation has a bug due to extraneous code
    * [FELIX-1731] - Native library extraction could be improved to help cases where there are dependencies among libraries

** Improvement
    * [FELIX-1619] - Change the default auto-deploy actions to be install and start only
    * [FELIX-1625] - Refactor bundle cache to simplify management
    * [FELIX-1679] - VersionRange class should use finals to be thread safe.
    * [FELIX-1724] - Various module metadata should be cached

** Task
    * [FELIX-1617] - Modify framework, main, shell, shell.tui, and obr to depend on official OSGi JAR files

Changes from 1.8.1 to 2.0.0
---------------------------

** Bug
    * [FELIX-893] - Felix fails to start using J9 JVM
    * [FELIX-905] - Felix needs an RFC 126 FindHook
    * [FELIX-906] - Felix needs an RFC 126 EventHook
    * [FELIX-1122] - Extension bundles are not being removed from the bundle list when uninstalled
    * [FELIX-1123] - System bundle does still not correctly handle (export) package attributes
    * [FELIX-1124] - ResourceNotFoundException too verbose
    * [FELIX-1130] - Bundle.getHeaders() returns a Dictionary<java.util.jar.Attribute.Name,String>
    * [FELIX-1138] - URL Handlers performance regression due to service lookups
    * [FELIX-1170] - MemoryLeak when stopping and restarting Felix
    * [FELIX-1187] - BundleContext.ungetService() should return false only if the usage count is zero when the method is invoked
    * [FELIX-1197] - Bundle Fragments not resolved correctly
    * [FELIX-1198] - config.properties still refers to old org.osgi.framework.startlevel property
    * [FELIX-1247] - BundleEvent.UNRESOLVED should be fired during update/uninstall not refresh
    * [FELIX-1249] - Bundle.findEntries() should search fragments as well as the bundle itself
    * [FELIX-1254] - Bundle#findEntries does not return resources from fragments
    * [FELIX-1271] - Improve manifest localization to handle special cases
    * [FELIX-1272] - Need to special case getResource()/getResources()/loadClass() for fragment bundles
    * [FELIX-1273] - Bundle.getResources() should return null for a non-existent resource
    * [FELIX-1277] - Fix Service Hooks Tests failures in RFC 126 TCK
    * [FELIX-1279] - Framework.waitForStop() does not obey timeout
    * [FELIX-1280] - Package Admin - getExportedPackages must return null instead of an empty array
    * [FELIX-1285] - SecureAction captures the calling context incorrectly
    * [FELIX-1286] - Module class loader should use secure action instead of a privileged block
    * [FELIX-1287] - System bundle operations from RFC-132 (e.g., init(), start(), stop(), waitForStop()) are using wrong lock object
    * [FELIX-1288] - System bundle context should be null after stopping the framework
    * [FELIX-1292] - PackageAdmin.getBundle(Class) should return null if the bundle associated with the passed in class is from another framework
    * [FELIX-1293] - StringMap used for case insensitive properties does not respect ordering if case sensitivity is changed
    * [FELIX-1295] - ServiceRegistry increments/decrements service use count after/before getService/ungetService() is called on ServiceFactory
    * [FELIX-1371] - Automatic parent class loader delegation does not correctly filter calls to Bundle.loadClass()
    * [FELIX-1397] - Required execution environment verification should happen at resolve time, not install time
    * [FELIX-1400] - bootdelegation and dynamic-import-packages are accepting invalid patterns
    * [FELIX-1401] - Manifest localization with fragments not handled correctly
    * [FELIX-1422] - Resolver does not always discard partial results when a cyclically dependency fails
    * [FELIX-1435] - Resolver does not always resolve a dynamic import to a fragment export
    * [FELIX-1527] - R4.2 spec errata now specifies uninstalling a bundle must transition through INSTALLED on its way to UNINSTALLED
    * [FELIX-1551] - Start level service must synchronously persist bundle start level changes
    * [FELIX-1556] - Bundle.getResource/s is not able to find resources if the package is not alraedy wired when I use DynamicImport-Package: *

** Improvement
    * [FELIX-712] - Ability to disable automatic parent classloader delegation
    * [FELIX-883] - JarContent logs and then swallows exceptions when reading from JAR file, should probably throw an exception
    * [FELIX-1120] - Enable BundleCache customization
    * [FELIX-1134] - Add support for native libraries in fragments
    * [FELIX-1189] - Improve error message in main when there is an error processing auto-install/start bundles
    * [FELIX-1246] - PackageAdmin.getBundle() is not implemented efficiently
    * [FELIX-1260] - Make Bundle.findEntries() and Bundle.getEntryPaths() more thread safe
    * [FELIX-1291] - Implement support for proper return type from Framework.waitForStop()
    * [FELIX-1300] - Remove legacy bundle cache support when extracting embedded JAR files
    * [FELIX-1360] - Improve native library matching algorithm (part 2)
    * [FELIX-1404] - Use provided classes from OSGi R4.2 companion code
    * [FELIX-1432] - Manifest parser doesn't return import package declarations in order of manifest
    * [FELIX-1462] - Felix framework launcher should only use standard launching API

** New Feature
    * [FELIX-33] - Implement system bundle update
    * [FELIX-749] - Add support for lazy activation of bundles
    * [FELIX-1193] - Implement org.osgi.framework.bundle.parent from RFC 132
    * [FELIX-1205] - Update to the latest OSGi R4.2 API
    * [FELIX-1244] - Add support for ServiceEvent.MODIFIED_ENDMATCH
    * [FELIX-1250] - Support service exceptions for service factories
    * [FELIX-1289] - Support for FrameworkUtil.getBundle()
    * [FELIX-1297] - Implement support for new org.osgi.framework.command.execpermission configuration property
    * [FELIX-1298] - Implement support for new org.osgi.framework.library.extensions configuration property
    * [FELIX-1446] - Framework launcher should automatically deploy bundles in bundle directory
    * [FELIX-1478] - Add shutdown hook to launcher to cleanly shutdown the framework if the process is killed




** Task
    * [FELIX-1144] - The NOTICE file for Main subproject is not correctly copied into the source JAR


** Test
    * [FELIX-1208] - Need migrate the EventDispatcherTest to newer version of EasyMock
 
Changes form 1.6.1 to 1.8.0
---------------------------
** Bug
    * [FELIX-1034] - bootdelegation property seems to be matching more packages than desired
    * [FELIX-1059] - DynamicImport-Package matches more packages than desired

** Improvement
    * [FELIX-1060] - URLHandlers doesn't support URLStreamHandler.openConnection(proxy,url) method

** New Feature
    * [FELIX-29] - Implement bundle fragments

Changes from 1.6.0 to 1.6.1
---------------------------
** Bug
    * [FELIX-1027] - deadlock with felix 1.6.0 ?
    * [FELIX-1028] - NPE in configuration view when running webconsole with Equinox
    * [FELIX-1033] - Exceptions when Felix is started with security manager
    * [FELIX-1035] - deadlock observed while using fileinstall to monitor multiple directories
    * [FELIX-1045] - Felix 1.6.0 fails with ClassCircularityError

Changes from 1.4.1 to 1.6.0
---------------------------

** Bug
    * [FELIX-737] - Resolver does not correctly discard export when module imports the same package (part 2)
    * [FELIX-852] - Fragment support is currently limited to directly resolved hosts
    * [FELIX-869] - SCR throws exception on invalidating a component with a reference to a service that was already unregistered
    * [FELIX-891] - Bundle lock acquisition should not record lock until it verifies the bundle is lockable
    * [FELIX-892] - ServiceReferenceImpl improper implementation of equals and hashcode
    * [FELIX-893] - Felix fails to start using J9 JVM
    * [FELIX-897] - Empty system package is exported when a semicolon is present in "extra" configuration
    * [FELIX-902] - Empty bundle.state file produces NPE
    * [FELIX-910] - Framework may ignore framework startlevel on startup
    * [FELIX-911] - Potential deadlock between Bundle.stop() and BundleContext.registerService()
    * [FELIX-915] - PackageAdmin returns null on getBundle(...) with system classes
    * [FELIX-934] - Bootdelegation bug
    * [FELIX-947] - Behaviour of startlevel comman doesn't adhere to spec
    * [FELIX-948] - ServiceReferenceImpl.compareTo should handle other types than integer for service ranking
    * [FELIX-951] - Deadlock in iPojo when stopping Felix
    * [FELIX-952] - Exception thrown when unregistering services because the bundle is stopped
    * [FELIX-953] - Bundle#loadClass sometimes return null instead of throwing a CNFE
    * [FELIX-961] - 100% CPU looping inside uses calculation
    * [FELIX-962] - Erroneous class loading delegation to the application launcher classloader in some cases
    * [FELIX-969] - system bundle does not correctly handle (export) package attributes
    * [FELIX-971] - Exception thrown in ServiceTracker at shutdown 
    * [FELIX-978] - Resolver does not clean up properly on a failed recursive attempt to resolve
    * [FELIX-1004] - Extensionmanager openConnection(URL) method should be public
    * [FELIX-1005] - Strange list of imported packages returned by the package admin

** Improvement
    * [FELIX-681] - Modify daemon threads to catch all exceptions and log them to avoid premature thread death
    * [FELIX-851] - Refactor the module abstraction layer to align more closely to OSGi concepts
    * [FELIX-872] - JarContent swallows exception when opening manifest, it should log it
    * [FELIX-883] - JarContent logs and then swallows exceptions when reading from JAR file, should probably throw an exception
    * [FELIX-894] - Loosen locking when starting/stopping/uninstalling a bundle by firing event without holding a lock
    * [FELIX-908] - Unsynchronize access to bundle state inside BundleInfo by making the variable volatile

Changes from 1.4.0 to 1.4.1
---------------------------

* [2008-12-19] Refactor the URLHandlers implementation to fix a possible 
  Linkage-Error when running embedded inside tomcat. Furthermore, make it possible
  to dynamically set a SecurityManager, change the url we add to the framework
  classloader to fix issues with rmi and make sure we restore the previous URLStreamHandlerFactory
  after stopping. (FELIX-842, FELIX-837, FELIX-844, FELIX-827)
* [2008-12-19] Add missing javax.security.cert in JRE 1.4 and 1.5. (FELIX-854)
* [2008-12-19] Improve framework internal locking protocol.
* [2008-12-18] Fixed an issue where bundles with a non-existing native library
  would not be removed correctly. (FELIX-835)
* [2008-11-21] Throw an exception when there is an attempt to start or stop a 
  fragment, as per the spec. (FELIX-820)
* [2008-11-20] Fixed a bug during shutdown where uninstalled fragments are not
  properly closed. (FELIX-819)
* [2008-11-14] Added partial support for new service registry hooks as proposed 
  for OSGi R4.2; currently, only listener hooks are supported. (FELIX-804)
* [2008-11-08] Fixed Felix' delegation hack so that it correctly delegates to 
  the parent class loader for resources as appropriate; previously it was always 
  delegating for class loading, which was incorrect. (FELIX-808)

Changes from 1.2.2 to 1.4.0
---------------------------

* [2008-11-05] URLStreamHandlerService and ContentHandlerService override
  built-in handlers and make it possible to use URLHandlers when extending the 
  Felix class. (FELIX-756, FELIX-800)
* [2008-11-04] Implement ServiceReference.compareTo() method. (FELIX-799)
* [2008-10-31] Fix some visibility issues in the LDAP operators which could
  result in incorrect toString values. (FELIX-765)
* [2008-10-31] Fixed spec compliance issues around getting a service reference 
  from an invalid registration and throwing an exception when there are
  duplicate property keys. (FELIX-798)
* [2008-10-21] Fixed an issue with extension bundles which would be installed
  as fragments and fail to install extension bundles if they have incomplete 
  metadata. (FELIX-770)
* [2008-10-21] Fix a possible deadlock in URLHandlers. (FELIX-748)
* [2008-10-16] Modified framework to have default values for the system
  packages property, which also required modifying main to no longer expect to
  set it. Now it is possible to start Felix with no configuration properties.
  (FELIX-753)
* [2008-10-16] Update felix to work with the 1.0.0-rc1 version of the android
  sdk.
* [2008-10-15] Implemented remaining PackageAdmin methods from R4. (FELIX-35)
* [2008-10-15] Modified resolver to correctly mark fragment modules as resolved.
  (FELIX-777)
* [2008-10-15] Modified the resolver to longer consider uninstalled fragments
  and hosts when resolving dependencies; this required a new "stale" flag on 
  modules that gets set when their associated bundle is uninstalled. (FELIX-776)
* [2008-10-15] Modified the resolver to sort candidates when resolving 
  Require-Bundle dependencies. (FELIX-775)
* [2008-10-14] Modified ExportedPackage.getImportingBundles() to include
  bundles requiring the exporting bundle, in addition to those bundles
  importing the package. Also tried to simplify dependency management code
  by separating it out. (FELIX-764) 
* [2008-10-14] Fix a NullPointerException in SecureAction when a
  SecurityManager is used by keeping pointers on the local stack. (FELIX-766)
* [2008-10-13] Use System.gc to allow to update and uninstall bundles with 
  native libs on Windows. (FELIX-733)
* [2008-10-10] Set the activator to null on Bundle.stop() to allow for earlier 
  garbage collection. (FELIX-762)
* [2008-10-10] Implements support for flushing the cache on framework 
  initialization. (FELIX-755)
* [2008-10-10] Improve exception messages. (FELIX-750)
* [2008-10-09] Modified the bundle cache to no longer have profiles. (FELIX-754)
* [2008-10-08] Modified the Felix API to aligned with the proposed standard 
  OSGi framework API. The framework instance can now be stopped and restarted. 
  (FELIX-753)
* [2008-09-29] Support transiently starting/stopping bundles. (FELIX-713) 
* [2008-09-25] Correctly discard exported packages when a bundle is chosen to
  import a package it exports. (FELIX-736)
* [2008-09-24] Clearly distinguish between "resolved" and "unresolved" 
  capabilities, which is necessary since "resolved" capabilities have higher 
  priority than "unresolved" ones. (FELIX-730)
* [2008-09-24] Do not bootdelegate in the case where Bundle.loadClass() has
  been used. (FELIX-712)
* [2008-09-23] Improve decoding of reference URLs. (FELIX-731)
* [2008-09-23] For completeness, added symbolic names to framework and main.
* [2008-09-17] Improve gc by fixing an issue with StartLevel and PackageAdmin.
  (FELIX-728)
* [2008-09-15] Fix an issue with Require-Bundle not aggregating packages 
  correctly. (FELIX-722)
* [2008-09-15] Fixed a bug where class loader delegation for dynamic imports 
  was happening when it shouldn't. (FELIX-724)
* [2008-09-12] Added a configuration property to determine whether installing a 
  fragment that uses unimplemented features throws an exception or logs a 
  warning. (FELIX-725)
* [2008-09-12] Removed some experimental code for "implicit requirements",
  since it was no longer needed.
* [2008-09-12] Fix some visibility issues within the LDAP filter. (FELIX-721)

Changes from 1.2.1 to 1.2.2
---------------------------

* [2008-10-14] Fixed a NullPointer exception that could happen when 
  running with a SecurityManager as a backport of FELIX-766.

Changes from 1.2.0 to 1.2.1
---------------------------

* [2008-09-05] Fixed a performance regression that was caused by uncached 
  access to the bundle manifest headers. (FELIX-711)
* [2008-09-03] Fixed a bug in calculating the system bundle's exported 
  packages which added a null export package.

Changes from 1.0.4 to 1.2.0
---------------------------

* [2008-08-29] Support JAR-wide manifest package metadata. (FELIX-682)
* [2008-08-29] Throw an exception when installing a fragment that uses 
  features that we do not support.
* [2008-08-20] Improve error reporting when loading bundle classes using 
  Bundle.loadClass. 
* [2008-08-16] Fix attribute checking when resolving dynamic imports. 
  (FELIX-676)
* [2008-08-08] Implement singleton bundle support. (FELIX-102)
* [2008-08-06] Default to current security policy if no security extension is 
  installed in order to make Subject.doAs work. (FELIX-654)
* [2008-08-04] Return Bundle.getLastModified() for bundle URLs 
  lastModified(). (FELIX-582)
* [2008-08-04] Improve handling of improper resource URLs. (FELIX-577)
* [2008-08-01] Add necessary stub methods to implement new R4.1 methods. 
  (FELIX-595)
* [2008-08-01] Applied patch to properly return symbolic name when it has
  parameters. (FELIX-650)
* [2008-07-25] Fix some rollback issues after a bundle update throws an 
  exception. (FELIX-647)
* [2008-07-23] Modified manifest parser to be more lenient. (FELIX-641)
* [2008-07-07] Add support for the standard symbolic name for the system 
  bundle. (FELIX-602)
* [2008-06-01] Add initial fragment support for extending the host bundle 
  class path. (FELIX-29, FELIX-656)

Changes from 1.0.3 to 1.0.4
___________________________

* [2008-04-18] Check that the returned object from a service factory is an 
  instance of all classes named when the service was registered. (FELIX-540)
* [2008-04-13] Fix an issue when logging messages while holding framework 
  internal locks that could lead to a deadlock. For now we just disable 
  logging to log services inside the framework. (FELIX-536)
* [2008-04-13] Implemented various small performance improvments e.g.,
  we now cache filters and create an index for objectclass to improve 
  service lookup performance and don't use the BundleInfo to get the 
  bundle id but the BundleImpl directly. Furthermore, we added an index to 
  get bundles by id. 
* [2008-04-04] Fix an NoClassDefFoundError when trying to query the 
  framework classloader for whether a class is available or not. 
* [2008-03-19] Don't try to resolve extension bundles and fix a 
  classcastexception that could happen if more then one framework is around 
  and both have extensions installed. Furthermore, make extension bundles 
  use the system bundle context.
* [2008-03-07] Bundle.getResource does now check for AdminPermission. 
  (FELIX-150)
* [2008-03-06] Make urlhandlers work when a handler factory is already set. 
  Furthermore, it is now possible to have more then one framework running 
  in more then one classloader. (FELIX-38).
* [2008-03-05] Make LDAP filter reentrant.
* [2008-02-29] Refactored the IContent abstraction from the module loader 
  layer to provide more generic access to the content of the module. This 
  makes it possible that a bundle's class path could span multiple module's, 
  which will be necessary for fragments. (FELIX-29)
* [2008-02-27] Applied a patch to disable the class loading diagnostic message
  when the logger is not at the DEBUG level. (FELIX-500)
* [2008-02-15] Modified the service registry to use more fine-grained locking 
  to avoid callbacks to service factories while holding locks. (FELIX-489)

Changes from 1.0.1 to 1.0.3
---------------------------

* [2008-01-27] Moved framework docs to main, since the launcher examples now
  depend on main for the auto-property handling.
* [2008-01-25] Applied patches  to improve how Felix finds resources when
  getResources() is called. (FELIX-466, FELIX-467)
* [2008-01-25] Make FilterImpl.toString() add escape characters where needed.
  (FELIX-471)
* [2008-01-16] Fix a NPE on framework restart when extension bundles are
  installed.
* [2008-01-15] Try to fix a potential visibility issue on loading a class
  form a bundle where it seems to be possible that we create two classloaders
  instead of one.
* [2008-01-15] Modified boot delegation to not terminate when delegating to
  parent class loader for non-java.* packages. (FELIX-463)
* [2008-01-04] Fix some issues related to directories on the bundle class
  path. Specifically, leading slashes created an issue and are now stripped
  and entries were not being properly filtered when enumerating the contents
  of a class path directory. (FELIX-426)
* [2007-12-20] Modified logger to have all of its public methods be final to
  avoid it from being extended in undesired ways via the constructor supplied
  logger. (FELIX-428)
* [2007-12-20] The TCK has changed to verify that bundles do not depend on
  themselves, so we filter that case now.
* [2007-12-20] Applied patch from Guillaume Nodet to properly fire a framework
  error event only when a bundle cannot be resolved. (FELIX-441)
* [2007-12-19] Modified framework to accept a Logger instance so that host
  applications can do custom logging until the log service arrives. (FELIX-428)
* [2007-12-19] Add support for loading bundles on Google Android (FELIX-440).
* [2007-12-18] Improve native code loading - bundle installation will now
  fail in case a native library is not in the jar and we only use the first
  library of a given name. Furthermore, we now support .dylib extensions on
  the mac as well as others; should make it possible to use .netmodules as
  well. (FELIX-439)
* [2007-12-17] Make the win32 alias match any version of windows for native
  clauses. (FELIX-438)
* [2007-12-14] Removed auto-property processing out of the framework and
  into the default launcher, i.e, main. (FELIX-393)
* [2007-12-13] Fix a StackOverflowError in URLHandlers.createStreamHandler() 
  when creating URL on jamvm and Mika. This patch resolves an unfortunate 
  interaction between our ExtensionManager and the URLHandlers by making the 
  URLHandlers aware of the extension protocol. Pretty much like we do already 
  for the bundle protocol. (FELIX-435)
* [2007-11-26] Fix a small oversight in the extension manager that could lead
  to a null pointer exception and save some memory by creating less objects.
* [2007-11-26] Degrate to version 0.0.0 if we can not find the Felix.properties 
  for some reason and avoid a null pointer in this case.
* [2007-11-08] Reorganized usage count methods to better handle null
  reference checking in response to Karl Pauls seeing an NPE when trying to
  get a service that was already unregistered while shutting down the
  framework.
* [2007-11-06] Added a simple check to detect and work around a bug in J9.
  (FELIX-416)
* [2007-10-30] Change how the extension manager url stream handler handles 
  request to the root path in order to make some tomcat issue go away.
  (FELIX-414)
* [2007-10-26] Added support for "/" bundle resources as requested. (FELIX-383)
* [2007-10-24] Use system bundle when firing a framework error event when an 
  install error occurs.
* [2007-10-22] Fix a NPE when getEntryPaths is called on the system bundle. 
  (FELIX-394)
* [2007-10-16] Modifies bundle resource URL handling such that if a resource 
  URL points to a resource that does not exist, a bundle class path search 
  for the resource will be instigated and if any matching resource is found, 
  that one will be used instead. (FELIX-383)
* [2007-10-10] Auto-property handling now installs bundles into the default 
  bundle start level if a start level is not specified. (FELIX-359)
* [2007-10-08] Overwrite the URLStreamHandler.getHostAddress(URL) in the 
  ExtensionManager to immediately return null to prevent DNS lookup. 
  (FELIX-388)
* [2007-09-30] Resolved a concurrency issue that could result in the same 
  bundle being resolved more than once; also tried to simplify locking in 
  the core search policy implementation. (FELIX-381)

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

* [2007-07-23] Fixed a bug in the framework shutdown process which was 
  causing threads calling Felix.stopAndWait() to not get notified that 
  the framework had shutdown. (FELIX-329)
* [2007-08-15] Fixed a bug in the LDAP filter which was not thread safe 
  on execution. (FELIX-338)
* [2007-08-17] Added support for persistent last used bundle ID to avoid
  re-use of bundle identifiers. (FELIX-339)
* [2007-08-23] Modified BundleImpl.getHeaders(Locale) to accept a null 
  locale. (FELIX-346)
* [2007-09-11] Added support to handle external termination of Felix 
  which was not handled or detected and prevented a restart of future 
  Felix instances in the same VM. (FELIX-363)
* [2007-09-12] Add support for Collection values in the LDAP filter to 
  match the 4.1 spec. 
* [2007-09-12] Fixed a bug in the LDAP filter where attributes where 
  limited to [a-zA-Z ] so didn't allow for e.g., numbers. (FELIX-361)
* [2007-09-13] Enable support for exporting the same package more than 
  once (FELIX-101).
* [2007-09-13] Returns the system bundle from a call to 
  PackageAdmin.getBundle(Class) in case the class comes from the 
  classloader (or one of its parents) that loaded Felix and the system 
  bundle exports the package.
* [2007-09-16] Fixed a bug in class space filtering in the service registry 
  that could result in class cast exceptions for service clients.
* [2007-09-16] Fixed a bug that prevented extension bundle exports to be 
  usable.

Changes from 0.8.0-incubator to 1.0.0
-------------------------------------

* [2007-01-18] Added support for bundle header localization. (FELIX-27)
* [2007-01-22] Modified framework resolver to support a generic
  capability/requirement model.
* [2007-01-22] Reorganized and centralized manifest parsing code and added
  support for resolver's generic capability/requirement model. (FELIX-98)
* [2007-01-22] Improved native library naming normalization. (FELIX-26)
* [2007-01-23] No longer eagerly resolving classes loaded from modules
  since this was causing verification errors with IBM J9.
* [2007-01-25] Added some support for execution environment checking.
  (FELIX-23)
* [2007-01-29] Added support for getAllServiceReferences(). (FELIX-32)
* [2007-01-31] Added Require-Bundle support to resolve using the generic
  capability/requirement model of the resolver. (FELIX-28)
* [2007-02-05] Fixed a bug in processor type normalization for x86-64
  processors.
* [2007-02-09] The resolver previously ignored packages that were pending
  removal when resolving new bundles, now it does not.
* [2007-02-09] Bundles are automatically refreshed when updated/uninstalled
  if none of their exported packages are in use.
* [2007-02-13] Added support for extension bundles. (FELIX-30)
* [2007-03-02] Added a Bundle.getBundleContext() method until actual
  support for OSGi R4.1.
* [2007-04-26] Modified Bundle.findEntries() to return URLs to directory
  entries as well as file entries.
* [2007-05-06] Modified LDAP evaluator to special case the fact that
  BigDecimal is not available in Foundation profile.
* [2007-05-21] Made some performance improvements in LDAP evaluation.
* [2007-05-22] Modified JAR file to include Service Tracker package.
* [2007-05-22] Improved concurrency handling around checking for already
  loaded classes and defining classes.
* [2007-06-05] Modified resource URLs to use port number rather than
  prepend information to the resource path.
* [2007-06-13] Improved dynamic imports to cycle through all available
  candidates when checking for class space consistency.
* [2007-06-18] Improved service registry filtering based on class versions
  to allow a bundle to register a service for a different version of class
  that it can access.
* [2007-06-21] Modified our "last ditch effort" to guess when to delegate
  to the system bundle to make it a little more robust.
* [2007-06-29] Fixed a bug in EventDispatcher that was causing asynchronous
  events to not be fired after stopping the framework instance and creating
  a new instance. (FELIX-314)
* [2007-07-03] Fixed a bug in EventDispatcher that would not correctly
  update a listener when it implemented multiple listener interfaces.
* [2007-07-04] Modified Felix framework class to implement the Bundle
  interface to improve the startup/shutdown sequence and to provide a
  simplified API for creating framework instances.
* [2007-07-11] Removed the PropertyResolver-related classes and now only
  use Maps for configuration properties. (FELIX-324)
