You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2015/07/09 06:42:33 UTC

svn commit: r1689984 - in /karaf/site/production/manual/cave/latest: ./ user-guide/

Author: jbonofre
Date: Thu Jul  9 04:42:32 2015
New Revision: 1689984

URL: http://svn.apache.org/r1689984
Log:
[scm-publish] Updating main site with Karaf Cave manual

Added:
    karaf/site/production/manual/cave/latest/user-guide/maven-wrapper.html
Removed:
    karaf/site/production/manual/cave/latest/manual.html
    karaf/site/production/manual/cave/latest/user-guide/obr-commands.html
Modified:
    karaf/site/production/manual/cave/latest/index.html
    karaf/site/production/manual/cave/latest/overview.html
    karaf/site/production/manual/cave/latest/user-guide/administrate-cave.html
    karaf/site/production/manual/cave/latest/user-guide/cave-repository.html
    karaf/site/production/manual/cave/latest/user-guide/http-wrapper.html
    karaf/site/production/manual/cave/latest/user-guide/index.html
    karaf/site/production/manual/cave/latest/user-guide/installation.html
    karaf/site/production/manual/cave/latest/user-guide/populate-repository.html
    karaf/site/production/manual/cave/latest/user-guide/proxy-repository.html

Modified: karaf/site/production/manual/cave/latest/index.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cave/latest/index.html?rev=1689984&r1=1689983&r2=1689984&view=diff
==============================================================================
--- karaf/site/production/manual/cave/latest/index.html (original)
+++ karaf/site/production/manual/cave/latest/index.html Thu Jul  9 04:42:32 2015
@@ -8,7 +8,7 @@
     <link href="css/style.css" rel="stylesheet" type="text/css"/>
     <link href="css/pygmentize.css" rel="stylesheet" type="text/css"/>
     <title>
-      Apache Karaf Cave 3.0.1-SNAPSHOT Guides
+      Apache Karaf Cave 4.0.0-SNAPSHOT Guides
     </title>
   </head>
   <body>

Modified: karaf/site/production/manual/cave/latest/overview.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cave/latest/overview.html?rev=1689984&r1=1689983&r2=1689984&view=diff
==============================================================================
--- karaf/site/production/manual/cave/latest/overview.html (original)
+++ karaf/site/production/manual/cave/latest/overview.html Thu Jul  9 04:42:32 2015
@@ -8,7 +8,7 @@
     <link href="css/style.css" rel="stylesheet" type="text/css"/>
     <link href="css/pygmentize.css" rel="stylesheet" type="text/css"/>
     <title>
-      Apache Karaf Cave 3.0.1-SNAPSHOT Guides
+      Apache Karaf Cave 4.0.0-SNAPSHOT Guides
     </title>
   </head>
   <body>
@@ -34,4 +34,4 @@
         <td id="cell-1-2">
           <div style="padding: 5px;">
             <div id="banner">
-              <h1 id="ApacheKarafCaveoverview">Apache Karaf Cave overview</h1><p>Apache Karaf Cave is an Apache Karaf sub-project.</p><p>It provides an OSGi Bundle Repository (OBR) and Karaf Features Repository (KFR).</p><p>OBR provides a service that can automatically install a bundle, with its deployment dependencies, from a bundle<br/>repository.</p><p>Apache Karaf Cave provides the following features:</p><ul><li><strong>Storage</strong>: Karaf Cave includes a storage backend. The default one is a simple filesystem backend. As the Cave backend<p>is designed in a plugin way, you can implement your own backend (for instance, JDBC or LDAP backend).</p></li><li><strong>OBR Metadata Generation</strong>: Karaf Cave automatically creates the OBR metadata for you, using the artifacts presents<p>in the Cave repository storage.</p></li><li><strong>OBR Registration</strong>: Karaf Cave allows you to directly register a Cave repository into an OBR RepositoryAdmin OSGi<p>service.</p></li><li>
 <strong>Artifact Upload</strong>: Users can upload OSGi bundle in a Cave repository. It supports URLs like mvn:groupId/artifactId/version,<p>file:, http:, etc.</p></li><li><strong>Repository proxy</strong>: Karaf Cave is able to proxy an existing repository, for instance an existing Maven repository.<p>The artifacts are located on the "external" repository, Cave handles the OBR metadata. Cave supports file: and http:<br/>URLs, it means that Cave is able to browse a remote HTTP Maven repository for instance.</p></li><li><strong>Repository population</strong>: Karaf Cave is able to get artifacts present on an "external" repository (local file: or<p>remote http:), looking for OSGi bundles, and copy the artifacts in the Cave repository storage.</p><p>The <tt>cave-server</tt> feature provides the OBR and KFR server, including the storage backend, management layer and shell commands.</p></li></ul>
