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.
