blob: 5f46116822d2a4bed9400c7d609135c052b666f6 [file] [log] [blame]
h1. Apache Karaf Cave overview
Apache Karaf Cave is an Apache Karaf sub-project.
Cave is an implementation of the OSGi Repository specification, providing additional features such as a
complete Maven repository support, a REST API for management, support of remote repository proxy.
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.
Karaf Cave provides two components:
* the cave-server is the full OSGi repository service, including the storage, the management layer, the REST service layer, etc.
* the cave-client is a local repository service proxy that use a remote Cave server (not yet available).