diff --git a/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr.html b/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr.html
new file mode 100644
index 0000000..fde8718
--- /dev/null
+++ b/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr.html
@@ -0,0 +1,483 @@
+<!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</title>
+
+
+  
+    
+    <link rel="stylesheet" href="apache-felix-osgi-bundle-repository-obr_files/site.css" type="text/css" media="all">
+    <link rel="stylesheet" href="apache-felix-osgi-bundle-repository-obr_files/print.css" type="text/css" media="print">
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"></head><body linkifytime="102" linkified="0" linkifying="false">
+    <div class="title">
+      <img alt="Logo" src="apache-felix-osgi-bundle-repository-obr_files/apache-felix-small.png" align="right">
+    </div>
+    <div class="menu">
+      <ul>
+        <li><a href="http://cwiki.apache.org/FELIX/index.html">home</a></li>
+        <li><a href="http://cwiki.apache.org/FELIX/news.html">news</a></li>
+        <li><a href="http://cwiki.apache.org/FELIX/status.html">status</a></li>
+        <li><a href="http://cwiki.apache.org/FELIX/license.html">license</a></li>
+        <li><a href="http://cwiki.apache.org/FELIX/downloads.html">downloads</a></li>
+        <li><a href="http://cwiki.apache.org/FELIX/documentation.html">documentation</a></li>
+        <li><a href="http://cwiki.apache.org/FELIX/committers.html">committers</a></li>
+        <li><a href="http://cwiki.apache.org/FELIX/mailinglists.html">mailing lists</a></li>
+        <li><a href="http://cwiki.apache.org/FELIX/faq.html">faq</a></li>
+        <li><a href="http://cwiki.apache.org/FELIX/roadmap.html">roadmap</a></li>
+        <li><a href="http://cwiki.apache.org/FELIX/sourcecode.html">source code</a></li>
+        <li><a href="http://cwiki.apache.org/FELIX/codingstandards.html">coding standards</a></li>
+        <li><a href="http://cwiki.apache.org/FELIX/issuetracking.html">issue tracking</a></li>
+        <li><a href="http://cwiki.apache.org/FELIX/dependencies.html">dependencies</a></li>
+      </ul>
+    </div>
+    <div class="main">
+<h1><a name="ApacheFelixOSGiBundleRepository(OBR)-ApacheFelixOSGiBundleRepository(OBR)"></a>Apache Felix OSGi Bundle Repository (OBR)</h1>
+
+<ul>
+	<li><a href="#ApacheFelixOSGiBundleRepository%2528OBR%2529-motivation" title="motivation on Apache Felix OSGi Bundle Repository (OBR)">Motivation</a></li>
+	<li><a href="#ApacheFelixOSGiBundleRepository%2528OBR%2529-overview" title="overview on Apache Felix OSGi Bundle Repository (OBR)">Overview</a></li>
+	<li><a href="#ApacheFelixOSGiBundleRepository%2528OBR%2529-repositoryfile" title="repository-file on Apache Felix OSGi Bundle Repository (OBR)">OBR Repository File</a></li>
+	<li><a href="#ApacheFelixOSGiBundleRepository%2528OBR%2529-serviceapi" title="service-api on Apache Felix OSGi Bundle Repository (OBR)">OBR Service API</a></li>
+	<li><a href="#ApacheFelixOSGiBundleRepository%2528OBR%2529-shellcommand" title="shell-command on Apache Felix OSGi Bundle Repository (OBR)">OBR Shell Command</a>
+	<ul>
+		<li><a href="#ApacheFelixOSGiBundleRepository%2528OBR%2529-obrhelp" title="obr-help on Apache Felix OSGi Bundle Repository (OBR)"><tt>obr help</tt></a></li>
+		<li><a href="#ApacheFelixOSGiBundleRepository%2528OBR%2529-obrlisturl" title="obr-list-url on Apache Felix OSGi Bundle Repository (OBR)"><tt>obr list-url</tt></a></li>
+		<li><a href="#ApacheFelixOSGiBundleRepository%2528OBR%2529-obraddurl" title="obr-add-url on Apache Felix OSGi Bundle Repository (OBR)"><tt>obr add-url</tt></a></li>
+		<li><a href="#ApacheFelixOSGiBundleRepository%2528OBR%2529-obrremoveurl" title="obr-remove-url on Apache Felix OSGi Bundle Repository (OBR)"><tt>obr remove-url</tt></a></li>
+		<li><a href="#ApacheFelixOSGiBundleRepository%2528OBR%2529-obrlist" title="obr-list on Apache Felix OSGi Bundle Repository (OBR)"><tt>obr list</tt></a></li>
+		<li><a href="#ApacheFelixOSGiBundleRepository%2528OBR%2529-obrinfo" title="obr-info on Apache Felix OSGi Bundle Repository (OBR)"><tt>obr info</tt></a></li>
+		<li><a href="#ApacheFelixOSGiBundleRepository%2528OBR%2529-obrdeploy" title="obr-deploy on Apache Felix OSGi Bundle Repository (OBR)"><tt>obr deploy</tt></a></li>
+		<li><a href="#ApacheFelixOSGiBundleRepository%2528OBR%2529-obrstart" title="obr-start on Apache Felix OSGi Bundle Repository (OBR)"><tt>obr start</tt></a></li>
+		<li><a href="#ApacheFelixOSGiBundleRepository%2528OBR%2529-obrsource" title="obr-source on Apache Felix OSGi Bundle Repository (OBR)"><tt>obr source</tt></a></li>
+	</ul>
+	</li>
+	<li><a href="#ApacheFelixOSGiBundleRepository%2528OBR%2529-proxy" title="proxy on Apache Felix OSGi Bundle Repository (OBR)">Using OBR with a Proxy</a></li>
+	<li><a href="#ApacheFelixOSGiBundleRepository%2528OBR%2529-sourcepackaging" title="source-packaging on Apache Felix OSGi Bundle Repository (OBR)">Bundle Source Packaging</a></li>
+	<li><a href="#ApacheFelixOSGiBundleRepository%2528OBR%2529-feedback" title="feedback on Apache Felix OSGi Bundle Repository (OBR)">Feedback</a></li>
+</ul>
+
+
+<p><a name="ApacheFelixOSGiBundleRepository(OBR)-motivation"></a></p>
+
+<h2><a name="ApacheFelixOSGiBundleRepository(OBR)-Motivation"></a>Motivation</h2>
+
+<p>The goal of the Apache Felix OSGi Bundle Repository (OBR) is two-fold:</p>
+
+<ol>
+	<li>To simplify deploying and using available bundles with Felix.</li>
+	<li>To encourage independent bundle development so that communities of interest can grow.</li>
+</ol>
+
+
+<p>OBR achieves the first goal by providing a service that can
+automatically install a bundle, with its deployment dependencies, from
+a bundle repository. This makes it easier for people to experiment with
+existing bundles. The second goal is achieved by raising the visibility
+of the available bundles and providing access to both the executable
+bundle and its source code. Hopefully, by making OBR and the bundles
+themselves more visible, community members will be encouraged to
+provide or improve service implementations.</p>
+
+<p>Note: OBR provides access to the Felix' default bundle repository,
+but you can also use it to deploy your own bundles by creating a bundle
+repository meta-data file for your local bundles; see the <tt>obr list-url</tt>, <tt>obr add-url</tt>, and <tt>obr remove-url</tt> commands for more details.</p>
+
+<p><a name="ApacheFelixOSGiBundleRepository(OBR)-overview"></a></p>
+
+<h2><a name="ApacheFelixOSGiBundleRepository(OBR)-Overview"></a>Overview</h2>
+
+<p>For the most part, OBR is quite simple. An OBR "repository server"
+is not necessary, since all functionality may reside on the client
+side. OBR is able to provide its functionality by reading an XML-based
+meta-data file that describes the bundles available to it. The
+meta-data file essentially contains an XML encoding of the bundles'
+manifest information. From the meta-data, OBR is able to construct
+dependency information for deploying (i.e., installing and updating)
+bundles.</p>
+
+<p>OBR defines the following entities:</p>
+
+<ul>
+	<li><em><b>Repository Admin</b></em> - a service to access a federation of repositories.</li>
+	<li><em><b>Repository</b></em> - provides access to a set of resources.</li>
+	<li><em><b>Resource</b></em> - a description of an artifact to be installed on a device.</li>
+	<li><em><b>Capability</b></em> - a named set of properties.</li>
+	<li><em><b>Requirement</b></em> - an assertion on a capability.</li>
+	<li><em><b>Resolver</b></em> - an object to resolve resource dependencies and to deploy them.</li>
+	<li><em><b>Repository file</b></em> - XML file containing resource meta-data.</li>
+</ul>
+
+
+<p>The following diagram illustrates the relationships among these entities:</p>
+
+<p><img src="apache-felix-osgi-bundle-repository-obr_files/obr-entities.png" align="absmiddle" border="0"></p>
+
+<p>The client has access to a federated set of repositories via the Repository Admin service; such as depicted in this view:</p>
+
+<p><img src="apache-felix-osgi-bundle-repository-obr_files/obr-high-level.png" align="absmiddle" border="0"></p>
+
+<p><a name="ApacheFelixOSGiBundleRepository(OBR)-repositoryfile"></a></p>
+
+<h2><a name="ApacheFelixOSGiBundleRepository(OBR)-OBRRepositoryFile"></a>OBR Repository File</h2>
+
+<p>The OBR repository file is an XML-based representation of bundle
+meta-data. The goal is provide a generic model for describing
+dependencies among resources; as such, the term <em><b>resource</b></em> is used instead of <em><b>bundle</b></em> in the OBR repository syntax; a detailed description of the OBR meta-data format is available in the <span class="nobr"><a href="http://www2.osgi.org/download/rfc-0112_BundleRepository.pdf" title="Visit page outside Confluence" rel="nofollow">OSGi RFC 112<sup><img class="rendericon" src="apache-felix-osgi-bundle-repository-obr_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span>
+document; this document is not completely in sync with the
+implementation, but the concepts are still correct. The following XML
+snippet depicts the overall structure of a repository file:</p>
+
+<div class="preformatted"><div class="preformattedContent">
+<pre>&lt;repository presentationname="..." symbolicname="..." ... &gt;
+    &lt;resource&gt;
+        &lt;description&gt;...&lt;/description&gt;
+        &lt;size&gt;...&lt;/size&gt;
+        &lt;documentation&gt;...&lt;/documentation&gt;
+        &lt;source&gt;...&lt;/source&gt;
+        &lt;category id="..."/&gt;
+        &lt;capability&gt;...&lt;/capability&gt;
+        ...
+        &lt;requirement&gt;...&lt;/requirement&gt;
+        ...
+    &lt;/resource&gt;
+    ...
+&lt;/repository&gt;
+</pre>
+</div></div>
+
+<p>The above repository defines a set of available resources, each
+described by a set of meta-data. Some resource meta-data is purely
+intended for human consumption; the most important aspects relate to
+the generic capability/requirement model.</p>
+
+<p>A resource can provide any number of capabilities. A capability is a
+typed set of properties. For example, the following is an exported
+package capability:</p>
+
+<div class="preformatted"><div class="preformattedContent">
+<pre>&lt;capability name='package'&gt;
+    &lt;p n='package' v='org.foo.bar'/&gt;
+    &lt;p n='version' t='version' v='1.0.0'/&gt;
+&lt;/capability&gt;
+</pre>
+</div></div>
+
+<p>This capability is of type 'package' and exports 'org.foo.bar' at
+version '1.0.0'. Conversely, a requirement is a typed LDAP query over a
+set of capability properties. For example, the following is an imported
+package requirement:</p>
+
+<div class="preformatted"><div class="preformattedContent">
+<pre>&lt;require name='package' extend='false'
+    multiple='false' optional='false'
+    filter='(&amp;amp;(package=org.foo.bar)(version&amp;gt;=1.0.0))'&gt;
+    Import package org.foo.bar
+&lt;/require&gt;
+</pre>
+</div></div>
+
+<p>This requirement is of type 'package' and imports 'org.foo.bar' at
+versions greater than '1.0.0'. Although this syntax looks rather
+complicated with the '\&amp;' and '\&gt;=' syntax, it is simply the
+standard OSGi LDAP query syntax in XML form (additionally, Peter Kriens
+has created a tool called <tt>bindex</tt> to generate this meta-data from a bundle's manifest).</p>
+
+<p>With this generic dependency model, OBR is able to provide mappings
+for the various OSGi bundle dependencies; e.g., import/export package,
+provide/require bundle, host/fragment, import/export service, execution
+environment, and native code. In addition, it is possible for bundles
+to introduce arbitrary dependencies for custom purposes.</p>
+
+<p>Two other important pieces of meta-data are <tt>Bundle-SymbolicName</tt> and <tt>Bundle-Version</tt>;
+these are standard OSGi bundle manifest attributes that OBR uses to
+uniquely identify a bundle. For example, if you want to use OBR to
+update a locally installed bundle, OBR gets its symbolic name and
+version and searches the repository metadata for a matching symbolic
+name. If the matching symbolic name is found, then OBR checks if there
+is a newer version than the local copy using the bundle version number.
+Thus, the symbolic name plus bundle version forms a unique key to match
+locally installed bundles to remotely available bundles.</p>
+
+<p><a name="ApacheFelixOSGiBundleRepository(OBR)-serviceapi"></a></p>
+
+<h2><a name="ApacheFelixOSGiBundleRepository(OBR)-OBRServiceAPI"></a>OBR Service API</h2>
+
+<p>Typically, OBR service clients only need to interact with the
+Repository Admin service, which provides the mechanisms necessary to
+discover available resources. The Repository Admin interface is defined
+as follows:</p>
+
+<div class="code"><div class="codeContent">
+<pre class="code-java"><span class="code-keyword">public</span> <span class="code-keyword">interface</span> RepositoryAdmin
+{
+    <span class="code-keyword">public</span> Resource[] discoverResources(<span class="code-object">String</span> filterExpr);
+    <span class="code-keyword">public</span> Resolver resolver();
+    <span class="code-keyword">public</span> Repository addRepository(URL repository)&#8207;
+        <span class="code-keyword">throws</span> Exception;
+    <span class="code-keyword">public</span> <span class="code-object">boolean</span> removeRepository(URL repository);
+    <span class="code-keyword">public</span> Repository[] listRepositories();
+    <span class="code-keyword">public</span> Resource getResource(<span class="code-object">String</span> respositoryId);
+}</pre>
+</div></div>
+
+<p>In order to resolve and deploy available resources, the Repository
+Admin provides Resolver instances, which are defined as follows:</p>
+
+<div class="code"><div class="codeContent">
+<pre class="code-java"><span class="code-keyword">public</span> <span class="code-keyword">interface</span> Resolver
+{
+    <span class="code-keyword">public</span> void add(Resource resource);
+    <span class="code-keyword">public</span> Requirement[] getUnsatisfiedRequirements();
+    <span class="code-keyword">public</span> Resource[] getOptionalResources();
+    <span class="code-keyword">public</span> Requirement[] getReason(Resource resource);
+    <span class="code-keyword">public</span> Resource[] getResources(Requirement requirement);
+    <span class="code-keyword">public</span> Resource[] getRequiredResources();
+    <span class="code-keyword">public</span> Resource[] getAddedResources();
+    <span class="code-keyword">public</span> <span class="code-object">boolean</span> resolve();
+    <span class="code-keyword">public</span> void deploy(<span class="code-object">boolean</span> start);
+}</pre>
+</div></div>
+
+<p>When desired resources are discovered via the query mechanisms of
+the Repository Admin, they are added to a Resolver instance which will
+can be used to resolve all transitive dependencies and to reflect on
+any resolution result. The following code snippet depicts a typical
+usage scenario:</p>
+
+<div class="code"><div class="codeContent">
+<pre class="code-java">RepositoryAdmin repoAdmin = ... <span class="code-comment">// Get repo admin service
+</span>Resolver resolver = repoAdmin.resolver();
+Resource resource = repoAdmin.discoverResources(filterStr);
+resolver.add(resource);
+<span class="code-keyword">if</span> (resolver.resolve())
+{
+    resolver.deploy();
+}
+<span class="code-keyword">else</span>
+{
+    Requirement[] reqs = resolver.getUnsatisfiedRequirements();
+    <span class="code-keyword">for</span> (<span class="code-object">int</span> i = 0; i &lt; reqs.length; i++)
+    {
+        <span class="code-object">System</span>.out.println(<span class="code-quote">"Unable to resolve: "</span> + reqs[i]);
+    }
+}</pre>
+</div></div>
+
+<p>This code gets the Repository Admin service and then gets a Resolver
+instance from it. It then discovers an available resource and adds it
+to the resolver. Then it tries to resolve the resources dependencies.
+If successful it deploys the resource to the local framework instance;
+if not successful it prints the unsatisfied requirements.</p>
+
+<p>OBR's deployment algorithm appears simple at first glance, but it is
+actually somewhat complex due to the nature of deploying independently
+developed bundles. For example, in an ideal world, if an update for a
+bundle is made available, then updates for all of the bundles
+satisfying its dependencies are also made available. Unfortunately,
+this may not be the case, thus the deployment algorithm might have to
+install new bundles during an update to satisfy either new dependencies
+or updated dependencies that can no longer be satisfied by existing
+local bundles. In response to this type of scenario, the OBR deployment
+algorithm tries to favor updating existing bundles, if possible, as
+opposed to installing new bundles to satisfy dependencies.</p>
+
+<p>In the general case, OBR user's will not use the OBR API directly,
+but will use its functionality indirectly from another tool or user
+interface. For example, interactive access to OBR is available via a
+command for Felix' <a href="http://cwiki.apache.org/FELIX/apache-felix-shell-service.html" title="Apache Felix Shell Service">shell service</a>. The OBR shell command is discussed in the next section.</p>
+
+<p><a name="ApacheFelixOSGiBundleRepository(OBR)-shellcommand"></a></p>
+
+<h2><a name="ApacheFelixOSGiBundleRepository(OBR)-OBRShellCommand"></a>OBR Shell Command</h2>
+
+<p>Besides providing a service API, OBR implements a Felix shell
+command for accessing its functionality. For the end user, the OBR
+shell command is accessed using the text-based or GUI-based user
+interfaces for Felix' shell service. This section describes the syntax
+for the OBR shell command.</p>
+
+<p><a name="ApacheFelixOSGiBundleRepository(OBR)-obrhelp"></a></p>
+
+<h3><a name="ApacheFelixOSGiBundleRepository(OBR)-{{obrhelp}}"></a><tt>obr help</tt></h3>
+
+<p>Syntax:</p>
+<div class="preformatted"><div class="preformattedContent">
+<pre>obr help [urls | list | info | install | deploy | start | update | source]
+</pre>
+</div></div>
+<p>This command is used to display additional information about the other OBR commands.</p>
+
+<p><a name="ApacheFelixOSGiBundleRepository(OBR)-obrlisturl"></a></p>
+
+<h3><a name="ApacheFelixOSGiBundleRepository(OBR)-{{obrlisturl}}"></a><tt>obr list-url</tt></h3>
+
+<p>Syntax:</p>
+<div class="preformatted"><div class="preformattedContent">
+<pre>obr list-url
+</pre>
+</div></div>
+<p>This command gets the URLs to the repository files used by the Repository Admin.</p>
+
+<p><a name="ApacheFelixOSGiBundleRepository(OBR)-obraddurl"></a></p>
+
+<h3><a name="ApacheFelixOSGiBundleRepository(OBR)-{{obraddurl}}"></a><tt>obr add-url</tt></h3>
+
+<p>Syntax:</p>
+<div class="preformatted"><div class="preformattedContent">
+<pre>obr add-url [&lt;repository-file-url&gt; ...]
+</pre>
+</div></div>
+<p>This command adds a repository file to the set of repository files
+for which the Repository Admin service provides access. The repository
+file is represented as a URL. If the repository file URL is already in
+the Repository Admin's set of repository files, the request is treated
+like a reload operation.</p>
+
+<p><a name="ApacheFelixOSGiBundleRepository(OBR)-obrremoveurl"></a></p>
+
+<h3><a name="ApacheFelixOSGiBundleRepository(OBR)-{{obrremoveurl}}"></a><tt>obr remove-url</tt></h3>
+
+<p>Syntax:</p>
+<div class="preformatted"><div class="preformattedContent">
+<pre>obr remove-url [&lt;repository-file-url&gt; ...]
+</pre>
+</div></div>
+<p>This command removes a repository file to the set of repository
+files for which the Repository Admin service provides access. The
+repository file is represented as a URL.</p>
+
+<p><a name="ApacheFelixOSGiBundleRepository(OBR)-obrlist"></a></p>
+
+<h3><a name="ApacheFelixOSGiBundleRepository(OBR)-{{obrlist}}"></a><tt>obr list</tt></h3>
+
+<p>Syntax:</p>
+<div class="preformatted"><div class="preformattedContent">
+<pre>obr list [&lt;string&gt; ...]
+</pre>
+</div></div>
+<p>This command lists bundles available in the bundle repository. If no
+arguments are specified, then all available bundles are listed,
+otherwise any arguments are concatenated with spaces and used as a
+substring filter on the bundle names.</p>
+
+<p><a name="ApacheFelixOSGiBundleRepository(OBR)-obrinfo"></a></p>
+
+<h3><a name="ApacheFelixOSGiBundleRepository(OBR)-{{obrinfo}}"></a><tt>obr info</tt></h3>
+
+<p>Syntax:</p>
+<div class="preformatted"><div class="preformattedContent">
+<pre>obr info &lt;bundle-name&gt;[;&lt;version&gt;] ...
+</pre>
+</div></div>
+<p>This command displays the meta-data for the specified bundles. If a
+bundle's name contains spaces, then it must be surrounded by quotes. It
+is also possible to specify a precise version if more than one version
+exists, such as:</p>
+<div class="preformatted"><div class="preformattedContent">
+<pre>obr info "Bundle Repository";1.0.0
+</pre>
+</div></div>
+<p>The above example retrieves the meta-data for version "1.0.0" of the bundle named "Bundle Repository".</p>
+
+<p><a name="ApacheFelixOSGiBundleRepository(OBR)-obrdeploy"></a></p>
+
+<h3><a name="ApacheFelixOSGiBundleRepository(OBR)-{{obrdeploy}}"></a><tt>obr deploy</tt></h3>
+
+<p>Syntax:</p>
+<div class="preformatted"><div class="preformattedContent">
+<pre>obr deploy [-nodeps] &lt;bundle-name&gt;[;&lt;version&gt;] ... | &lt;bundle-id&gt; ...
+</pre>
+</div></div>
+<p>This command tries to install or update the specified bundles and
+all of their dependencies by default; use the "-nodeps" switch to
+ignore dependencies. You can specify either the bundle name or the
+bundle identifier. If a bundle's name contains spaces, then it must be
+surrounded by quotes. It is also possible to specify a precise version
+if more than one version exists, such as:</p>
+<div class="preformatted"><div class="preformattedContent">
+<pre>obr deploy "Bundle Repository";1.0.0
+</pre>
+</div></div>
+<p>For the above example, if version "1.0.0" of "Bundle Repository" is
+already installed locally, then the command will attempt to update it
+and all of its dependencies; otherwise, the command will install it and
+all of its dependencies.</p>
+
+<p><a name="ApacheFelixOSGiBundleRepository(OBR)-obrstart"></a></p>
+
+<h3><a name="ApacheFelixOSGiBundleRepository(OBR)-{{obrstart}}"></a><tt>obr start</tt></h3>
+
+<p>Syntax:</p>
+<div class="preformatted"><div class="preformattedContent">
+<pre>obr start [-nodeps] &lt;bundle-name&gt;[;&lt;version&gt;] ...
+</pre>
+</div></div>
+<p>This command installs and starts the specified bundles and all of
+their dependencies by default; use the "-nodeps" switch to ignore
+dependencies. If a bundle's name contains spaces, then it must be
+surrounded by quotes. If a specified bundle is already installed, then
+this command has no effect. It is also possible to specify a precise
+version if more than one version exists, such as:</p>
+<div class="preformatted"><div class="preformattedContent">
+<pre>obr start "Bundle Repository";1.0.0
+</pre>
+</div></div>
+<p>The above example installs and starts the "1.0.0" version of the bundle named "Bundle Repository" and its dependencies.</p>
+
+<p><a name="ApacheFelixOSGiBundleRepository(OBR)-obrsource"></a></p>
+
+<h3><a name="ApacheFelixOSGiBundleRepository(OBR)-{{obrsource}}"></a><tt>obr source</tt></h3>
+
+<p>Syntax:</p>
+<div class="preformatted"><div class="preformattedContent">
+<pre>obr source [-x] &lt;local-dir&gt; &lt;bundle-name&gt;[;&lt;version&gt;] ...
+</pre>
+</div></div>
+<p>This command retrieves the source archives of the specified bundles
+and saves them to the specified local directory; use the "-x" switch to
+automatically extract the source archives. If a bundle name contains
+spaces, then it must be surrounded by quotes. It is also possible to
+specify a precise version if more than one version exists, such as:</p>
+<div class="preformatted"><div class="preformattedContent">
+<pre>obr source /home/rickhall/tmp "Bundle Repository";1.0.0
+</pre>
+</div></div>
+<p>The above example retrieves the source archive of version "1.0.0" of
+the bundle named "Bundle Repository" and saves it to the specified
+local directory.</p>
+
+<p><a name="ApacheFelixOSGiBundleRepository(OBR)-proxy"></a></p>
+
+<h2><a name="ApacheFelixOSGiBundleRepository(OBR)-UsingOBRwithaProxy"></a>Using OBR with a Proxy</h2>
+
+<p>If you use a proxy for Web access, then OBR will not work for you in
+its default configuration; certain system properties must be set to
+enable OBR to work with a proxy. These properties are:</p>
+
+<ul>
+	<li>http.proxyHost - the name of the proxy host.</li>
+	<li>http.proxyPort - the port of the proxy host.</li>
+	<li>http.proxyAuth
+- the user name and password to use when connecting to the proxy; this
+string should be the user name and password separated by a colon (e.g.,
+rickhall:mypassword).</li>
+</ul>
+
+
+<p>These system properties can be set directly on the command line when
+starting the JVM using the standard "-D&lt;prop&gt;=&lt;value&gt;"
+syntax or you can put them in the lib/system.properties file of your
+Felix installation; see documentation on configuring Felix for more
+information.</p>
+
+<p><a name="ApacheFelixOSGiBundleRepository(OBR)-sourcepackaging"></a></p>
+
+<h2><a name="ApacheFelixOSGiBundleRepository(OBR)-BundleSourcePackaging"></a>Bundle Source Packaging</h2>
+
+<p>Coming soon...</p>
+
+<p><a name="ApacheFelixOSGiBundleRepository(OBR)-feedback"></a></p>
+
+<h2><a name="ApacheFelixOSGiBundleRepository(OBR)-Feedback"></a>Feedback</h2>
+
+<p>Subscribe to the Felix users mailing list by sending a message to <span class="nobr"><a href="mailto:users-subscribe@felix.apache.org" title="Send mail to users-subscribe@felix.apache.org" rel="nofollow">users-subscribe@felix.apache.org<sup><img class="rendericon" src="apache-felix-osgi-bundle-repository-obr_files/mail_small.gif" alt="" align="absmiddle" border="0" height="12" width="13"></sup></a></span>; after subscribing, email questions or feedback to <span class="nobr"><a href="mailto:users@felix.apache.org" title="Send mail to users@felix.apache.org" rel="nofollow">users@felix.apache.org<sup><img class="rendericon" src="apache-felix-osgi-bundle-repository-obr_files/mail_small.gif" alt="" align="absmiddle" border="0" height="12" width="13"></sup></a></span>.</p>
+    </div>
+  </body></html>
\ No newline at end of file
diff --git a/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/apache-felix-small.png b/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/apache-felix-small.png
new file mode 100644
index 0000000..95bfa5e
--- /dev/null
+++ b/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/apache-felix-small.png
Binary files differ
diff --git a/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/linkext7.gif b/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/linkext7.gif
new file mode 100644
index 0000000..f2dd2dc
--- /dev/null
+++ b/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/linkext7.gif
Binary files differ
diff --git a/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/mail_small.gif b/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/mail_small.gif
new file mode 100644
index 0000000..a3b7d9f
--- /dev/null
+++ b/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/mail_small.gif
Binary files differ
diff --git a/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/obr-entities.png b/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/obr-entities.png
new file mode 100644
index 0000000..81d3760
--- /dev/null
+++ b/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/obr-entities.png
Binary files differ
diff --git a/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/obr-high-level.png b/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/obr-high-level.png
new file mode 100644
index 0000000..566f171
--- /dev/null
+++ b/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/obr-high-level.png
Binary files differ
diff --git a/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/print.css b/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/print.css
new file mode 100644
index 0000000..32c3b5f
--- /dev/null
+++ b/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/print.css
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<html><head>
+<title>404 Not Found</title>
+</head><body>
+<h1>Not Found</h1>
+<p>The requested URL /FELIX/media.data/print.css was not found on this server.</p>
+<hr>
+<address>Apache/2.2.3 (Unix) mod_ssl/2.2.3 OpenSSL/0.9.7g Server at cwiki.apache.org Port 80</address>
+</body></html>
diff --git a/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/site.css b/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/site.css
new file mode 100644
index 0000000..66b6a1b
--- /dev/null
+++ b/bundlerepository/doc/apache-felix-osgi-bundle-repository-obr_files/site.css
@@ -0,0 +1,19 @@
+body { background-color: #ffffff; color: #000000; font-family: Arial, sans-serif; }
+h1 { font-size: 130% }
+h2 { font-size: 125% }
+h3 { font-size: 120% }
+h4 { font-size: 115% }
+h5 { font-size: 110% }
+h6 { font-size: 105% }
+a { color: #880000 }
+a:visited { color: #880000 }
+a:hover { color: #cc4444 }
+.title { position: absolute; left: 1em; right: 1em; top: 10px; height: 52px; }
+.menu { position: absolute; top: 80px; left: 0.5em; width: 8em; border: solid 1px black; padding-left: 0.5em; padding-right: 0.5em }
+.menu ul { list-style: none; padding-left: 0pt}
+.main { position: absolute; top: 65px; left: 10.5em; right: 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
