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
- 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.
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.