Changes 0.14.0 to 0.16.0
------------------------

** Bug
    * [FELIX-4783] - ConcurrentModificationException when stopping

** New Feature
    * [FELIX-4671] - Provide an expression parser

Changes 0.12.1 to 0.14.0
------------------------

** Bug
    * [FELIX-4637] - Gogo can't cope without several commands with defined service.ranking 

** New Feature
    * [FELIX-4671] - Provide an expression parser


Changes 0.12.0 to 0.12.1
------------------------

** Bug
    * [FELIX-4533] - Gogo runtime does not advertise published services


Changes 0.10.0 to 0.12.0
------------------------

** Bug
    * [FELIX-4336] - The use of inheritable thread locals in ThreadIO can cause problems

** Improvement
    * [FELIX-3590] - Add system property resolution to CommandSessionImpl
    * [FELIX-4363] - The CommandSession get/set methods are not thread safe


Changes 0.8.0 to 0.10.0
-----------------------

** Bug
    * [FELIX-2870] - ConcurrentModificationException in gogo runtime
    * [FELIX-2894] - Gogo does not handles options but not parameters
    * [FELIX-2927] - [gogo] coercion mechanism invokes foo(String) instead
      of foo(int) - even with explicit int argument

Changes 0.6.1 to 0.8.0
----------------------

** Bug
    * [FELIX-2723] - When the execution of a closure with pipes is
      interrupted, pipes should be interrupted too

** New Feature
    * [FELIX-2761] - Add a way to listen to execution of command lines
    * [FELIX-2764] - Publish OSGi EventAdmin events when executing a command
      line

Changes 0.6.0 to 0.6.1
----------------------

** Bug
    * [FELIX-1473] - [gogo] The syntax does not provide a way to call
      methods on a string
    * [FELIX-2432] - [gogo] NPE/coercion failure when null first parameter
      to method expecting arry
    * [FELIX-2545] - [gogo] runtime should close all open sessions when it
      is stopped
    * [FELIX-2606] - Gogo isn't decoupled from OSGi anymore

** Improvement
    * [FELIX-2396] - Ability to have callbacks when accessing session variables
    * [FELIX-2433] - [gogo] allow command expansion inside double quotes
    * [FELIX-2607] - Introduce a specific exception when a command is not
      foundGogo Runtime 0.6.1

Gogo Runtime 0.6.0
------------------

** Bug
    * [FELIX-1473] - [gogo] The syntax does not provide a way to call methods
      on a string
    * [FELIX-1474] - [gogo] result of commands is implicitly written to pipe
    * [FELIX-1493] - [gogo] automatic expansion of $args in Closure stops
      direct access to $args list
    * [FELIX-2337] - [gogo] no way to access array[] elements produced by
      assignment
    * [FELIX-2375] - [gogo] when supplied args can't be coerced, the error
      message prints the arg values, rather than their types
    * [FELIX-2380] - [gogo] lock contention in piped writer when reader
      doesn't read all input

** Improvement
    * [FELIX-1487] - Support for commands on multiple lines
    * [FELIX-2328] - [gogo] tidy-up runtime to remove optional code etc
    * [FELIX-2339] - [gogo] add support for running scripts
    * [FELIX-2342] - [gogo] remove old felix command adaptor

** New Feature
    * [FELIX-2363] - [Gogo] Add annotations for creating commands with
      optional and out-of-order arguments

** Task
    * [FELIX-1670] - [gogo] launcher bundle not required
    * [FELIX-1889] - Gogo should depend on the official OSGi jars
    * [FELIX-2334] - [Gogo] Use org.apache.felix as Maven groupId
    * [FELIX-2367] - [Gogo] Use org.apache.felix namespace to avoid any
      perceived legal issues
