You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by mc...@apache.org on 2008/01/02 09:56:08 UTC

svn commit: r608044 - in /felix/trunk: bundleplugin/doc/ maven-obr-plugin/doc/ maven-obr-plugin/doc/maven-obr-plugin_files/

Author: mcculls
Date: Wed Jan  2 00:56:07 2008
New Revision: 608044

URL: http://svn.apache.org/viewvc?rev=608044&view=rev
Log:
Update plugin docs with latest HTML

Added:
    felix/trunk/maven-obr-plugin/doc/maven-obr-plugin.html   (with props)
    felix/trunk/maven-obr-plugin/doc/maven-obr-plugin_files/
    felix/trunk/maven-obr-plugin/doc/maven-obr-plugin_files/apache.png   (with props)
    felix/trunk/maven-obr-plugin/doc/maven-obr-plugin_files/linkext7.gif   (with props)
    felix/trunk/maven-obr-plugin/doc/maven-obr-plugin_files/logo.png   (with props)
    felix/trunk/maven-obr-plugin/doc/maven-obr-plugin_files/site.css   (with props)
Modified:
    felix/trunk/bundleplugin/doc/maven-bundle-plugin-bnd.html

Modified: felix/trunk/bundleplugin/doc/maven-bundle-plugin-bnd.html
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/doc/maven-bundle-plugin-bnd.html?rev=608044&r1=608043&r2=608044&view=diff
==============================================================================
--- felix/trunk/bundleplugin/doc/maven-bundle-plugin-bnd.html (original)
+++ felix/trunk/bundleplugin/doc/maven-bundle-plugin-bnd.html Wed Jan  2 00:56:07 2008
@@ -171,6 +171,8 @@
 variable substitution will be performed on the resource, where
 variables in the resources are denoted with "${ ... }" syntax.</p>
 
+<p>By default the bundle plugin converts the project's Maven resource directories into a single <tt>&lt;Include-Resource&gt;</tt> instruction. If you specify your own <tt>&lt;Include-Resource&gt;</tt> instruction, this will replace the generated one. To include the generated list of Maven resources in your own <tt>&lt;Include-Resource&gt;</tt> instruction just add {<tt>maven-resources</tt>} to the list and it will be expanded automatically.</p>
+
 <h3><a name="MavenBundlePlugin(BND)-{{&lt;ImportPackage&gt;}}"></a><tt>&lt;Import-Package&gt;</tt></h3>
 
 <p>The <tt>&lt;Import-Package&gt;</tt> instruction is a list of
@@ -194,7 +196,7 @@
 	<li><tt>&lt;Export-Package&gt;</tt> is assumed to be "<tt>${groupId}.${artifactId}.*</tt>", unless <tt>&lt;Private-Package&gt;</tt> is specified, then <tt>&lt;Export-Package&gt;</tt> is assumed to be empty.</li>
 	<li><tt>&lt;Private-Package&gt;</tt> is assumed to be empty by default.</li>
 	<li><tt>&lt;Import-Package&gt;</tt> is assumed to be "<tt>*</tt>", which imports everything referred to by the bundle content, but not contained in the bundle.</li>
-	<li><tt>&lt;Include-Resource&gt;</tt> is assumed to be "<tt>src/main/resources/</tt>",
+	<li><tt>&lt;Include-Resource&gt;</tt> is generated from the project's Maven resources, typically "<tt>src/main/resources/</tt>",
 which will copy the specified project directory hierarchy into the
 resulting bundle JAR file, mirroring standard Maven behavior.</li>
 	<li><tt>&lt;Bundle-Version&gt;</tt> is assumed to be "<tt>${pom.version</tt>}" with '-' character separator of the qualifier replaced with a '.' character.</li>
@@ -206,7 +208,7 @@
 </ul>
 
 
-<p>Since the plugin creates bundles for OSGi R4, it hard codes <tt>Bundle-ManifestVersion</tt>
+<p>Since the plugin creates bundles for OSGi R4, it hard-codes <tt>Bundle-ManifestVersion</tt>
 to be '2'. Additionally, it generates imports for every export to
 ensure package substitutability, which is very important when working
 with collaborating services. It is possible to override any of these
@@ -241,7 +243,7 @@
     &lt;dependency&gt;
       &lt;groupId&gt;org.apache.felix&lt;/groupId&gt;
       &lt;artifactId&gt;org.osgi.core&lt;/artifactId&gt;
-      &lt;version&gt;0.8.0-incubator&lt;/version&gt;
+      &lt;version&gt;1.0.0&lt;/version&gt;
     &lt;/dependency&gt;
   &lt;/dependencies&gt;
   &lt;build&gt;
@@ -467,9 +469,11 @@
 
 <p>The default goal <tt>bundle</tt> will be initialized by setting the &lt;packaging&gt; entry to "bundle".</p>
 
