Overview

Apache Karaf is a OSGi-based runtime which provides a lightweight container onto which various components and applications can be deployed.

Apache Karaf uses either Apache Felix Framework or Eclipse Equinox OSGi frameworks, and provide additional features on top of the framework.

Apache Karaf can be scaled from a very lightweight container to a fully features enterprise service: it’s a very flexible and extensible container, covering all the major needs.

Here is a short list of provided features:

  • Hot deployment: simply drop a file in the deploy directory, Apache Karaf will detect the type of the file and try to deploy it.

  • Complete Console: Apache Karaf provides a complete Unix-like console where you can completely manage the container.

  • Dynamic Configuration: Apache Karaf provides a set of command dedicated for the management of the configuration files. All configuration files are centralized in the etc folder. Any change in a configuration file is taken on the fly.

  • Advanced Logging System: Apache Karaf supports a large set of Logging framework (slf4j, log4j, etc). Whatever the logging framework you use, Apache Karaf centralizes the configuration in one file.

  • Provisioning: Apache Karaf supports a large set of URL where you can install your application (Maven repository, HTTP, file, etc). It also provides the concept of "Karaf Feature" which is a way to describe your application.

  • Management: Apache Karaf is an enterprise-ready container, providing a lot of management indicators and operations via JMX.

  • Remote: Apache Karaf embeds an SSHd server allowing you to use the console remotely. The management layer is also accessible remotely.

  • Security: Apache Karaf provides a complete security framework (based on JAAS), and providing RBAC (Role-Based Access Control) mechanism for console and JMX.

  • Instances: multiple instances of Apache Karaf can be managed directly from a main instance (root).

  • OSGi frameworks: Apache Karaf is not tight to one OSGi framework. By default, Apache Karaf runs with Apache Felix Framework, but you can easily switch to Equinox (just change on property in a configuration file).

karaf