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

** Bug
    * [FELIX-1653] - [Shell] The new sysprop command does not allow to delete a system property
    * [FELIX-1662] - find returns invalid level for bundles and find all returns strange listing
    * [FELIX-1699] - The 'version' shell command is framework specific

** Improvement
    * [FELIX-1561] - [Shell] Add a command to display and modify system properties with the Felix Shell

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

Changes form 1.2.0 to 1.4.0
---------------------------

** Bug
    * [FELIX-1019] - New shell commands "requirers" and "exports" do not handle invalid bundle case properly

** Improvement
    * [FELIX-1058] - [PATCH] Add a "find" command to the shell
    * [FELIX-1145] - Modify help shell command to avoid issues with long command descriptions
    * [FELIX-1151] - Improve naming and consistency of shell commands for inspecting dependencies

** New Feature
    * [FELIX-1052] - Add log shell command
    * [FELIX-1181] - Add support for activation policy in shell "start" command
    * [FELIX-1510] - There is no command to set the initial bundle start level

Changes from 1.0.2 to 1.2.0
---------------------------

** Bug
    * [FELIX-703] - Cannot install ShellGUIPlugin with OBR

** Improvement
    * [FELIX-669] - Shell & Shell TUI OBR descriptions
    * [FELIX-1008] - Rename "packages" command to "exports" to match better with new "imports" command

** New Feature
    * [FELIX-741] - Modify shell start/stop commands to support transient starting/stopping of bundles
    * [FELIX-1006] - Add command to shell to list a bundles imported packages
    * [FELIX-1009] - Add requires/requirers commands to shell

Changes from 1.0.1 to 1.0.2
---------------------------

* [2008-08-12] Added OBR descriptor and updated to bundle plugin version
  1.4.3. (FELIX-669)
* [2008-05-08] Modified "update" command to not append ".jar" to URLs and 
  modified the "install" command to use the same code. (FELIX-544)

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

* [2008-04-21] Re-release to make bytecode executable on jre 1.3.

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

* [2006-12-15] Changed the symbolic name, since it was being calculated
  incorrectly.
* [2007-05-03] Modified 'ps' so that it displays reasonable defaults if
  headers are missing. Also added ability to display symbolic name.
* [2007-06-14] Modified refresh command to accept bundle IDs.
