Changes from 0.1.3 to 0.1.4
---------------------------

** Improvement
  * [FELIX-5554] removed dependency on org.json

Changes from 0.1.2 to 0.1.3
---------------------------

** Bug
  * [FELIX-3898] name parsing issue on BundleDependency
  * [FELIX-4162] incorrect loop detection

** Improvement
  * [FELIX-3899] switch to Scala 2.10
  * [FELIX-3769] webconsole categories
  * [FELIX-4163] command line interface
  * circular dependencies shown on a separate graph with or wihtout optionals
  * new visualisations of the service registry: service providers, using
  bundles, and bundles wiring via services
  * show components as implementations and services as interfaces
  * graph filter supports basic logical expressions

Changes from 0.1.1 to 0.1.2
---------------------------

** Bug
  * [FELIX-3764] servicediagnostics plugin does not append the correct context path info to it's javascript files
  * [FELIX-3767] servicediagnostics plugin should properly handle service properties

** Improvement
  * complete rewrite
  * [FELIX-3768] servicediagnostics plugin should detect circular dependencies
  * doesn't embedd scala, json or jquery anymore

** Backward compatibility
  * broken: plugin API changed

Release 0.1.1
-------------

Initial version.
