Karaf Cave

Karaf Cave is an implementation of OSGi Repository R5 specification, providing a resources repository for the Karaf Features
Resolver. It still provides an OBR server, but also a full Maven repository.
It provides remote access via a HTTP service, and a REST API for management.

Cave deals with the requirements and capabilities of all artifacts.

Apache Karaf Cave provides the following features:

  • Storage: Cave includes a storage backend. The default one is a simple filesystem backend. As the Cave backend

    is designed in a plugin way, you can implement your own backend (for instance, JDBC or LDAP backend).

  • Repository Metadata Generation: Cave creates the repository metadata for you, using the artifacts presents in the

    repository storage.

  • Maven support: Cave repositories act as a complete Maven repository, allowing you to use Cave directly with Maven.
  • REST API: Cave provides a REST API to manipulate the repositories.
  • Artifact Upload: Users can upload OSGi bundle in a Cave repository. It supports URLs like mvn:groupId/artifactId/version,

    file:, http:, etc.

  • Repository proxy: Cave is able to proxy an existing repository, for instance an existing Maven repository.

    The artifacts are located on the "external" repository, Cave handles the repository metadata. Cave supports file: and http:
    URLs, it means that Cave is able to browse a remote HTTP Maven repository for instance.

  • Repository population: Cave is able to get artifacts present on an "external" repository (local file: or

    remote http:), looking for OSGi bundles, and copy the artifacts in the Cave repository storage.

    Quick Start

    To install and start Cave into a running Karaf instance, you have to install the Cave server feature:

    karaf@root()> feature:repo-add mvn:org.apache.karaf.cave/apache-karaf-cave/4.0.0/xml/features
    karaf@root()> feature:install cave-server

You're ready to use Cave server. Take a look on the user guide.