Domino's project page and all of its documentation has moved to GitHub. There you will also find new versions. This page is kept for historical reasons only.
Write elegant OSGi bundle activators in Scala
What is Domino?
And how does it compare to other projects?
Domino is a small library for the programming language Scala designed to support developers in writing bundle activators for the Java module system OSGi. It strives to make writing complex and highly-dynamic bundle activators as easy as possible without sacrificing the power of the OSGi API.
what makes it special
Domino offers an expressive DSL which reflects the event-driven nature of OSGi and allows you to define very easily when your logic is made available and when it is revoked.
no painful workarounds
Some libraries just cover the most common use cases and let you fall deeply whenever you need to do something more special. Then you suddenly find yourself bypassing the library completely. Domino tries to prevent this by staying close to the low-level OSGi API.
all the way
Most features in Domino benefit from static typing. That means the compiler and your IDE can help you write correct code. Additionally, there's support for using generic type parameters in the service registry.
Instead of inventing a completely foreign DSL, Domino tries to use familiar Scala data types such as Option, List etc. whenever possible so you can make use of those many nice methods like
map you probably fell in love with.
If the Domino core DSL is not enough for you, simply extend it. Do you want to run a job as long as a certain service is available? Such things can be easily integrated.
covering OSGi's core
Many of OSGi's core features are natively supported by the DSL (services, configuration, bundles, meta types).