\ No newline at end of file
+              <h1 id="ApacheKarafCaveoverview">Apache Karaf Cave overview</h1><p>Apache Karaf Cave is an Apache Karaf sub-project.</p><p>Cave is an implementation of the OSGi Repository specification, providing additional features such as a<br/>complete Maven repository support, a REST API for management, support of remote repository proxy.</p><p>Cave deals with the requirements and capabilities of all artifacts.</p><p>Apache Karaf Cave provides the following features:</p><ul><li><strong>Storage</strong>: Cave includes a storage backend. The default one is a simple filesystem backend. As the Cave backend<p>is designed in a plugin way, you can implement your own backend (for instance, JDBC or LDAP backend).</p></li><li><strong>Repository Metadata Generation</strong>: Cave creates the repository metadata for you, using the artifacts presents in the<p>repository storage.</p></li><li><strong>Maven support</strong>: Cave repositories act as a complete Maven repository, allowing you to us
 e Cave directly with Maven.</li><li><strong>REST API</strong>: Cave provides a REST API to manipulate the repositories.</li><li><strong>Artifact Upload</strong>: Users can upload OSGi bundle in a Cave repository. It supports URLs like mvn:groupId/artifactId/version,<p>file:, http:, etc.</p></li><li><strong>Repository proxy</strong>: Cave is able to proxy an existing repository, for instance an existing Maven repository.<p>The artifacts are located on the "external" repository, Cave handles the repository metadata. Cave supports file: and http:<br/>URLs, it means that Cave is able to browse a remote HTTP Maven repository for instance.</p></li><li><strong>Repository population</strong>: Cave is able to get artifacts present on an "external" repository (local file: or<p>remote http:), looking for OSGi bundles, and copy the artifacts in the Cave repository storage.</p><p>Karaf Cave provides two components:</p></li><li>the cave-server is the full OSGi repository service, including the st
 orage, the management layer, the REST service layer, etc.</li><li>the cave-client is a local repository service proxy that use a remote Cave server (not yet available).</li></ul>
\ No newline at end of file

Modified: karaf/site/production/manual/cave/latest/user-guide/administrate-cave.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cave/latest/user-guide/administrate-cave.html?rev=1689984&r1=1689983&r2=1689984&view=diff
==============================================================================
--- karaf/site/production/manual/cave/latest/user-guide/administrate-cave.html (original)
+++ karaf/site/production/manual/cave/latest/user-guide/administrate-cave.html Thu Jul  9 04:42:32 2015
@@ -8,7 +8,7 @@
     <link href="../css/style.css" rel="stylesheet" type="text/css"/>
     <link href="../css/pygmentize.css" rel="stylesheet" type="text/css"/>
     <title>
-      Apache Karaf Cave 3.0.1-SNAPSHOT Guides
+      Apache Karaf Cave 4.0.0-SNAPSHOT Guides
     </title>
   </head>
   <body>
@@ -34,6 +34,10 @@
         <td id="cell-1-2">
           <div style="padding: 5px;">
             <div id="banner">
-              <h1 id="Administration">Administration</h1><p>When you install Apache Karaf Cave server, it provides a new CaveServerMBean.</p><p>This MBean use the following object name:</p><pre>
+              <h1 id="Administration">Administration</h1><h2 id="JMX">JMX</h2><p>When you install Apache Karaf Cave server, it provides a new CaveServerMBean.</p><p>This MBean use the following object name:</p><pre>
 org.apache.karaf.cave:type=repository,name=*
-</pre><p>Thanks to this MBean, using any JMX client (like jconsole for instance), you can do all actions as you can using the<br/><tt>cave:*</tt> commands:</p><ul><li>void createRepository(String name, String location, boolean generateObr, boolean install) throws Exception;</li><li>void destroyRepository(String name) throws Exception;</li><li>void installRepository(String name) throws Exception;</li><li>void uninstallRepository(String name) throws Exception;</li><li>void populateRepository(String name, String url, boolean generateObr, String filter) throws Exception;</li><li>void proxyRepository(String name, String url, boolean generateObr, String filter) throws Exception;</li><li>void updateRepository(String name) throws Exception;</li><li>void uploadArtifact(String repository, String artifactUrl, boolean generateObr) throws Exception;</li></ul>
\ No newline at end of file
+</pre><p>Thanks to this MBean, using any JMX client (like jconsole for instance), you can do all actions as you can using the<br/><tt>cave:*</tt> commands:</p><ul><li>void createRepository(String name, String location, boolean generate, boolean install) throws Exception;</li><li>void destroyRepository(String name) throws Exception;</li><li>void installRepository(String name) throws Exception;</li><li>void uninstallRepository(String name) throws Exception;</li><li>void populateRepository(String name, String url, boolean generate, String filter) throws Exception;</li><li>void proxyRepository(String name, String url, boolean generate, String filter) throws Exception;</li><li>void updateRepository(String name) throws Exception;</li><li>void uploadArtifact(String repository, String artifactUrl, boolean generate) throws Exception;</li></ul><h2 id="REST">REST</h2><p>Cave provides a complete REST API to manipulate the repositories.</p><p>The API is available on:</p><pre>
+http://localhost:8181/cave/rest
+</pre><p>NB: 8181 is the default port of the Apache Karaf HTTP service.</p><p>You can get the WADL:</p><pre>
+http://localhost:8181/cave/rest?_wadl
+</pre>
\ No newline at end of file

Modified: karaf/site/production/manual/cave/latest/user-guide/cave-repository.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cave/latest/user-guide/cave-repository.html?rev=1689984&r1=1689983&r2=1689984&view=diff
==============================================================================
--- karaf/site/production/manual/cave/latest/user-guide/cave-repository.html (original)
+++ karaf/site/production/manual/cave/latest/user-guide/cave-repository.html Thu Jul  9 04:42:32 2015
@@ -8,7 +8,7 @@
     <link href="../css/style.css" rel="stylesheet" type="text/css"/>
     <link href="../css/pygmentize.css" rel="stylesheet" type="text/css"/>
     <title>
-      Apache Karaf Cave 3.0.1-SNAPSHOT Guides
+      Apache Karaf Cave 4.0.0-SNAPSHOT Guides
     </title>
   </head>
   <body>
@@ -34,7 +34,7 @@
         <td id="cell-1-2">
           <div style="padding: 5px;">
             <div id="banner">
