<DRAFT>

ROOTS Service Components

The documentation is intended for developers. Knowledge about Java and OSGi might be helpful for understanding the document.

One of OSGi core benefit is the introduction of service. In OSGi service can be any Java implementation class providing a set of interfaces. Since, it is mainly an in-process service mechanism these service are often called micro services.

Services can be registers at the OSGi service registry and consumed via registry by any Java components having access to the registry. The existence of a service depends on different things like the lifetime of its containing bundle, or other service availability of consumed services. To keep track of arising and vanishing services via the service registry is a little clumsy. For that reason more higher level concepts are available either by the OSGi itself (Declarative Services, Blueprint) or by third parties.

With ROOTS service usages is introduced by Java annotations and an extension of the bundle activator to instantiate and services.
Furthermore, these annotation provides direct support of ECP (event centric processing) features.

TODO: describe annotations in detail. For the moment the definition of the annotations is provided.