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

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.