+<h1><a name="MavenBundlePlugin(BND)-Thefollowingfeaturesareonlyavailableinthe1.1.0SNAPSHOTversion"></a>The following features are only available in the 1.1.0-SNAPSHOT version</h1>
+
 <h1><a name="MavenBundlePlugin(BND)-Embeddingdependencies"></a>Embedding dependencies</h1>
 
-<p>The Maven Bundle Plugin supports embedding project dependencies into the built bundle using the <tt>&lt;Embed-Dependency&gt;</tt> instruction listing all dependencies in standard Bundle manifest header syntax:</p>
+<p>The Maven Bundle Plugin supports embedding of selected project dependencies inside the bundle by using the <tt>&lt;Embed-Dependency&gt;</tt> instruction:</p>
 
 <div class="code"><div class="codeContent">
 <pre class="code-xml"><span class="code-tag">&lt;Embed-Dependency&gt;</span>dependencies<span class="code-tag">&lt;/Embed-Dependency&gt;</span></pre>
@@ -485,6 +489,8 @@
 </pre>
 </div></div>
 
+<p>The plugin uses the <tt>&lt;Embed-Dependency&gt;</tt> instruction to transform the project dependencies into <tt>&lt;Include-Resource&gt;</tt> and <tt>&lt;Bundle-ClassPath&gt;</tt> clauses, which are then appended to the current set of instructions and passed onto BND.</p>
+
 <p>some examples:</p>
 
 <div class="code"><div class="codeContent">
@@ -495,7 +501,7 @@
 <span class="code-tag">&lt;Embed-Dependency&gt;</span>aopalliance;scope=!test;inline=true<span class="code-tag">&lt;/Embed-Dependency&gt;</span></pre>
 </div></div>
 
-<p>By default matched dependencies are embedded in the bundle under as <tt>artifactId-version.jar</tt>. This behaviour can be modified using the following instructions:</p>
+<p>By default matched dependencies are embedded in the bundle as <tt>artifactId-version.jar</tt>. This behaviour can be modified using the following instructions:</p>
 
 <ul>
 	<li><tt>&lt;Embed-StripVersion&gt;true&lt;/Embed-StripVersion&gt;</tt> - removes the version from the file (ie. <em>artifactId.jar</em>)</li>
@@ -518,6 +524,15 @@
 <pre class="code-xml"><span class="code-tag">&lt;Embed-Dependency&gt;</span>*;scope=compile|runtime;inline=true<span class="code-tag">&lt;/Embed-Dependency&gt;</span></pre>
 </div></div>
 
+<h2><a name="MavenBundlePlugin(BND)-EmbedDependencyandExportPackage"></a>Embed-Dependency and Export-Package</h2>
+
+<p>If you embed a dependency with <tt>&lt;Embed-Dependency&gt;</tt>, and your <tt>&lt;Export-Package&gt;</tt> or <tt>&lt;Private-Package&gt;</tt> instructions match packages inside the embedded jar, you will see some duplication inside the bundle. This is because the <tt>&lt;Export-Package&gt;</tt> and <tt>&lt;Private-Package&gt;</tt>
+instructions will result in classes being inlined in the bundle, even
+though they also exist inside the embedded jar. If you want to export
+packages from an embedded dependency without such duplication then you
+can either inline the dependency, or use a new BND instruction called <tt>&lt;_exportcontents&gt;</tt>.</p>
+
+<p><tt>&lt;_exportcontents&gt;</tt> behaves just like Export-Package, except it doesn't change the content of the bundle, just what content should be exported.</p>
 
 <h1><a name="MavenBundlePlugin(BND)-OBRintegration"></a>OBR integration</h1>
 

