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)