-              <h1 id="Repository">Repository</h1><p>A Cave Repository is a container for:</p><ul><li>OSGi bundles (jar files)</li><li>OBR (OSGi Bundle Repository) metadata (aka a repository.xml file)</li></ul><p>By default, a repository uses a filesystem backend for the storage, the directory used is KARAF_BASE/cave.</p><p>You can change the storage location in the <tt>etc/org.apache.karaf.cave.server.storage.cfg</tt> configuration file:</p><pre>
+              <h1 id="Repository">Repository</h1><p>A Cave Repository is a container for:</p><ul><li>Artifacts (files)</li><li>Repository metadata</li></ul><p>By default, a repository uses a filesystem backend for the storage, the directory used is KARAF_BASE/cave.</p><p>You can change the storage location in the <tt>etc/org.apache.karaf.cave.server.storage.cfg</tt> configuration file:</p><pre>
 ################################################################################
 #
 #    Licensed to the Apache Software Foundation (ASF) under one or more
@@ -57,45 +57,20 @@
 #
 # Storage location where Apache Karaf Cave create repositories by default
 #
-storage.location=cave
+cave.storage.location=cave
 </pre><p>For instance, you can define <tt>/var/cave/store</tt> for the <tt>storage.location</tt> property.</p><h2 id="Create">Create</h2><p>The <tt>cave:repository-create</tt> command creates a new repository:</p><pre>
 karaf@root()> cave:repository-create my-repository
 </pre><p>A repository is identified by a name, <tt>my-repository</tt> in our example.</p><p>Apache Karaf Cave creates the repository storage for you.</p><p>If you want to use an existing directory, and avoid Cave to create one in the storage location, you can use the <tt>-l</tt><br/>(<tt>--location</tt>) option:</p><pre>
 karaf@root()> cave:repository-create -l /home/user/.m2/repository m2
-</pre><p>By default, Apache Karaf Cave scans the repository storage and create the OBR metadata. You can use the <tt>-no</tt> (<tt>--no-obr-generate</tt>)<br/>option to avoid this step:</p><pre>
+</pre><p>By default, Apache Karaf Cave scans the repository storage and create the repository metadata. You can use the <tt>-no</tt> (<tt>--no-generate</tt>)<br/>option to avoid this step:</p><pre>
 karaf@root()> cave:repository-create -no -l /home/user/.m2/repository m2
-</pre><p>By default, Apache Karaf Cave registers (installs) a new repository into the OBR service. You can use the <tt>-ni</tt> (<tt>--no-install</tt>)<br/>option to avoid this step:</p><pre>
-karaf@root()> cave:repository-create -ni -l /home/user/m2/repository m2
-</pre><p>NB: the <tt>-no</tt> and <tt>-ni</tt> options are interesting when you use an existing location for the repository. If you create a<br/>new empty repository, these options don't have really any effect.</p><h2 id="List">List</h2><p>You can list the repositories using the <tt>cave:repositories</tt> command:</p><pre>
+</pre><p>By default, Apache Karaf Cave registers (installs) a new repository into the repository service. You can use the <tt>-ns</tt> (<tt>--no-start</tt>)<br/>option to avoid this step:</p><pre>
+karaf@root()> cave:repository-create -ns -l /home/user/m2/repository m2
+</pre><p>NB: the <tt>-no</tt> and <tt>-ni</tt> options are interesting when you use an existing location for the repository. If you create a<br/>new empty repository, these options don't have really any effect.</p><h2 id="List">List</h2><p>You can list the repositories:</p><pre>
 karaf@root()> cave:repositories
 Name          | Location
---------------------------------------------------------------------
-my-repository | /home/jbonofre/apache-karaf-3.0.1/cave/my-repository
-m2            | /home/jbonofre/.m2/repository
-</pre><p>You can find the repository name and location.</p><h2 id="RepositoryandOBRservice">Repository and OBR service</h2><p>By default, Apache Karaf Cave installs the repository in the Apache Karaf OBR service.</p><p>You can see the installed repositories using the <tt>obr:url-list</tt> command:</p><pre>
-karaf@root()> obr:url-list
-Index | OBR URL
---------------------------------------------------------------------------------
-0     | file:/home/jbonofre/.m2/repository/repository.xml
-1     | file:/home/jbonofre/apache-karaf-3.0.1/cave/my-repository/repository.xml
-</pre><p>You can refresh a repository or install a repository in the OBR service using the <tt>cave:repository-install</tt> command:</p><pre>
-karaf@root()> cave:repository-install my-repository
-</pre><p>You can uninstall a repository from the Apache Karaf OBR service using the <tt>cave:repository-uninstall</tt> command:</p><pre>
-karaf@root()> cave:repository-uninstall my-repository
-</pre><p>You can see with the <tt>obr:url-list</tt> command that the repository is no more known by the OBR service:</p><pre>
-karaf@root()> obr:url-list
-Index | OBR URL
----------------------------------------------------------
-0     | file:/home/jbonofre/.m2/repository/repository.xml
-</pre><p>You can "re-install" the repository at any time using the <tt>cave:repository-install</tt> command again:</p><pre>
-karaf@root()> cave:repository-install my-repository
-karaf@root()> obr:url-list
-Index | OBR URL
---------------------------------------------------------------------------------
-0     | file:/home/jbonofre/.m2/repository/repository.xml
-1     | file:/home/jbonofre/apache-karaf-3.0.1/cave/my-repository/repository.xml
-</pre><p>At any time, you can force the generation and update of the OBR metadata using the <tt>cave:repository-update</tt> command:</p><pre>
-karaf@root()> cave:repository-update my-repository
-</pre><p>This command scan the repository storage location, seeking all OSGi bundles, and generate the OBR metadata (aka a repository.xml).</p><p>NB: If you add or remove any artifact in the repository storage location by hand (for instance, using cp, rm, etc on Unix),<br/>you have to update the repository OBR metadata using the <tt>cave:repository-update</tt> command.</p><h2 id="Destroy">Destroy</h2><p>The <tt>cave:repository-destroy</tt> command deletes the repository storage location:</p><pre>
+----------------------------------------------------------------
+my-repository | /opt/apache-karaf-4.0.0/data/cave/my-repository
+</pre><p>You can find the repository name and location.</p><h2 id="Destroy">Destroy</h2><p>The <tt>cave:repository-destroy</tt> command deletes the repository:</p><pre>
 karaf@root()> cave:repository-destroy my-repository
