This project is using third party javascript library, under core/src/main/resources/html/js
- graffle.js
- graph.js
- jquery.js
- raphael-min.js

In my understanding, these are all MIT licences.

This project also uses org.json, and the scala programming language. (Both need to be wrapped into OSGi bundles, see README file)