Added: felix/trunk/maven-obr-plugin/doc/maven-obr-plugin.html
URL: http://svn.apache.org/viewvc/felix/trunk/maven-obr-plugin/doc/maven-obr-plugin.html?rev=608044&view=auto
==============================================================================
--- felix/trunk/maven-obr-plugin/doc/maven-obr-plugin.html (added)
+++ felix/trunk/maven-obr-plugin/doc/maven-obr-plugin.html Wed Jan  2 00:56:07 2008
@@ -0,0 +1,378 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title>Apache Felix - Maven Obr Plugin</title>
+
+
+  
+    
+    <link rel="stylesheet" href="maven-obr-plugin_files/site.css" type="text/css" media="all">
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"></head><body>
+    <div class="title"><div class="logo"><a href="http://felix.apache.org/site/index.html"><img alt="Apache Felix" src="maven-obr-plugin_files/logo.png" border="0"></a></div><div class="header"><a href="http://www.apache.org/"><img alt="Apache" src="maven-obr-plugin_files/apache.png" border="0"></a></div></div>
+    <div class="menu">
+<ul>
+	<li><a href="http://felix.apache.org/site/index.html" title="Index">home</a></li>
+	<li><a href="http://felix.apache.org/site/news.html" title="news">news</a></li>
+	<li><a href="http://felix.apache.org/site/status.html" title="status">status</a></li>
+	<li><a href="http://felix.apache.org/site/license.html" title="license">license</a></li>
+	<li><span class="nobr"><a href="http://felix.apache.org/site/downloads.cgi" title="Visit page outside Confluence" rel="nofollow">downloads<sup><img class="rendericon" src="maven-obr-plugin_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span></li>
+	<li><a href="http://felix.apache.org/site/documentation.html" title="documentation">documentation</a></li>
+	<li><a href="http://felix.apache.org/site/mailinglists.html" title="mailinglists">mailing lists</a></li>
+	<li><span class="nobr"><a href="http://cwiki.apache.org/confluence/x/O-" title="Visit page outside Confluence" rel="nofollow">wiki<sup><img class="rendericon" src="maven-obr-plugin_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span></li>
+	<li><a href="http://felix.apache.org/site/committers.html" title="committers">committers</a></li>
+	<li><a href="http://felix.apache.org/site/faq.html" title="faq">faq</a></li>
+	<li><a href="http://felix.apache.org/site/roadmap.html" title="roadmap">roadmap</a></li>
+	<li><a href="http://felix.apache.org/site/sourcecode.html" title="sourcecode">source code</a></li>
+	<li><a href="http://felix.apache.org/site/codingstandards.html" title="codingstandards">coding standards</a></li>
+	<li><a href="http://felix.apache.org/site/issuetracking.html" title="issuetracking">issue tracking</a></li>
+	<li><a href="http://felix.apache.org/site/dependencies.html" title="dependencies">dependencies</a></li>
+	<li><span class="nobr"><a href="http://www.apache.org/" title="Visit page outside Confluence" rel="nofollow">apache software foundation<sup><img class="rendericon" src="maven-obr-plugin_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span></li>
+	<li><span class="nobr"><a href="http://www.apache.org/foundation/sponsorship.html" title="Visit page outside Confluence" rel="nofollow">sponsorship<sup><img class="rendericon" src="maven-obr-plugin_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span></li>
+	<li><span class="nobr"><a href="http://www.apache.org/foundation/thanks.html" title="Visit page outside Confluence" rel="nofollow">sponsors<sup><img class="rendericon" src="maven-obr-plugin_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span></li>
+</ul> </div>
+    <div class="main">
+<p>This Maven plug-in aims to automate OBR (<span class="nobr"><a href="http://www2.osgi.org/Repository/HomePage" title="Visit page outside Confluence" rel="nofollow">OSGi Bundle Repository<sup><img class="rendericon" src="maven-obr-plugin_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span>)
+management. It creates a local OBR repository and can create a remote
+OBR to distribute bundles. This plug-in allows you to install your
+bundles inside an OBR repository at the same time you install it in
+your Maven repository. It can also deploy your bundle in a remote Maven
+repository when you deploy your Maven artefact. The plug-in computes
+capabilities and requirements and edits the repository description file
+to add (or update) the bundle description.</p>
+
+<h2><a name="MavenObrPlugin-Features:"></a>Features:</h2>
+
+<p>The plug-in allows:</p>
+<ul>
+	<li>Installing Maven artefact inside an OBR repository,
+automatically or manually (for legacy bundles). This OBR could be
+remote or local.</li>
+	<li>Discovering bundle capabilities and requirements</li>
+	<li>Customizing bundle descriptions</li>
+</ul>
+
+
+<h2><a name="MavenObrPlugin-Howtousetheplugin?"></a>How to use the plug-in?</h2>
+
+<p>The plug-in offers five Maven goals:</p>
+<ul>
+	<li>A: The standard 'install' goal: it will install your bundle
+in the repository at the same time it install it in your Maven
+repository.</li>
+	<li>B: An 'install-file' goal which takes a jar file,
+and installs it in the local Maven repository and update&nbsp; the
+remote repository descriptor file.</li>
+	<li>C: A 'deploy' goal which upload a bundle on a remote repository and update the remote repository descriptor file.</li>
+	<li>D: A 'deploy-file' goal which upload jar file on a remote repository and update the remote repository descriptor file.&nbsp;</li>
+	<li>E : A 'clean' goal cleaning the local obr repository. &nbsp;&nbsp;&nbsp; &nbsp;</li>
+</ul>
+
+
+<h3><a name="MavenObrPlugin-A:InstallingbundlesinalocalOBRrepository"></a>A: Installing bundles in a local OBR repository</h3>
+
+<p>The plug-in can create a local OBR repository at the root of the
+local Maven repository. At each time the artefact is installed in the
+local maven repository (by using the 'mvn install' command), a local
+OBR repository is updated to contain the description of the artefact.
+This feature is automated inside the <span class="nobr"><a href="http://felix.apache.org/site/maven-bundle-plugin-bnd.html" title="Visit page outside Confluence" rel="nofollow">maven-bundle-plugin<sup><img class="rendericon" src="maven-obr-plugin_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span>.</p>
+
+<h3><a name="MavenObrPlugin-B:InstallinganexistingMavenartefactinalocalOBRrepository"></a>B: Installing an existing Maven artefact in a local OBR repository</h3>
+
+<p>This second way, to use the plug-in is to add an already existing bundle in the OBR. The bundle <b>must</b>
+be already in the Maven local repository (you can use the Maven
+install:install-file plug-in to install an external bundle in your
+Maven repository).<br>
+To use this goal, the user must provide information in command line:</p>
+<table class="confluenceTable"><tbody>
+<tr>
+<td class="confluenceTd"> Variable name (prefixed by --D) </td>
+<td class="confluenceTd"> status </td>
+<td class="confluenceTd"> description </td>
+</tr>
+<tr>
+<td class="confluenceTd"> file </td>
+<td class="confluenceTd"> require </td>
+<td class="confluenceTd"> Path to the jar file (used to install bundle only) </td>
+</tr>
+<tr>
+<td class="confluenceTd"> artefactId </td>
+<td class="confluenceTd"> require </td>
+<td class="confluenceTd"> artefactId of the bundle Use to determine
+path to the jar file in local maven Repository use as symbolic name if
+it isn't define in manifest </td>
+</tr>
+<tr>
+<td class="confluenceTd"> groupId </td>
+<td class="confluenceTd"> require </td>
+<td class="confluenceTd"> groupId of the bundle Use to determine path to the jar file on local maven repository </td>
+</tr>
+<tr>
+<td class="confluenceTd"> version </td>
+<td class="confluenceTd"> require </td>
+<td class="confluenceTd"> Version of the bundle Use to determine path to the jar file on local maven repository </td>
+</tr>
+<tr>
+<td class="confluenceTd"> packaging </td>
+<td class="confluenceTd"> require </td>
+<td class="confluenceTd"> File type Use by maven to install the file (used to install bundle only) </td>
+</tr>
+<tr>
+<td class="confluenceTd"> repository-path </td>
+<td class="confluenceTd"> optional </td>
+<td class="confluenceTd"> Path to the repository descriptor file (if not define: default path is : MavenRepo\repository.xml </td>
+</tr>
+<tr>
+<td class="confluenceTd"> obr-file </td>
+<td class="confluenceTd"> optional </td>
+<td class="confluenceTd"> Path to the obr.xml, file which describe
+capabilities requirement and category given manually by user. (if not
+define: nothing is added to the resource description). </td>
+</tr>
+</tbody></table>
+
+<h4><a name="MavenObrPlugin-Exampleofcommandline:"></a>Example of command line:</h4>
+
+<p>mvn homega.tools:obrPlugin:install-file \<br>
+-Drepository-path=<span class="nobr"><a href="file:///c:repository.xml" title="Visit page outside Confluence" rel="nofollow">file:/c:\repository.xml<sup><img class="rendericon" src="maven-obr-plugin_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span> \<br>
+-obr-file=<span class="nobr"><a href="file:///c:projecthomegaobr.xml" title="Visit page outside Confluence" rel="nofollow">file:/c:\project\homega\obr.xml<sup><img class="rendericon" src="maven-obr-plugin_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span> \<br>
+-DartifactId=multicast.discovery \<br>
+-DgroupId=<font color="black">homega.utils</font> <font color="black">{color}</font><br>
+<font color="black">-Dversion=1.0.0</font></p>
+
+<p>By using this command, the plug-in will look at the artefact
+MavenRepo\homega\utils\multicast.discovery\1.0.0\multicast.discovery-1.0.0.jar
+<br clear="all"></p>
+
+<p>Then it will compute bundle description by using <span class="nobr"><a href="http://www2.osgi.org/Repository/BIndex" title="Visit page outside Confluence" rel="nofollow">bindex <sup><img class="rendericon" src="maven-obr-plugin_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span>and information from the command line (artifactId, groupId, version, and obr file (if set)).</p>
+
+<h4><a name="MavenObrPlugin-"></a><font color="black">Note:</font></h4>
+
+<p><font color="black">As said previously, the plug-in does not install
+the file in the Maven repository but target an already install
+artefact. However, it is possible to install the bundle in the
+repository and to add it in the OBR repository file in one command:</font><br>
+<font color="black">&nbsp;mvn install:install-file homega.tools:obrPlugin:install-file {color}</font><br>
+<font color="black">-Dfile=</font><font color="black"><span class="nobr"><a href="file:///c:projethomegamulticast.discovery-1.0.0.jar" title="Visit page outside Confluence" rel="nofollow">file:/c:\projet\homega\multicast.discovery-1.0.0.jar<sup><img class="rendericon" src="maven-obr-plugin_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span></font> <font color="black">{color}</font><br>
+<font color="black">-Drepository-path=</font><font color="black"><span class="nobr"><a href="file:///c:repository.xml" title="Visit page outside Confluence" rel="nofollow">file:/c:\repository.xml<sup><img class="rendericon" src="maven-obr-plugin_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span></font> <font color="black">{color}</font><br>
+<font color="black">-Dobr-file=</font><font color="black"><span class="nobr"><a href="file:///c:projecthomegaobr.xml" title="Visit page outside Confluence" rel="nofollow">file:/c:\project\homega\obr.xml<sup><img class="rendericon" src="maven-obr-plugin_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span></font> <font color="black">{color}</font><br>
+<font color="black">-DartifactId=multicast.discovery {color}</font><br>
+<font color="black">-DgroupId=</font><font color="black">homega.utils</font> <font color="black">{color}</font><br>
+<font color="black">-Dversion=1.0.0 {color}</font><br>
+<font color="black">-Dpackaging=jar</font></p>
+
+<h3><a name="MavenObrPlugin-"></a><font color="black">C: Deploying a bundle on a remote OBR</font></h3>
+
+<p><font color="black">To use the deploy goal, you must change your pom.xml:</font></p>
+<ul>
+	<li><font color="black">Add the "</font><font color="black">deployment"</font> <font color="black">goal</font></li>
+</ul>
+
+
+<ul>
+	<li>
+	<ul>
+		<li><font color="black">Indicate the repository-name
+property. This is the name of the repository descriptor file (this
+property is optional; default value is "repository.xml"). This file is
+located on url provided by user.</font><br>
+<font color="teal">&lt;</font><font color="#3f7f7f">plugin</font><font color="teal">&gt;</font><br>
+<font color="teal">&nbsp;&nbsp;&nbsp; &lt;</font><font color="#3f7f7f">groupId</font><font color="teal">&gt;</font><font color="black">org.apache.felix</font><font color="teal">&lt;/</font><font color="#3f7f7f">groupId</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">artifactId</font><font color="teal">&gt;</font><font color="black">maven-obr-plugin</font><font color="teal">&lt;/</font><font color="#3f7f7f">artifactId</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">configuration</font><font color="teal">&gt;</font><br>
+<font color="black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;</font> <font color="teal">&lt;</font><font color="#3f7f7f">repository-name</font><font color="teal">&gt;</font><font color="black">repository.xml</font><font color="teal">&lt;/</font><font color="#3f7f7f">repository-name</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;/</font><font color="#3f7f7f">configuration</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">executions</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">execution</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">goals</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">goal</font><font color="teal">&gt;</font><font color="black">deployment</font><font color="teal">&lt;/</font><font color="#3f7f7f">goal</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;/</font><font color="#3f7f7f">goals</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;/</font><font color="#3f7f7f">execution</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;/</font><font color="#3f7f7f">executions</font><font color="teal">&gt;</font><br>
+<font color="teal">&lt;/</font><font color="#3f7f7f">plugin</font><font color="teal">&gt;</font></li>
+		<li>You must also configure where the plugin will upload bundles and repository descriptor file. You could do it in maven as this:<br>
+&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">distributionManagement</font><font color="teal">&gt;</font><br>
+<font color="teal">&nbsp;&nbsp;&nbsp; &lt;</font><font color="#3f7f7f">repository</font><font color="teal">&gt;</font><br>
+<font color="teal">&nbsp;&nbsp;&nbsp;&nbsp; &lt;</font><font color="#3f7f7f">id</font><font color="teal">&gt;</font><font color="black">ftp-repository</font><font color="teal">&lt;/</font><font color="#3f7f7f">id</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">name</font><font color="teal">&gt;</font><font color="black">RepoName</font><font color="teal">&lt;/</font><font color="#3f7f7f">name</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">url</font><font color="teal">&gt;</font><font color="black"><span class="nobr"><a href="ftp://ftp.youraddress.com/obr" title="Visit page outside Confluence" rel="nofollow">ftp://ftp.youraddress.com/obr<sup><img class="rendericon" src="maven-obr-plugin_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span></font><font color="teal">&lt;/</font><font color="#3f7f7f">url</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp; <font color="teal">&lt;/</font><font color="#3f7f7f">repository</font><font color="teal">&gt;</font><br>
+&nbsp; <font color="teal">&lt;/</font><font color="#3f7f7f">distributionManagement</font><font color="teal">&gt;</font></li>
+		<li>Now maven will upload your bundle on this ftp site.</li>
+	</ul>
+	</li>
+	<li>Launch the 'mvn deploy' command</li>
+</ul>
+
+
+<p>In fact, all protocols are not supported by maven. For example ftp
+protocol as describe above require wagon plugin to run correctly. So
+you could add this part in your pom.xml to use wagon in ftp protocol:</p>
+
+<p><font color="teal">&lt;</font><font color="#3f7f7f">build</font><font color="teal">&gt;</font><br>
+<font color="teal">&nbsp;&nbsp;&nbsp;&nbsp; &lt;</font><font color="#3f7f7f">extensions</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">extension</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">groupId</font><font color="teal">&gt;</font><font color="black">org.apache.maven.wagon</font><font color="teal">&lt;/</font><font color="#3f7f7f">groupId</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">artifactId</font><font color="teal">&gt;</font><font color="black">wagon-ftp</font><font color="teal">&lt;/</font><font color="#3f7f7f">artifactId</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">version</font><font color="teal">&gt;</font><font color="black">1.0-alpha-6</font><font color="teal">&lt;/</font><font color="#3f7f7f">version</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;/</font><font color="#3f7f7f">extension</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp; <font color="teal">&lt;/</font><font color="#3f7f7f">extensions</font><font color="teal">&gt;</font></p>
+
+<p>By this way, the deploy goal supports all protocols supported by wagon.</p>
+
+<h3><a name="MavenObrPlugin-D:DeploynonmavenbundleonaremoteOBRrepository"></a>D: Deploy non maven bundle on a remote OBR repository</h3>
+
+<p>This goal is useful if you want add a non-maven project on your
+remote repository, for example a legacy bundles.The command line is
+compozed by :</p>
+<table class="confluenceTable"><tbody>
+<tr>
+<td class="confluenceTd"> Variable name (preceded by --D) </td>
+<td class="confluenceTd"> status </td>
+<td class="confluenceTd"> description </td>
+</tr>
+<tr>
+<td class="confluenceTd"> file </td>
+<td class="confluenceTd"> require </td>
+<td class="confluenceTd"> Path to the jar file </td>
+</tr>
+<tr>
+<td class="confluenceTd"> artefactId </td>
+<td class="confluenceTd"> require </td>
+<td class="confluenceTd"> artefactId of the bundle Use to determine
+path to the jar file in local maven Repository use as symbolic name if
+it isn't define in manifest </td>
+</tr>
+<tr>
+<td class="confluenceTd"> groupId </td>
+<td class="confluenceTd"> require </td>
+<td class="confluenceTd"> groupId of the bundle Use to determine path to the jar file on local maven repository </td>
+</tr>
+<tr>
+<td class="confluenceTd"> version </td>
+<td class="confluenceTd"> require </td>
+<td class="confluenceTd"> Version of the bundle Use to determine path to the jar file on local maven repository </td>
+</tr>
+<tr>
+<td class="confluenceTd"> packaging </td>
+<td class="confluenceTd"> require </td>
+<td class="confluenceTd"> File type Use by maven to install the file (used to install bundle only) </td>
+</tr>
+<tr>
+<td class="confluenceTd"> url </td>
+<td class="confluenceTd"> require </td>
+<td class="confluenceTd"> url to the remote server </td>
+</tr>
+<tr>
+<td class="confluenceTd"> uniqueVersion </td>
+<td class="confluenceTd"> optional </td>
+<td class="confluenceTd"> Set it to false to avoid unique filename when you upload </td>
+</tr>
+<tr>
+<td class="confluenceTd"> repositoryId </td>
+<td class="confluenceTd"> optional </td>
+<td class="confluenceTd"> Name of the repository use to upload file </td>
+</tr>
+<tr>
+<td class="confluenceTd"> obr-file </td>
+<td class="confluenceTd"> optional </td>
+<td class="confluenceTd"> Path to the obr.xml, file which describe
+capabilities requirement and category given manually by user. (if not
+define: nothing is added to the resource description). </td>
+</tr>
+</tbody></table>
+
+<h4><a name="MavenObrPlugin-Exampleofcompletecommandline:"></a>Example of complete command line:</h4>
+
+<p>mvn deploy:deploy-file homega.tools:obrPlugin:deploy-file \<br>
+-DartifactId=echo2<br>
+-DgroupId=tools<br>
+-Dversion=2.0.0<br>
+-Dpackaging=jar<br>
+-DrepositoryId=ftp-repository<br>
+-DuniqueVersion=false<br>
+-Durl=<span class="nobr"><a href="ftp://ftp.plop-plop.net/obr" title="Visit page outside Confluence" rel="nofollow">ftp://ftp.plop-plop.net/obr<sup><img class="rendericon" src="maven-obr-plugin_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span><br>
+-Dobr-file=c:\obr.xml<br>
+-Dfile=echo2.jar</p>
+
+<p>To upload your file, you must create a small pom file declaring a
+repositoryManagement to indicates which remote server you use and the
+component to use for the protocol transfer. This file must contain also
+groupId, artifactId version and packaging information (in fact those
+data are redundant with the command line, so you could omit them in
+command line).<br>
+<em>Example of additional pom.xml:</em><br>
+<font color="teal">&lt;</font><font color="#3f7f7f">project</font><font color="teal">&gt;</font><br>
+&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">modelVersion</font><font color="teal">&gt;</font><font color="black">4.0.0</font><font color="teal">&lt;/</font><font color="#3f7f7f">modelVersion</font><font color="teal">&gt;</font><br>
+&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">packaging</font><font color="teal">&gt;</font><font color="black">jar</font><font color="teal">&lt;/</font><font color="#3f7f7f">packaging</font><font color="teal">&gt;</font><br>
+&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">groupId</font><font color="teal">&gt;</font><font color="black">tools</font><font color="teal">&lt;/</font><font color="#3f7f7f">groupId</font><font color="teal">&gt;</font><br>
+&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">artifactId</font><font color="teal">&gt;</font><font color="black">echo2</font><font color="teal">&lt;/</font><font color="#3f7f7f">artifactId</font><font color="teal">&gt;</font><br>
+&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">version</font><font color="teal">&gt;</font><font color="black">2.0.0</font><font color="teal">&lt;/</font><font color="#3f7f7f">version</font><font color="teal">&gt;</font><br>
+&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">distributionManagement</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">repository</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">id</font><font color="teal">&gt;</font><font color="black">ftp-repository</font><font color="teal">&lt;/</font><font color="#3f7f7f">id</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">name</font><font color="teal">&gt;</font><font color="black">RepoName</font><font color="teal">&lt;/</font><font color="#3f7f7f">name</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">url</font><font color="teal">&gt;</font><font color="black"><span class="nobr"><a href="ftp://ftp.plop-plop.net/obr" title="Visit page outside Confluence" rel="nofollow">ftp://ftp.plop-plop.net/obr<sup><img class="rendericon" src="maven-obr-plugin_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span></font><font color="teal">&lt;/</font><font color="#3f7f7f">url</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp; <font color="teal">&lt;/</font><font color="#3f7f7f">repository</font><font color="teal">&gt;</font><br>
+&nbsp; <font color="teal">&lt;/</font><font color="#3f7f7f">distributionManagement</font><font color="teal">&gt;</font><br>
+&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">build</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">extensions</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">extension</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">groupId</font><font color="teal">&gt;</font><font color="black">org.apache.maven.wagon</font><font color="teal">&lt;/</font><font color="#3f7f7f">groupId</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">artifactId</font><font color="teal">&gt;</font><font color="black">wagon-ftp</font><font color="teal">&lt;/</font><font color="#3f7f7f">artifactId</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;</font><font color="#3f7f7f">version</font><font color="teal">&gt;</font><font color="black">1.0-alpha-6</font><font color="teal">&lt;/</font><font color="#3f7f7f">version</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="teal">&lt;/</font><font color="#3f7f7f">extension</font><font color="teal">&gt;</font><br>
+&nbsp;&nbsp;&nbsp; <font color="teal">&lt;/</font><font color="#3f7f7f">extensions</font><font color="teal">&gt;</font><br>
+&nbsp; <font color="teal">&lt;/</font><font color="#3f7f7f">build</font><font color="teal">&gt;</font><br>
+<font color="teal">&lt;/</font><font color="#3f7f7f">project</font><font color="teal">&gt;</font></p>
+
+<h4><a name="MavenObrPlugin-Concurrentupdates&amp;nbsp;"></a>Concurrent updates&nbsp;</h4>
+
+<p>As the obr file is remote, several uploads can occur at the same
+time. However, the obr repository is centralized in one file, so
+concurrent modification need to be avoided. To achieve this, the
+plug-in&nbsp; implement a locking systems. At each time the plug-in try
+to modify the file, it set a lock on it. If it can't take the lock, it
+will wait and retry. After 3 tries, the upload process failed.</p>
+
+<h3><a name="MavenObrPlugin-E:Cleaningthelocalobrrepository&amp;nbsp;"></a>E: Cleaning the local obr repository&nbsp;</h3>
+
+<p>Sometimes, you would like to clean your obr repository because it
+contains no more existing bundles. This case often occurs when
+artifacts were deleted manually from the maven repository. The plug-in
+provides a simple goal to look for missing bundle and to remove them
+from the obr repository.</p>
+
+<p>To launch this feature, launch the following command from a folder
+of one of your bundle 'mvn org.apache.felix:maven-obr-plugin:clean'.</p>
+
+<h2><a name="MavenObrPlugin-Howtheplugincomputethedescriptionofthebundle"></a>How the plug-in compute the description of the bundle</h2>
+
+<p>The description of the bundle comes from three different sources:</p>
+<ul>
+	<li>Bindex : Bindex is a tool analyzing&nbsp; a bundle manifest to generate OBR description</li>
+	<li>The Pom file : by analyzing the pom file, some information are collected (symbolic name ...)</li>
+	<li>The obr.xml file : this file contains customized description of the bundle</li>
+</ul>
+
+
+<p>In order to create the bundle description, the plug-in gets
+information from bindex, the pom.xml and the obr.xml file. Information
+can be overridden:<br>
+Bindex<br>
+| (overrides)<br>
+Pom.xml<br>
+| (overrides)<br>
+Obr.xml</p>
+
+<p>A warning message is displayed each time already existing
+information is overridden. In case of install-file goal, the
+information given by user (i.e.: artefactId, groupId, version) is
+considered as pom.xml properties.</p>
+
+<h2><a name="MavenObrPlugin-Knownissues&amp;limitations:"></a>Known issues &amp; limitations:</h2>
+
+<p>1.&nbsp;&nbsp;&nbsp; Do not support relative paths when you specify the repository descriptor in command line use.<br>
+2.&nbsp;&nbsp;&nbsp; obr.xml (file given by the user to describe some
+properties not found by Bindex) must be correct, because the plug-in
+does not check the syntax.</p>
+    </div>
+  
+</body></html>
\ No newline at end of file

Propchange: felix/trunk/maven-obr-plugin/doc/maven-obr-plugin.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: felix/trunk/maven-obr-plugin/doc/maven-obr-plugin_files/apache.png
URL: http://svn.apache.org/viewvc/felix/trunk/maven-obr-plugin/doc/maven-obr-plugin_files/apache.png?rev=608044&view=auto
==============================================================================
Binary file - no diff available.

Propchange: felix/trunk/maven-obr-plugin/doc/maven-obr-plugin_files/apache.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: felix/trunk/maven-obr-plugin/doc/maven-obr-plugin_files/linkext7.gif
URL: http://svn.apache.org/viewvc/felix/trunk/maven-obr-plugin/doc/maven-obr-plugin_files/linkext7.gif?rev=608044&view=auto
==============================================================================
Binary file - no diff available.

Propchange: felix/trunk/maven-obr-plugin/doc/maven-obr-plugin_files/linkext7.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: felix/trunk/maven-obr-plugin/doc/maven-obr-plugin_files/logo.png
URL: http://svn.apache.org/viewvc/felix/trunk/maven-obr-plugin/doc/maven-obr-plugin_files/logo.png?rev=608044&view=auto
==============================================================================
Binary file - no diff available.

Propchange: felix/trunk/maven-obr-plugin/doc/maven-obr-plugin_files/logo.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: felix/trunk/maven-obr-plugin/doc/maven-obr-plugin_files/site.css
URL: http://svn.apache.org/viewvc/felix/trunk/maven-obr-plugin/doc/maven-obr-plugin_files/site.css?rev=608044&view=auto
==============================================================================
--- felix/trunk/maven-obr-plugin/doc/maven-obr-plugin_files/site.css (added)
+++ felix/trunk/maven-obr-plugin/doc/maven-obr-plugin_files/site.css Wed Jan  2 00:56:07 2008
@@ -0,0 +1,25 @@
+/* @override http://felix.apache.org/site/media.data/site.css */
+
+body { background-color: #ffffff; color: #3b3b3b; font-family: Tahoma, Arial, sans-serif; font-size: 10pt; line-height: 140% }
+h1, h2, h3, h4, h5, h6 { font-weight: normal; color: #000000; line-height: 100%; margin-top: 0px}
+h1 { font-size: 200% }
+h2 { font-size: 175% }
+h3 { font-size: 150% }
+h4 { font-size: 140% }
+h5 { font-size: 130% }
+h6 { font-size: 120% }
+a { color: #1980af }
+a:visited { color: #1980af }
+a:hover { color: #1faae9 }
+.title { position: absolute; left: 1px; right: 1px; top:25px; height: 81px; background: url(http://felix.apache.org/site/media.data/gradient.png) repeat-x; background-position: bottom; }
+.logo { position: absolute; width: 15em; height: 81px; text-align: center; }
+.header { text-align: right; margin-right: 20pt; margin-top: 30pt;}
+.menu { border-top: 10px solid #f9bb00; position: absolute; top: 107px; left: 1px; width: 15em; bottom: 0px; padding: 0px; background-color: #fcfcfc }
+.menu ul { background-color: #fdf5d9; list-style: none; padding-left: 4em; margin-top: 0px; padding-top: 2em; padding-bottom: 2em; margin-left: 0px; color: #4a4a43}
+.menu a { text-decoration: none; color: #4a4a43 }
+.main { position: absolute; border-top: 10px solid #cde0ea; top: 107px; left: 15em; right: 1px; margin-left: 2px; padding-right: 4em; padding-left: 1em; padding-top: 1em;}
+.code { background-color: #eeeeee; border: solid 1px black; padding: 0.5em }
+.code-keyword { color: #880000 }
+.code-quote { color: #008800 }
+.code-object { color: #0000dd }
+.code-java { margin: 0em }
\ No newline at end of file

Propchange: felix/trunk/maven-obr-plugin/doc/maven-obr-plugin_files/site.css
------------------------------------------------------------------------------
    svn:eol-style = native