Apache Karaf has reached one year old today, as a top-level project at Apache. Karaf is a runtime package consisting of an OSGi framework (either Equinox or Felix), a command shell (Felix Gogo) and a number of useful utilities built in by default.
Whilst Felix and Equinox can be used on their own, Karaf aims to bring together useful OSGi utilities and make it possible to get going out of the box. For example, it includes a configurable logging system (backed by Log4J but with adapters for many general logging systems), remote access via SSH, configuration through ConfigAdmin (sourced from files in the etc
directory) and built-in JAAS support. Not only that, but Pax URL's MVN protocol is installed, which makes it possible to install bundles from Maven central (and where necessary, automatically wrap them as bundles).
In addition, Karaf also provides the concept of features, which are collections of bundles that can be installed as a group into the running OSGi runtime. Out of the box, features include support for obr
as well as jetty
and spring
. This simplifies the deployment tasks where typically, many bundles need to be installed but which don't have a strict runtime dependency between each other.
Karaf was originally the ServiceMix Kernel prior to its migration to the Apache Felix project, and ultimately becoming its own top-level project at Apache. Karaf joins others such as Eclipse Virgo and the EclipseRT packages providing pre-configured frameworks and useful OSGi bundles, making it easier than ever to get started with an OSGi runtime.