-</pre><div class="warning" style="border: 1px solid #c00;background-color: #fcc;margin: 20px;padding: 0px 6px 0px 6px;"><p>Be aware that this command completely deletes the repository storage. By extremely careful when using this command<br/>with repository using "custom" location.</p></div><h2 id="Whatsnext">What's next</h2><p>Apache Karaf Cave provides a HTTP service to expose the repositories. It allows you to use the repositories remotely.<br/>You can find details in the <a href="http-wrapper.html">HTTP wrapper service section</a> of the user guide.</p><p>If repositories are installed in the OBR service, you can use the OBR command as explained in the <a href="obr-command.html">OBR commands section</a><br/>of the user guide.</p>
\ No newline at end of file
+</pre><p>The <tt>-s</tt> (<tt>--storage</tt>) also deletes the repository backend storage.</p><div class="warning" style="border: 1px solid #c00;background-color: #fcc;margin: 20px;padding: 0px 6px 0px 6px;"><p>Be aware that the <tt>-s</tt> option completely deletes the repository storage. By extremely careful when using this command<br/>with repository using "custom" location.</p></div><h2 id="Whatsnext">What's next</h2><p>Apache Karaf Cave provides a HTTP service to expose the repositories. It allows you to use the repositories remotely.<br/>You can find details in the <a href="http-wrapper.html">HTTP wrapper service section</a> of the user guide.</p>
\ No newline at end of file

Modified: karaf/site/production/manual/cave/latest/user-guide/http-wrapper.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cave/latest/user-guide/http-wrapper.html?rev=1689984&r1=1689983&r2=1689984&view=diff
==============================================================================
--- karaf/site/production/manual/cave/latest/user-guide/http-wrapper.html (original)
+++ karaf/site/production/manual/cave/latest/user-guide/http-wrapper.html Thu Jul  9 04:42:32 2015
@@ -8,7 +8,7 @@
     <link href="../css/style.css" rel="stylesheet" type="text/css"/>
     <link href="../css/pygmentize.css" rel="stylesheet" type="text/css"/>
     <title>
-      Apache Karaf Cave 3.0.1-SNAPSHOT Guides
+      Apache Karaf Cave 4.0.0-SNAPSHOT Guides
     </title>
   </head>
   <body>
@@ -34,106 +34,14 @@
         <td id="cell-1-2">
           <div style="padding: 5px;">
             <div id="banner">
-              <h1 id="HTTPwrapperservice">HTTP wrapper service</h1><p>When you install the Apache Karaf Cave Server, it starts a HTTP service wrapper.</p><p>It means that all artifacts and OBR metadata presents in local repositories are exposed over HTTP.</p><h2 id="OBRmetadataaccess">OBR metadata access</h2><p>Assuming that you have the following repositories:</p><pre>
+              <h1 id="HTTPwrapperservice">HTTP wrapper service</h1><p>When you install the Apache Karaf Cave Server, it starts a HTTP service wrapper.</p><p>It means that all artifacts and repository metadata presents in local repositories are exposed over HTTP.</p><h2 id="Repositorymetadataaccess">Repository metadata access</h2><p>Assuming that you have the following repositories:</p><pre>
 karaf@root()> cave:repositories
 Name          | Location
