Open Software Gateway initiative (OSGi) has been "hidden" for a long time and reserved to middleware such as IDE or application servers. However, OSGi can be applied in a lot of different contexts and applications. An OSGi application needs an environment to run. Apache Karaf is a lightweight, powerful, and enterprise-ready OSGi container where you can deploy your applications. On a production system, especially a mission-critical platform, it makes sense to be able to manage a set of Apache Karaf containers and to spread the deployment (or provisioning) of applications to these different instances.
In this chapter, we will cover the following topics:
What is OSGi and what are its key features?
The role of the OSGi framework
The OSGi base artifact—the OSGi bundle and the concept of dependencies between bundles
The Apache Karaf OSGi container and the provisioning of applications in the container
How to manage the provisioning on multiple Karaf instances?