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

** Bug
    * [FELIX-2796] - felix.auto.deploy.action throws NPE with only "update" action

** Improvement
    * Update to latest framework version 3.0.9

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

** Improvement
    * Update to latest framework version 3.0.8
    * Update to gogo version 0.8.0

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

** Improvement
    * Update to latest framework version 3.0.7

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

** Improvement
    * Update to latest framework version 3.0.6

** New Feature
    * [FELIX-2678] - Startlevel for bundles in auto.deploy.dir

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

** Improvement
    * Update to latest framework version 3.0.5

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

** Improvement
    * Update to latest framework version 3.0.4

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

** Improvement
    * Update to latest framework version 3.0.3
    * Update to gogo 0.6.1

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

** Improvement
    * Update to latest framework version 3.0.2

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

** Improvement
    * Update to latest framework version 3.0.1

Changes from 2.0.5 to 3.0.0
---------------------------

** Improvement
    * Update to latest framework version 3.0.0
    * [FELIX-1797] - Customizable Framework startup message
    * [FELIX-2042] - Use Gogo as the default shell for the framework distribution
    * [FELIX-2336] - Variable substitution in configuration files should ignore mismatched delimiters

Changes from 2.0.4 to 2.0.5
---------------------------

** Improvement
    * Update to latest framework version 2.0.5

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

** Improvement
    * Update to latest framework version 2.0.4

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

** Improvement
    * Update to latest framework version 2.0.3

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

** Improvement
    * Update to latest framework version 2.0.2

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.