---------------------------------------------------------------------
-my-repository | /home/jbonofre/apache-karaf-3.0.1/cave/my-repository
-m2            | /home/jbonofre/.m2/repository
-</pre><p>You can access the OBR metadata using the following URL in your favorite browser:</p><pre>
-http://localhost:8181/cave/m2-repository.xml
-</pre><p>and</p><pre>
-http://localhost:8181/cave/my-repository-repository.xml
-</pre><p>NB: the port 8181 is the default one of the Apache Karaf HTTP service.</p><p>You can see that the URL follows the format:</p><p>You can note the OBR metadata Cave URL format:</p><pre>
-http://[cave_server_hostname]:[http_service_port]/cave/[cave_repository_name]-repository.xml
-</pre><p>It means that you can register the repositories on remote Apache Karaf instances.</p><p>In a remote Apache Karaf instance, you just have to install the obr feature and register the HTTP wrapper repository.xml URL:</p><pre>
-karaf@other()> feature:install obr
-karaf@other()> obr:url-add http://cave_server:8181/cave/cave-repo-repository.xml
-karaf@other()> obr:url-add http://cave_server:8181/cave/m2-repository.xml
-</pre><h2 id="OSGibundlesaccess">OSGi bundles access</h2><p>Apache Karaf Cave HTTP wrapper service also provide the OSGi bundles binaries via HTTP.</p><p>For instance, you have register the my-repository repository in the OBR service:</p><pre>
-karaf@root()> cave:repository-install my-repository
-</pre><p>So you have the following bundles available in the OBR service:</p><pre>
-karaf@root()> obr:list
-Name                                                                                                  | Symbolic Name                                                       | Version
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-Apache ServiceMix :: Bundles :: commons-dbcp                                                          | org.apache.servicemix.bundles.commons-dbcp                          | 1.4.0.3
-...
-</pre><p>If we take a look on the detail of the commons-dbcp bundle:</p><pre>
-karaf@root()> obr:info org.apache.servicemix.bundles.commons-dbcp
---------------------------------------------
-Apache ServiceMix :: Bundles :: commons-dbcp
---------------------------------------------
-id: org.apache.servicemix.bundles.commons-dbcp/1.4.0.3
-description: This OSGi bundle wraps commons-dbcp 1.4 jar file.
-documentation: http://www.apache.org/
-symbolicname: org.apache.servicemix.bundles.commons-dbcp
-presentationname: Apache ServiceMix :: Bundles :: commons-dbcp
-license: http://www.apache.org/licenses/LICENSE-2.0.txt
-uri: file:/home/jbonofre/.m2/repository/org/apache/servicemix/bundles/org.apache.servicemix.bundles.commons-dbcp/1.4_3/org.apache.servicemix.bundles.commons-dbcp-1.4_3.jar
-size: 171252
-version: 1.4.0.3
-Requires:
-   package:(&amp;(package=javax.naming))
-   package:(&amp;(package=javax.naming.spi))
-   package:(&amp;(package=javax.sql))
-   package:(&amp;(package=javax.transaction))
-   package:(&amp;(package=javax.transaction.xa))
-   package:(&amp;(package=org.apache.commons.pool)(version>=1.3.0)(!(version>=2.0.0)))
-   package:(&amp;(package=org.apache.commons.pool.impl)(version>=1.3.0)(!(version>=2.0.0)))
-   package:(&amp;(package=org.xml.sax))
-   package:(&amp;(package=org.xml.sax.helpers))
-Capabilities:
-   bundle:{manifestversion=2, symbolicname=org.apache.servicemix.bundles.commons-dbcp, presentationname=Apache ServiceMix :: Bundles :: commons-dbcp, version=1.4.0.3}
-   package:{package=org.apache.commons.dbcp.cpdsadapter, uses:=org.apache.commons.dbcp,javax.naming,javax.sql,org.apache.commons.pool.impl,org.apache.commons.pool,javax.naming.spi, version=1.4.0}
-   package:{package=org.apache.commons.dbcp, uses:=org.apache.commons.pool.impl,org.apache.commons.pool,javax.sql,javax.naming,javax.naming.spi,org.apache.commons.jocl,org.xml.sax, version=1.4.0}
-   package:{package=org.apache.commons.dbcp.managed, uses:=org.apache.commons.dbcp,javax.sql,org.apache.commons.pool.impl,javax.transaction,org.apache.commons.pool,javax.transaction.xa, version=1.4.0}
-   package:{package=org.apache.commons.dbcp.datasources, uses:=javax.sql,org.apache.commons.pool,javax.naming,org.apache.commons.dbcp,javax.naming.spi,org.apache.commons.pool.impl, version=1.4.0}
-   package:{package=org.apache.commons.jocl, uses:=org.xml.sax.helpers,org.xml.sax, version=1.4.0}
-</pre><p>we can see that the URI is <tt>file:/home/jbonofre/.m2/repository/org/apache/servicemix/bundles/org.apache.servicemix.bundles.commons-dbcp/1.4_3/org.apache.servicemix.bundles.commons-dbcp-1.4_3.jar</tt>.</p><p>But the HTTP wrapper service also exposes the bundle on:</p><pre>
-http://localhost:8181/cave/org.apache.servicemix.bundles.commons-dbcp-1.4.0.3.jar
-</pre><p>Actually, Apache Karaf Cave handles bundle URI relatively to the repository.</p><p>So, it means that, if you register the my-repository repository on a remote Apache Karaf instance:</p><pre>
-karaf@other()> feature:install obr
-karaf@other()> obr:url-add http://cave_server:8181/cave/my-repository-repository.xml
-</pre><p>you can take a look on the commons-dbcp details:</p><pre>
-karaf@root()> obr:info org.apache.servicemix.bundles.commons-dbcp
---------------------------------------------
-Apache ServiceMix :: Bundles :: commons-dbcp
---------------------------------------------
-id: org.apache.servicemix.bundles.commons-dbcp/1.4.0.3
-description: This OSGi bundle wraps commons-dbcp 1.4 jar file.
-documentation: http://www.apache.org/
-symbolicname: org.apache.servicemix.bundles.commons-dbcp
-presentationname: Apache ServiceMix :: Bundles :: commons-dbcp
-license: http://www.apache.org/licenses/LICENSE-2.0.txt
-uri: http://localhost:8181/cave/org.apache.servicemix.bundles.commons-dbcp-1.4.0.3.jar
-size: 171252
-version: 1.4.0.3
-Requires:
-   package:(&amp;(package=javax.naming))
-   package:(&amp;(package=javax.naming.spi))
-   package:(&amp;(package=javax.sql))
-   package:(&amp;(package=javax.transaction))
-   package:(&amp;(package=javax.transaction.xa))
-   package:(&amp;(package=org.apache.commons.pool)(version>=1.3.0)(!(version>=2.0.0)))
-   package:(&amp;(package=org.apache.commons.pool.impl)(version>=1.3.0)(!(version>=2.0.0)))
-   package:(&amp;(package=org.xml.sax))
-   package:(&amp;(package=org.xml.sax.helpers))
-Capabilities:
-   bundle:{manifestversion=2, symbolicname=org.apache.servicemix.bundles.commons-dbcp, presentationname=Apache ServiceMix :: Bundles :: commons-dbcp, version=1.4.0.3}
-   package:{package=org.apache.commons.dbcp.cpdsadapter, uses:=org.apache.commons.dbcp,javax.naming,javax.sql,org.apache.commons.pool.impl,org.apache.commons.pool,javax.naming.spi, version=1.4.0}
-   package:{package=org.apache.commons.dbcp, uses:=org.apache.commons.pool.impl,org.apache.commons.pool,javax.sql,javax.naming,javax.naming.spi,org.apache.commons.jocl,org.xml.sax, version=1.4.0}
-   package:{package=org.apache.commons.dbcp.managed, uses:=org.apache.commons.dbcp,javax.sql,org.apache.commons.pool.impl,javax.transaction,org.apache.commons.pool,javax.transaction.xa, version=1.4.0}
-   package:{package=org.apache.commons.dbcp.datasources, uses:=javax.sql,org.apache.commons.pool,javax.naming,org.apache.commons.dbcp,javax.naming.spi,org.apache.commons.pool.impl, version=1.4.0}
-   package:{package=org.apache.commons.jocl, uses:=org.xml.sax.helpers,org.xml.sax, version=1.4.0}
-</pre><p>we can see that the URI is <tt>http://localhost:8181/cave/org.apache.servicemix.bundles.commons-dbcp-1.4.0.3.jar</tt>.</p><p>It means that we can use directly <tt>obr:deploy</tt> command:</p><pre>
-karaf@root> obr:deploy org.apache.servicemix.bundles.commons-dbcp
-Target resource(s):
--------------------
-   Apache ServiceMix :: Bundles :: commons-dbcp (1.4.0.3)
+-----------------------------------------------------------------------------
+my-repository | /opt/apache-karaf-4.0.0/data/cave/my-repository
 
