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