This chapter will present OSGi services as a means to communicate with and connect applications. Unlike the Eclipse extension point mechanism, OSGi services can have multiple versions available at runtime and can work in other OSGi environments, such as Felix or other commercial OSGi runtimes.
In an Eclipse or OSGi runtime, each individual bundle is its own separate module, which has explicit dependencies on library code via
Require-Capability. These express static relationships and provide a way of configuring the bundle's classpath.
However, this presents a problem. If services are independent, how can they use contributions provided ...