-Required resource(s):
----------------------
-   Apache ServiceMix :: Bundles :: commons-pool (1.5.4.3)
-
-Deploying...done.
-</pre>
\ No newline at end of file
+</pre><p>You can access the repository metadata using the following URL in your favorite browser:</p><pre>
+http://localhost:8181/cave/http/my-repository-repository.xml
+</pre><p>NB: the port 8181 is the default one of the Apache Karaf HTTP service.</p><p>You can see that the URL follows the format:</p><pre>
+http://[cave_server_hostname]:[http_service_port]/cave/http/[cave_repository_name]-repository.xml
+</pre><p>It means that you can register the repositories on remote Apache Karaf instances.</p>
\ No newline at end of file

Modified: karaf/site/production/manual/cave/latest/user-guide/index.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cave/latest/user-guide/index.html?rev=1689984&r1=1689983&r2=1689984&view=diff
==============================================================================
--- karaf/site/production/manual/cave/latest/user-guide/index.html (original)
+++ karaf/site/production/manual/cave/latest/user-guide/index.html Thu Jul  9 04:42:32 2015
@@ -8,7 +8,7 @@
     <link href="../css/style.css" rel="stylesheet" type="text/css"/>
     <link href="../css/pygmentize.css" rel="stylesheet" type="text/css"/>
     <title>
-      Apache Karaf Cave 3.0.1-SNAPSHOT Guides
+      Apache Karaf Cave 4.0.0-SNAPSHOT Guides
     </title>
   </head>
   <body>
@@ -34,4 +34,4 @@
         <td id="cell-1-2">
           <div style="padding: 5px;">
             <div id="banner">
-              <h1 id="ApacheKarafCaveUserGuide">Apache Karaf Cave User Guide</h1><ul><li><a href="installation.html">Installation</a></li><li><a href="cave-repository.html">Repository</a></li><li><a href="populate-repository.html">Populate repository</a></li><li><a href="proxy-repository.html">Proxy repository</a></li><li><a href="obr-commands.html">OBR commands</a></li><li><a href="http-wrapper.html">HTTP wrapper service</a></li><li><a href="administrate-cave.html">Administration</a></li></ul>
\ No newline at end of file
+              <h1 id="ApacheKarafCaveUserGuide">Apache Karaf Cave User Guide</h1><ul><li><a href="installation.html">Installation</a></li><li><a href="cave-repository.html">Repository</a></li><li><a href="populate-repository.html">Populate repository</a></li><li><a href="proxy-repository.html">Proxy repository</a></li><li><a href="http-wrapper.html">HTTP wrapper service</a></li><li><a href="maven-wrapper.html">Maven wrapper service</a></li><li><a href="administrate-cave.html">Administration</a></li></ul>
\ No newline at end of file

Modified: karaf/site/production/manual/cave/latest/user-guide/installation.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cave/latest/user-guide/installation.html?rev=1689984&r1=1689983&r2=1689984&view=diff
==============================================================================
--- karaf/site/production/manual/cave/latest/user-guide/installation.html (original)
+++ karaf/site/production/manual/cave/latest/user-guide/installation.html Thu Jul  9 04:42:32 2015
@@ -8,7 +8,7 @@
     <link href="../css/style.css" rel="stylesheet" type="text/css"/>
     <link href="../css/pygmentize.css" rel="stylesheet" type="text/css"/>
     <title>
-      Apache Karaf Cave 3.0.1-SNAPSHOT Guides
+      Apache Karaf Cave 4.0.0-SNAPSHOT Guides
     </title>
   </head>
   <body>
@@ -34,14 +34,19 @@
         <td id="cell-1-2">
           <div style="padding: 5px;">
             <div id="banner">
