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

** Improvement
    * Update to latest framework version 2.0.1

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

** Improvement
    * Update to latest framework version 2.0.0

Changes form 1.6.1 to 1.8.0
---------------------------

** Improvement
    * Update to latest framework version 1.8.0

Changes from 1.6.0 to 1.6.1
---------------------------

** Improvement 
    * Update to latest framework version 1.6.1

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

** Improvement
    * Update to latest framework version 1.6.0

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

* [2008-12-20] Update to latest framework version 1.4.0
* [2008-11-18] Modified the pom file to export the OSGi packages; this can be 
  helpful for tools trying to determine what the JAR file provides.
* [2008-11-07] Align log level property name in pom.xml and config.properties

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

* [2008-10-31] Fixed a possible NPE when no configuration file is found.
* [2008-10-23] Change the name of the SystemBundle interface to be Framework. 
  (FELIX-753)
* [2008-10-22] Hide wire messages in felix releases. (FELIX-707)
* [2008-10-16] Modified framework to have default values for the system packages 
  property. Now it is really possible to start Felix with no configuration 
  properties. (FELIX-753)
* [2008-10-10] Implements support for flushing the cache on framework 
  initialization. (FELIX-755)
* [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. (FELIX-753)
* [2008-09-23] Added symbolic names to framework and main.
* [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)

Changes form 1.2.1 to 1.2.2
---------------------------

* [2008-10-14] Update to latest framework version 1.2.2.

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

* [2008-09-07] Hide WIRE log messages. (FELIX-707)
* [2008-09-07] Use the new Felix releases obr repository URL. 
  (FELIX-708)

Changes from 1.0.3 to 1.2.0
---------------------------

* [2008-08-03] Change to the R4.1 version of the spec. (FELIX-514)
* [2008-05-08] Fixed a NPE. (FELIX-525)

Changes from 1.0.3 to 1.0.4
---------------------------

* [2008-04-22] Update to framework version 1.0.4.

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

* [2008-01-27] Added launching and embedding docs to main project.
* [2008-01-22] Update to maven-bundle-plugin version 1.2.0.
* [2008-01-07] Modifed default launcher in Main to separate out 
  auto-property processing so that it is easier to reuse the code in 
  custom launchers. (FELIX-448)
* [2007-12-14] Removed auto-property processing out of the framework and 
  into the default launcher. (FELIX-393)
* [2007-10-16] Use variable substitution via BND to define the properties 
  in default.properties from the properties in config.properties.
  (FELIX-380)
* [2007-10-03] Added support to the Main launcher to use a default 
  embedded resource for setting the framework configuration properties 
  if the actual config.properties file cannot be loaded. (FELIX-380)
* [2007-09-20] Remove some packages for jre1.3 profile  and add/remove a 
  few for 1.4, 1.5, and 1.6 (javax.crypto.*). (FELIX-371)


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

* [2007-09-16] Update to framework version 1.0.1.


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

* [2007-01-31] Changed how the system packages property is calculated to
  make it more robust; previously it was leaving a dangling comma if the
  execution platform was not known.
* [2007-02-05] Added system package support for Java 6. (FELIX-201)
* [2007-02-13] Removed support for trusted certificate authorities; this
  will be added later as an extension.
* [2007-03-16] Felix configuration properties can now be set as system
  properties when using the standard launcher. (FELIX-250)
* [2007-03-28] No longer including config.properties in the JAR file.
* [2007-04-13] The javax.net and javax.net.ssl packages were missing
  from the system packages properties.
* [2007-04-13] Fixed a bug where the launcher was not correctly calculating
  the installation directory correctly.
* [2007-05-07] Was accidentally including OBR service interface package
  in main JAR.
* [2007-05-22] Now includes the Service Tracker package in main JAR.
* [2007-07-04] Modified to use the new Felix embedding API.
