| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| // |
| |
| == 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). |