-              <h1 id="Installation">Installation</h1><p>This chapter describes how to install Apache Karaf Cave into an existing Apache Karaf instance.</p><h2 id="Preinstallationrequirements">Pre-installation requirements</h2><p>As Apache Karaf Cave is a Apache Karaf sub-project, it has to be installed into a running Apache Karaf instance.</p><p>Apache Karaf Cave is available as Apache Karaf features. The easiest way to install is just to have an internet<br/>connection from the Apache Karaf running instance.</p><h2 id="RegistrationoftheApacheKarafCavefeatures">Registration of the Apache Karaf Cave features</h2><p>Simply register the Apache Karaf Cave features URL in your Apache Karaf instance:</p><pre>
-karaf@root()> feature:repo-add mvn:org.apache.karaf.cave/apache-karaf-cave/3.0.0/xml/features
+              <h1 id="Installation">Installation</h1><p>This chapter describes how to install Apache Karaf Cave into an existing Apache Karaf instance.</p><h2 id="Preinstallationrequirements">Pre-installation requirements</h2><p>As Apache Karaf Cave is a Apache Karaf sub-project, it has to be installed into a running Apache Karaf instance.</p><p>Apache Karaf Cave is available as Apache Karaf features. The easiest way to install is just to have an internet<br/>connection from the Apache Karaf running instance.</p><p>Apache Karaf Cave 4.0.x is designed to work on Apache Karaf 4.0.x.</p><h2 id="RegistrationoftheApacheKarafCavefeatures">Registration of the Apache Karaf Cave features</h2><p>Simply register the Apache Karaf Cave features URL in your Apache Karaf instance:</p><pre>
+karaf@root()> feature:repo-add cave 4.0.0
+Adding feature url mvn:org.apache.karaf.cave/apache-karaf-cave/4.0.0/xml/features
 </pre><p>Now Apache Karaf Cave features are available, ready to be installed:</p><pre>
-karaf@root()> feature:list |grep -i cave
-cave-server                   | 3.0.0   | x         | karaf-cave-3.0.0 |
+karaf@root()> feature:list|grep -i cave
+cave-server                     | 4.0.0                   |          | Uninstalled | karaf-cave-4.0.0 |
+cave-storage                    | 4.0.0                   |          | Uninstalled | karaf-cave-4.0.0 |
+cave-http                       | 4.0.0                   |          | Uninstalled | karaf-cave-4.0.0 |
+cave-rest                       | 4.0.0                   |          | Uninstalled | karaf-cave-4.0.0 |
+cave-maven                      | 4.0.0                   |          | Uninstalled | karaf-cave-4.0.0 |
 </pre><h3 id="StartingApacheKarafCaveServer">Starting Apache Karaf Cave Server</h3><p>The Apache Karaf Cave Server is installed by the <tt>cave-server</tt> feature:</p><pre>
 karaf@root()> feature:install cave-server
-</pre><p>NB: installation of the cave-server feature will install additional features, such as obr, http, war. It could take<br/>several minutes depending of your network connection speed.</p><p>New Apache Karaf Cave commands are now available:</p><pre>
+</pre><p>The cave-server feature is a meta-feature which actually installs:</p><ul><li>cave-storage feature providing the Cave filesystem default storage.</li><li>cave-http feature providing the Cave HTTP service allowing a remote access to the repositories.</li><li>cave-rest feature providing the Cave REST API allowing to manipulate the repository remotely with any REST HTTP client.</li><li>cave-maven feature providing a complete Maven repository for the Cave repositories.</li></ul><p>After the installation of the cave-server feature, new commands are available:</p><pre>
 karaf@root()> cave:&lt;TAB>
 cave:repositories            cave:repository-create       cave:repository-destroy
 cave:repository-install      cave:repository-populate     cave:repository-proxy

Added: karaf/site/production/manual/cave/latest/user-guide/maven-wrapper.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cave/latest/user-guide/maven-wrapper.html?rev=1689984&view=auto
==============================================================================
--- karaf/site/production/manual/cave/latest/user-guide/maven-wrapper.html (added)
+++ karaf/site/production/manual/cave/latest/user-guide/maven-wrapper.html Thu Jul  9 04:42:32 2015
@@ -0,0 +1,48 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd"> 
+<html lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+    <meta name="description" content="description goes here"/>
+    <meta name="keywords" content="keywords,goes,here"/>
+    <meta name="author" content="The Apache Karaf Team"/>
+    <link href="../css/style.css" rel="stylesheet" type="text/css"/>
+    <link href="../css/pygmentize.css" rel="stylesheet" type="text/css"/>
+    <title>
+      Apache Karaf Cave 4.0.0-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+              <h1 id="Mavenwrapperservice">Maven wrapper service</h1><p>When you install the Apache Karaf Cave Server, it starts a Maven service wrapper.</p><p>It means that all artifacts are available using a Maven structure (groupId/artifactId/version/artifactId-version<a href="-classifier.html">-classifier</a>.type).</p><p>It allows you to use your Cave repository directly using mvn URL in Karaf, and using Maven itself: Cave acts as a<br/>complete Maven repository.</p><p>For instance, we have the following Cave repository:</p><pre>
+karaf@root()> cave:repositories
+Name          | Location
+----------------------------------------------------------------
+my-repository | /opt/apache-karaf-4.0.0/data/cave/my-repository
+</pre><p>You can access the corresponding Maven repository using:</p><pre>
+http://localhost:8181/cave/maven
+</pre><p>NB: the port 8181 is the default one of the Apache Karaf HTTP service.</p><p>You can see that the URL follows the format:</p><pre>
+http://[cave_server_hostname]:[http_service_port]/cave/maven/
+</pre><p>For instance, if a Cave repository contains the commons-lang 2.6 artifact, it's accessible using:</p><pre>
+http://localhost:8181/cave/maven/commons-lang/commons-lang/2.6/commons-lang-2.6.jar
+</pre>
\ No newline at end of file

Modified: karaf/site/production/manual/cave/latest/user-guide/populate-repository.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cave/latest/user-guide/populate-repository.html?rev=1689984&r1=1689983&r2=1689984&view=diff
==============================================================================
--- karaf/site/production/manual/cave/latest/user-guide/populate-repository.html (original)
+++ karaf/site/production/manual/cave/latest/user-guide/populate-repository.html Thu Jul  9 04:42:32 2015
@@ -8,7 +8,7 @@
     <link href="../css/style.css" rel="stylesheet" type="text/css"/>
     <link href="../css/pygmentize.css" rel="stylesheet" type="text/css"/>
     <title>
