Skip to content

Getting started with OSGi

Marcello Rinaldo Martina edited this page Nov 2, 2022 · 2 revisions

Eclipse Kura uses OSGi as its core technology. In short, Eclipse Kura is divided into several units that can be viewed as micro services, called Bundles. Those Bundles can be started and stopped at runtime and have associated a lifecycle and configuration properties that can be defined using some metadata. Dependency injection and bundle management is all orchestrated by the underlying OSGi engine implementation. In Kura case, Eclipse Equinox is used.

To get started with OSGi you can refer to the first 5 chapters of the OSGi specification (R8) - your main reference. You might read those chapters two times in your lifetime: once you get started for the first time, and once after a while you are developing using OSGi; it will trigger an "Aha!" moment for many of the OSGi aspects and will help you understand many of the obscure errors that you will encounter. Another good resource is the book OSGI in Action.

To find out more about Declarative Service you can refer to the following articles:

Eclipse Tycho

We are currently using Eclipse Tycho to build all of our bundles. To get started with Tycho, the following articles can be really useful:

More advanced topics

Many interesting articles can be found here. For internationalization, you can refer to the following articles:

To get started with OSGi remote services:

Clone this wiki locally