-      Apache Karaf Cave 3.0.1-SNAPSHOT Guides
+      Apache Karaf Cave 4.0.0-SNAPSHOT Guides
     </title>
   </head>
   <body>
@@ -35,12 +35,12 @@
           <div style="padding: 5px;">
             <div id="banner">
               <h1 id="Populaterepository">Populate repository</h1><p>You can add new artifacts in a repository.</p><h2 id="Uploadasingleartifact">Upload a single artifact</h2><p>You can upload a single artifact into a Cave Repository:</p><pre>
-karaf@root()> cave:repository-upload-artifact my-repository file:/home/jbonofre/.m2/repository/org/apache/servicemix/bundles/org.apache.servicemix.bundles.asm/3.3_2/org.apache.servicemix.bundles.asm-3.3_2.jar
-karaf@root()> cave:repository-upload-artifact my-repository http://svn.apache.org/repos/asf/servicemix/m2-repo/org/apache/qpid/qpid-broker/0.8.0/qpid-broker-0.8.0.jar
+karaf@root()> cave:repository-upload my-repository file:/home/user/.m2/repository/org/apache/servicemix/bundles/org.apache.servicemix.bundles.asm/3.3_2/org.apache.servicemix.bundles.asm-3.3_2.jar
+karaf@root()> cave:repository-upload my-repository http://svn.apache.org/repos/asf/servicemix/m2-repo/org/apache/qpid/qpid-broker/0.8.0/qpid-broker-0.8.0.jar
 </pre><p>You can also use Maven style URL:</p><pre>
-karaf@root()> cave:repository-upload-artifact my-repository mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/1.7.0_5
+karaf@root()> cave:repository-upload my-repository mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/1.7.0_5
 </pre><h3 id="Populatefromanexternalrepository">Populate from an external repository</h3><p>You can also make a kind of "bulk" population of your repository, using an external repository:</p><pre>
-karaf@root()> cave:repository-populate my-repository file:/home/jbonofre/.m2/repository
+karaf@root()> cave:repository-populate my-repository file:/home/user/.m2/repository
 </pre><p>Apache Karaf Cave supports <tt>file:</tt> but also <tt>http:</tt> URL. It means that Apache Karaf Cave is able to browse a remote repository and copy the artifacts<br/>in your "local" repository.</p><p>For instance, you can populate your repository using all Ant ServiceMix bundles present on the Central Maven<br/>repository:</p><pre>
 karaf@root()> cave:repository-populate my-repository http://repo1.maven.org/maven2/org/apache/servicemix/bundles/org.apache.servicemix.bundles.ant/
 </pre><p>You can also populate with the whole Central Maven Repository:</p><pre>

Modified: karaf/site/production/manual/cave/latest/user-guide/proxy-repository.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cave/latest/user-guide/proxy-repository.html?rev=1689984&r1=1689983&r2=1689984&view=diff
==============================================================================
--- karaf/site/production/manual/cave/latest/user-guide/proxy-repository.html (original)
+++ karaf/site/production/manual/cave/latest/user-guide/proxy-repository.html Thu Jul  9 04:42:32 2015
@@ -8,7 +8,7 @@
     <link href="../css/style.css" rel="stylesheet" type="text/css"/>
     <link href="../css/pygmentize.css" rel="stylesheet" type="text/css"/>
     <title>
-      Apache Karaf Cave 3.0.1-SNAPSHOT Guides
+      Apache Karaf Cave 4.0.0-SNAPSHOT Guides
     </title>
   </head>
   <body>
@@ -34,8 +34,8 @@
         <td id="cell-1-2">
           <div style="padding: 5px;">
             <div id="banner">
-              <h1 id="Proxyrepository">Proxy repository</h1><p>As you can <a href="populate-repository.html">populate repository</a>, you can also proxy an "external" repository.</p><p>It means that the artifacts stay on the remote repository, Apache Karaf Cave generates the OBR metadata in the local repository<br/>for the remote artifacts:</p><pre>
+              <h1 id="Proxyrepository">Proxy repository</h1><p>As you can <a href="populate-repository.html">populate repository</a>, you can also proxy an "external" repository.</p><p>It means that the artifacts stay on the remote repository, Apache Karaf Cave generates the repository metadata in the local repository<br/>for the remote artifacts:</p><pre>
 karaf@root()> cave:repository-proxy my-repository http://repo1.maven.org/maven2/org/apache/servicemix/bundles/org.apache.servicemix.bundles.commons-lang/
-</pre><p>NB: the Cave repository will only handle the OBR metadata, it doesn't monitor the remote repository. It means that you<br/>have to call the <tt>cave:proxy-repository</tt> command each time the remote repository change (new artifacts, etc).</p><p>NB: a best practice is to create a Cave repository dedicated for each proxied repository.</p><p>The <tt>cave:proxy-repository</tt> command accepts the filter option, as the <tt>cave:populate-repository</tt> command:</p><pre>
+</pre><p>NB: the Cave repository will only handle the repository metadata, it doesn't monitor the remote repository. It means that you<br/>have to call the <tt>cave:proxy-repository</tt> command each time the remote repository change (new artifacts, etc).</p><p>NB: a best practice is to create a Cave repository dedicated for each proxied repository.</p><p>The <tt>cave:repository-proxy</tt> command accepts the filter option, as the <tt>cave:repository-populate</tt> command:</p><pre>
 karaf@root()> cave:repository-proxy --filter .*joda-time-2.* my-repository http://repo2.maven.org/maven2/joda-time/joda-time
 </pre>
\ No newline at end of file