You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ace.apache.org by bu...@apache.org on 2014/11/24 23:42:14 UTC

svn commit: r930358 [5/10] - in /websites/staging/ace/trunk/content: ./ dev-doc/ docs/ docs/analysis/ docs/analysis/src/ docs/design/ docs/design/src/ docs/use-cases/ user-doc/

Added: websites/staging/ace/trunk/content/docs/design/remote-interfaces.html
==============================================================================
--- websites/staging/ace/trunk/content/docs/design/remote-interfaces.html (added)
+++ websites/staging/ace/trunk/content/docs/design/remote-interfaces.html Mon Nov 24 22:42:13 2014
@@ -0,0 +1,237 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <title>Remote Interfaces Design</title>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <meta property="og:image" content="//www.apache.org/images/asf_logo.gif" />
+    <link href="/css/bootstrap.min.css" rel="stylesheet" media="screen">
+    <link href="/css/prettify.css" rel="stylesheet" media="screen">
+    <link href="/css/code.css" rel="stylesheet" media="screen">
+    <script src="//code.jquery.com/jquery.js"></script>
+    <script src="/js/bootstrap.min.js"></script>    
+    <script src="/js/prettify.js"></script>
+    
+    
+    
+    <script>
+    $(function () { prettyPrint() })
+    $().dropdown()
+    </script>
+  </head>
+  <body style="padding-top: 50px;">
+    <div class="navbar navbar-fixed-top navbar-inverse">
+      <div class="navbar-inner">
+        <div class="container">
+          <a class="brand" href="/index.html">Apache ACE&trade;</a>
+          <ul class="nav">
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">News <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="/news.html">News</a>
+      </li>
+      <li>
+        <a href="/on-the-web.html">On the web</a>
+      </li>
+    </ul>
+  </li>
+  <li>
+    <a href="/downloads.html">Downloads</a>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Users <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="/user-doc/introduction.html">Introduction</a>
+      </li>
+      <li>
+        <a href="/user-doc/getting-started.html">Getting Started</a>
+      </li>
+      <li>
+        <a href="/user-doc/user-guide.html">User Guide</a>
+      </li>
+      <li>
+        <a href="/user-doc/features.html">Features</a>
+      </li>
+      <li>
+        <a href="/user-doc/shellapi.html">Client Shell API</a>
+      </li>
+	    <li>
+        <a href="/user-doc/restapi.html">Client REST API</a>
+      </li>
+      <li>
+        <a href="/user-doc/useradmin-ui.html">User Management Guide</a>
+      </li>
+      <li>
+        <a href="/user-doc/faq.html">FAQ</a>
+      </li>
+      <li>
+        <a href="/user-doc/support.html">Support</a>
+      </li>
+    </ul>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Developers <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="/dev-doc/getting-started.html">Getting Started</a>
+      </li>
+      <li>
+        <a href="/dev-doc/requirements/">Requirements</a>
+      </li>
+      <li>
+        <a href="/dev-doc/architecture.html">Architecture</a>
+      </li>
+      <li>
+        <a href="/dev-doc/analysis/">Analysis</a>
+      </li>
+      <li>
+        <a href="/dev-doc/design/">Design</a>
+      </li>
+      <li>
+        <a href="/dev-doc/coding-standards.html">Coding Standards</a>
+      </li>
+      <li>
+        <a href="/dev-doc/release-guide.html">Release Guide</a>
+      </li>
+      <li>
+        <a href="/dev-doc/writing-tests.html">Writing unit/integration tests</a>
+      </li>
+      <li>
+        <a href="/dev-doc/adding-custom-artifact-types.html">Adding custom artifact types</a>
+      </li>
+      <li>
+        <a href="/dev-doc/configuring-relay-servers.html">Configuring and using relay servers</a>
+      </li>
+    </ul>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Get Involved <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="/get-involved/mailing-lists.html">Mailing Lists</a>
+      </li>
+      <li>
+        <a href="/get-involved/issue-tracking.html">Issue Tracking</a>
+      </li>
+      <li>
+        <a href="/get-involved/continuous-integration.html">Continuous Integration</a>
+      </li>
+      <li>
+        <a href="/get-involved/source-code.html">Source Code</a>
+      </li>
+      <li>
+        <a href="/get-involved/project-team.html">Project Team</a>
+      </li>
+    </ul>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Wiki <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="https://cwiki.apache.org/confluence/display/ACE/Board+Reports">Board Reports <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="https://cwiki.apache.org/confluence/display/ACE/Index">Homepage <i class="icon-share-alt"></i></a>
+      </li>
+    </ul>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="http://www.apache.org/">Apache Homepage <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="http://www.apache.org/licenses/">Licenses <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="http://www.apache.org/security/">Security <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="http://www.apache.org/foundation/thanks.html">Thanks <i class="icon-share-alt"></i></a>
+      </li>
+    </ul>
+  </li>
+</ul>
+
+        </div>
+      </div>
+    </div>
+    <div class="container">
+      <p><a href="/"><i class='icon-home'></i> Home</a>&nbsp;&raquo&nbsp;<a href="/docs/">Docs</a>&nbsp;&raquo&nbsp;<a href="/docs/design/">Design</a></p>
+      <h1>Remote Interfaces Design</h1>
+      <div class="clear"></div>
+      <div id="content"><h1 id="summary">Summary</h1>
+<p>This document describes the generic design of the remote interfaces that can be used to access a system within the ACE topology. The design can be divided into three separate logical components: the connectors, the protocol adapters and session management.</p>
+<p>The connectors provide the interfaces to the system. In general, you can have more than one, for example in ACE we can define a client connector that allows us to talk to the ACE server.</p>
+<p>The protocol adapters expose interfaces through a specific protocol. A REST adapter provides access through the HTTP protocol, and specific UI adapters can be used to interact with a user using a specific web or desktop framework. In future extensions, adapters can also implement JMX management for example.</p>
+<p>Session management is responsible for managing authentication and authorization across all protocol adapters. This makes sessions a first class citizen in the design and abstracts them away from protocol specific sessions.</p>
+<h1 id="design">Design</h1>
+<p>The design is based on the 4+1 View, which means we look at the logical view, process view, use case design, implementation view and deployment view to arrive at the full design.</p>
+<h3 id="logical-view">Logical View</h3>
+<p><object data="remote-interfaces-components.svg" type="image/svg+xml" class="span12" height="344"></object></p>
+<p>The design is split into three components:</p>
+<ol>
+<li>
+<p><em>Protocol Adapters.</em> For every protocol that we support, we have to create a protocol adapter, whose responsibility it is to expose connector interfaces. Connectors are discovered by leveraging the service registry using the whiteboard pattern. The protocol adapter talks to the session manager for managing sessions and making sure certain permissions have been given to the authenticated user. If the protocol itself also supports the notion of sessions, it's the adapters responsibility to ensure that the life cycle of the protocol specific session is aligned with our own sessions.</p>
+</li>
+<li>
+<p><em>Connectors.</em> Each connector, which is implemented as a collection of one or more OSGi services, provides a specific API to talk to a system. An example is the client API. Which services make up a connector is specified in the design of a component.</p>
+</li>
+<li>
+<p><em>Session Manager</em>. Responsible for managing sessions and the authentication and authorization of actors that use them. The session manager will be invoked by protocol adapters. It leverages the OSGi User Admin service to provide users with credentials, roles and permissions. The session manager is allowed to expire sessions if it needs to, so protocol adapters should always check if a session is still open.</p>
+</li>
+</ol>
+<h3 id="process-view">Process View</h3>
+<p>Incoming calls arrive at a protocol implementation. As soon as they reach one of our adapters, the adapter should synchronously talk to the session manager, because it needs to check for the proper authentication and authorization before it can continue.</p>
+<p>A session manager is allowed to spawn a background thread for session expiration purposes, but implementations can also decide to leverage Java features such as "weak" references, or use synchronous expiration as a side effect of incoming calls.</p>
+<h3 id="use-case-design">Use Case Design</h3>
+<p>There are two major use cases that are designed explicitly here:</p>
+<ol>
+<li>UC-RI-1 Register Connector Services</li>
+<li>UC-RI-2 Invoke Operation</li>
+</ol>
+<h4 id="uc-ri-1-register-connector-services">UC-RI-1 Register Connector Services</h4>
+<h5 id="normal-flow">Normal Flow</h5>
+<ol>
+<li>A component registers a service in the OSGi service registry.</li>
+<li>The protocol adapter, listening whiteboard style, is notified and validates the service.</li>
+<li>The protocol adapter hands over the service to a protocol specific factory that creates an adapter.</li>
+<li>The protocol adapter registers the created adapter with the protocol implementation.</li>
+</ol>
+<h4 id="uc-ri-2-invoke-operation">UC-RI-2 Invoke Operation</h4>
+<h5 id="normal-flow_1">Normal Flow</h5>
+<ol>
+<li>An actor invokes an operation on a service.</li>
+<li>The invocation arrives at the protocol adapter, who looks up or creates the session with the session manager.</li>
+<li>The protocol adapter checks if the actor is authenticated and authorized to invoke this operation.</li>
+<li>The protocol adapter invokes the operation on the connector associated with this adapter.</li>
+</ol>
+<h3 id="implementation-view">Implementation View</h3>
+<p>The implementation views for the different connectors and protocol adapters can be found in the designs of these components.</p>
+<p>The implementation view for the session manager consists of:</p>
+<ul>
+<li>o.a.a.client.repository.SessionFactory - the interface for a factory that can be used to create and destroy sessions;</li>
+<li>o.a.a.client.repository.impl.Activator - the implementation of the session factory.</li>
+</ul>
+<p>Note that this current implementation is specific to the client, because for now that is the only place where we have sessions (the other connectors are essentially stateless).</p>
+<h3 id="deployment-view">Deployment View</h3>
+<p>The connectors and protocol adapters are deployed as different bundles:</p>
+<ul>
+<li>o.a.a.client.repository.api - contains the API for the client connector and session manager;</li>
+<li>o.a.a.client.repository.impl- contains the implementation for the session manager and client connector</li>
+<li>o.a.a.client.repository.* - various bundles that also contain parts of the implementation of the client connector;</li>
+<li>o.a.a.client.rest - protocol adapter for the REST client API;</li>
+<li>o.a.a.webui.vaadin - protocol adapter for the Vaadin based web UI.</li>
+</ul></div>
+      <hr>
+      <footer>
+        <p>Copyright &#169; 2012-2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache ACE, the Apache ACE logo, Apache and the Apache feather logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
+      </footer>
+    </div>
+  </body>
+</html>

Added: websites/staging/ace/trunk/content/docs/design/src/remote-interfaces-components.graffle
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/ace/trunk/content/docs/design/src/remote-interfaces-components.graffle
------------------------------------------------------------------------------
    svn:mime-type = application/xml

Added: websites/staging/ace/trunk/content/docs/design/src/remoteinterfaces-components.graffle
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/ace/trunk/content/docs/design/src/remoteinterfaces-components.graffle
------------------------------------------------------------------------------
    svn:mime-type = application/xml

Added: websites/staging/ace/trunk/content/docs/getting-started-5-mins.html
==============================================================================
--- websites/staging/ace/trunk/content/docs/getting-started-5-mins.html (added)
+++ websites/staging/ace/trunk/content/docs/getting-started-5-mins.html Mon Nov 24 22:42:13 2014
@@ -0,0 +1,315 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <title>Getting Started in 5 minutes</title>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <meta property="og:image" content="//www.apache.org/images/asf_logo.gif" />
+    <link href="/css/bootstrap.min.css" rel="stylesheet" media="screen">
+    <link href="/css/prettify.css" rel="stylesheet" media="screen">
+    <link href="/css/code.css" rel="stylesheet" media="screen">
+    <script src="//code.jquery.com/jquery.js"></script>
+    <script src="/js/bootstrap.min.js"></script>    
+    <script src="/js/prettify.js"></script>
+    
+    
+    
+    <script>
+    $(function () { prettyPrint() })
+    $().dropdown()
+    </script>
+  </head>
+  <body style="padding-top: 50px;">
+    <div class="navbar navbar-fixed-top navbar-inverse">
+      <div class="navbar-inner">
+        <div class="container">
+          <a class="brand" href="/index.html">Apache ACE&trade;</a>
+          <ul class="nav">
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">News <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="/news.html">News</a>
+      </li>
+      <li>
+        <a href="/on-the-web.html">On the web</a>
+      </li>
+    </ul>
+  </li>
+  <li>
+    <a href="/downloads.html">Downloads</a>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Users <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="/user-doc/introduction.html">Introduction</a>
+      </li>
+      <li>
+        <a href="/user-doc/getting-started.html">Getting Started</a>
+      </li>
+      <li>
+        <a href="/user-doc/user-guide.html">User Guide</a>
+      </li>
+      <li>
+        <a href="/user-doc/features.html">Features</a>
+      </li>
+      <li>
+        <a href="/user-doc/shellapi.html">Client Shell API</a>
+      </li>
+	    <li>
+        <a href="/user-doc/restapi.html">Client REST API</a>
+      </li>
+      <li>
+        <a href="/user-doc/useradmin-ui.html">User Management Guide</a>
+      </li>
+      <li>
+        <a href="/user-doc/faq.html">FAQ</a>
+      </li>
+      <li>
+        <a href="/user-doc/support.html">Support</a>
+      </li>
+    </ul>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Developers <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="/dev-doc/getting-started.html">Getting Started</a>
+      </li>
+      <li>
+        <a href="/dev-doc/requirements/">Requirements</a>
+      </li>
+      <li>
+        <a href="/dev-doc/architecture.html">Architecture</a>
+      </li>
+      <li>
+        <a href="/dev-doc/analysis/">Analysis</a>
+      </li>
+      <li>
+        <a href="/dev-doc/design/">Design</a>
+      </li>
+      <li>
+        <a href="/dev-doc/coding-standards.html">Coding Standards</a>
+      </li>
+      <li>
+        <a href="/dev-doc/release-guide.html">Release Guide</a>
+      </li>
+      <li>
+        <a href="/dev-doc/writing-tests.html">Writing unit/integration tests</a>
+      </li>
+      <li>
+        <a href="/dev-doc/adding-custom-artifact-types.html">Adding custom artifact types</a>
+      </li>
+      <li>
+        <a href="/dev-doc/configuring-relay-servers.html">Configuring and using relay servers</a>
+      </li>
+    </ul>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Get Involved <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="/get-involved/mailing-lists.html">Mailing Lists</a>
+      </li>
+      <li>
+        <a href="/get-involved/issue-tracking.html">Issue Tracking</a>
+      </li>
+      <li>
+        <a href="/get-involved/continuous-integration.html">Continuous Integration</a>
+      </li>
+      <li>
+        <a href="/get-involved/source-code.html">Source Code</a>
+      </li>
+      <li>
+        <a href="/get-involved/project-team.html">Project Team</a>
+      </li>
+    </ul>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Wiki <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="https://cwiki.apache.org/confluence/display/ACE/Board+Reports">Board Reports <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="https://cwiki.apache.org/confluence/display/ACE/Index">Homepage <i class="icon-share-alt"></i></a>
+      </li>
+    </ul>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="http://www.apache.org/">Apache Homepage <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="http://www.apache.org/licenses/">Licenses <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="http://www.apache.org/security/">Security <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="http://www.apache.org/foundation/thanks.html">Thanks <i class="icon-share-alt"></i></a>
+      </li>
+    </ul>
+  </li>
+</ul>
+
+        </div>
+      </div>
+    </div>
+    <div class="container">
+      <p><a href="/"><i class='icon-home'></i> Home</a>&nbsp;&raquo&nbsp;<a href="/docs/">Docs</a></p>
+      <h1>Getting Started in 5 minutes</h1>
+      <div class="clear"></div>
+      <div id="content"><p>This guide shows the core functionality of Apache ACE, organising bundles and other
+artifacts into logical features and distributions and associating those with specific
+targets, all done using a convenient web interface.</p>
+<h2 id="introduction">Introduction</h2>
+<p>Apache ACE consists of several parts:</p>
+<ol>
+<li>one or more <strong>targets</strong>, which essentially is a small OSGi framework containing an ACE
+agent that contacts the ACE server on a regular basis to inquire for new software that
+needs to be deployed;</li>
+<li>the <strong>ACE (provisioning) server</strong>, which runs the logic to determine what software
+needs to be provisioned to what target;</li>
+<li>a <strong>bundle repository</strong>, that contains the actual artifacts that need to be deployed
+onto the targets;</li>
+<li>the <strong>ACE client</strong>, used to define the what software should be provisioned on which
+target. By default, there are three different implementations available:
+  a. a <em>web-based</em> client, that provides you a simple drag-and-drop interface to manage
+  your targets;
+  b. a <em>Gogo-shell based</em> client, that allows you to control your targets using the
+  Gogo-shell from Apache Felix;
+  b. a <em>REST-based</em> client, that can be used, for example, to integrate Apache ACE in any
+  other (scripting) language you want.</li>
+</ol>
+<p>All of the various parts can either run on a single machine, for demo/testing purposes, or
+run on various machines, depending on your actual use-case. It is not uncommon that the
+various parts all run on different machines. In fact, it is one of the easiest ways to
+scale an Apache ACE instance.</p>
+<h2 id="download-the-distribution">Download the distribution</h2>
+<p>In order to get started with Apache ACE, you must first download the latest ACE
+distribution:</p>
+<ol>
+<li>Download the latest binary distribution called <code>apache-ace-&lt;version&gt;-bin.zip</code> from the
+<a href="/downloads.html">download</a> page;</li>
+<li>Unpack the downloaded archive somewhere on your filesystem.</li>
+</ol>
+<h2 id="start-the-ace-server">Start the ACE server</h2>
+<p>As explained above, Apache ACE consists of several different parts. For convenience, the
+ACE distribution provides an all-in-one variant that allows you to start the ACE
+provisioning server, a bundle repository and the ACE web-based client using a single JAR:</p>
+<ol>
+<li>Open a terminal and navigate to the root of the distribution;</li>
+<li>Navigate to the sub directory <code>server-allinone</code>;</li>
+<li>Start the server using <code>java -jar server-allinone.jar</code>.</li>
+</ol>
+<p>In case you are wondering how you can tweak Apache ACE, there are some properties that can
+be overridden directly from the command line (for convenience), but most of the
+configuration options are defined in the configuration files located in the <tt>conf</tt>
+directory inside the <tt>server-allinone</tt> directory. For example, to start the web
+server of Apache ACE on a different port, you can start the server as follows:</p>
+<div class="codehilite"><pre><span class="n">java</span> <span class="o">-</span><span class="n">Dorg</span><span class="p">.</span><span class="n">osgi</span><span class="p">.</span><span class="n">service</span><span class="p">.</span><span class="n">http</span><span class="p">.</span><span class="n">port</span><span class="p">=</span>9000 <span class="o">\</span>
+     <span class="o">-</span><span class="n">Dorg</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">ace</span><span class="p">.</span><span class="n">server</span><span class="p">=</span><span class="n">localhost</span><span class="p">:</span>9000 <span class="o">\</span>
+     <span class="o">-</span><span class="n">Dorg</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">ace</span><span class="p">.</span><span class="n">obr</span><span class="p">=</span><span class="n">localhost</span><span class="p">:</span>9000 <span class="o">\</span>
+     <span class="o">-</span><span class="n">jar</span> <span class="n">server</span><span class="o">-</span><span class="n">allinone</span><span class="p">.</span><span class="n">jar</span>
+</pre></div>
+
+
+<p>Since you're moving <em>all</em> the different parts to a different port, that is, the
+provisioning server and bundle repository, to a different port, you need to redefine a
+couple of properties in order to make this work.</p>
+<p>To test your server is up and running, you can go to <code>http://localhost:8080/ace</code> (or
+<code>http://localhost:9000/ace</code> in case you're using a different port) to be presented with
+the a login dialog. You can login by using the default credentials which is <tt>d</tt> as
+username and <tt>f</tt> as password.</p>
+<h2 id="start-an-ace-target">Start an ACE target</h2>
+<p>Now we have the ACE server up and running, we can start an actual target to deploy software to. To start a single target, you need to:</p>
+<ol>
+<li>Open a terminal and navigate into the root of the ACE distribution;</li>
+<li>Navigate to the sub directory <code>target</code>;</li>
+<li>Start the target using <code>java -jar target.jar</code>.</li>
+</ol>
+<p>Similar as with the ACE server, you can tweak the configuration of the target from the
+commandline. For example, if you changed the default port of the ACE server to
+<tt>9000</tt>, you need to run the following command:</p>
+<div class="codehilite"><pre><span class="n">java</span> <span class="o">-</span><span class="n">Dagent</span><span class="p">.</span><span class="n">discovery</span><span class="p">.</span><span class="n">serverurls</span><span class="p">=</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span>9000 <span class="o">\</span>
+     <span class="o">-</span><span class="n">jar</span> <span class="n">target</span><span class="p">.</span><span class="n">jar</span>
+</pre></div>
+
+
+<p>A more comprehensive list of paramaters you can override is described in the <a href="user-guide.html#running-a-target">user
+guide</a>.</p>
+<h2 id="provisioning-software">Provisioning software</h2>
+<p>The basic workflow for defining what software needs to be provisioned to what target is:</p>
+<ol>
+<li>you start with checking out a workspace, in the web UI, this is done implicitly for you
+once you start to interact with the user interface;</li>
+<li>you add the artifacts and define the feature(s) and distribution(s) that need to be
+deployed onto your targets;</li>
+<li>once you're satisfied with the results, you can commit the results back to the ACE
+server, at which point they will be applied to your targets.</li>
+</ol>
+<p>For this demonstration, you need a couple of bundles that you can deploy onto a target. In
+case you do not have any bundles "lying around", you can take a look at the <a href="http://felix.apache.org/documentation/tutorials-examples-and-presentations/apache-felix-application-demonstration.html">sample
+application as provided by the Apache Felix project</a>.
+Follow its instructions and once you're able to run the application locally, you can use
+the resulting bundles in ACE.</p>
+<ol>
+<li>Go to the ACE web-based UI, and click <code>Retrieve</code> in order to be sure that you have the
+latest version of the repository. If your target is up and running, it should be displayed
+in the "Targets" column with a name of <code>target-1</code>;</li>
+<li>Add the artifacts you want to deploy. This can be done in two ways: either by
+dragging-and-dropping them directly onto the "Actifacts" column (a blue border or line
+should appear for the artifacts to be accepted). Alternatively, you can use the <tt>+</tt>
+button above the "Artifacts" column and using the "Upload" button in the dialog presented
+for each artifact you want to add;</li>
+<li>Create a new feature by clicking on the <tt>+</tt> button above the Features column,
+give it a name and acknowledge the dialog;</li>
+<li>Create a distribution by clicking on the <tt>+</tt> button above the "Distributions"
+column, again give it a name and acknowledge the dialog;</li>
+<li>Next, you can create associations between your artifacts, features, distributions and
+targets:
+  a. select one or more artifacts and drag them onto the feature you created. This will
+  associate these artifacts to your feature;
+  b. select your feature and drag it onto your distribution, creating an association
+  between your feature and distribution;
+  c. select your distribution and drag it onto your target to associate your distribution
+  to your target.</li>
+<li>Verify your associations are correct by clicking your artifacts, features and
+distributions. Doing this should highlight the associations. To persist the changes, you
+can use the <code>Store</code> button at the top of the screen;</li>
+<li>After a couple of seconds, the software is deployed onto the target. If you used the
+Felix demonstration application, you should be presented with a nice Swing UI.</li>
+</ol>
+<h3 id="it-doesnt-work">It doesn't work!</h3>
+<p>If the previous steps did not provided you with a Swing UI, you need to find out what went
+wrong. There are several ways to find out why your target is not being provisioned
+correctly:</p>
+<ol>
+<li>Inspect state and log of the target by double-clicking it in the web UI. It presents
+you a dialog with a couple of tabs. On the <code>Info</code> tab, you can find some basic information
+on the actual state of the target, such as which version is deployed, which version should
+be deployed, and so on. Alternatively, the LogViewer provides you a little more
+information on what might be wrong. It is a very basic view on the log entries that the
+target sent back to the server;</li>
+<li>Alternatively, you can go to the terminal where your target is running and use the Gogo
+shell to find out what is happening directly onto the target. You can use <code>log 1</code> to see
+the latest log entries, or <code>lb</code> to list the bundles that are currently running. Most of
+the times, the log gives you some clue what went wrong.</li>
+</ol>
+<h2 id="next-steps">Next steps</h2>
+<p>If you want to continue on learning more details on Apache ACE, you can continue to the
+detailed <a href="user-guide.html">user guide</a>. Or you might want to go back to the <a href="../docs.html">main
+documentation</a> to check out any other topic that might be of interest.</p></div>
+      <hr>
+      <footer>
+        <p>Copyright &#169; 2012-2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache ACE, the Apache ACE logo, Apache and the Apache feather logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
+      </footer>
+    </div>
+  </body>
+</html>

Added: websites/staging/ace/trunk/content/docs/history-and-background.html
==============================================================================
--- websites/staging/ace/trunk/content/docs/history-and-background.html (added)
+++ websites/staging/ace/trunk/content/docs/history-and-background.html Mon Nov 24 22:42:13 2014
@@ -0,0 +1,210 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <title>Introduction</title>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <meta property="og:image" content="//www.apache.org/images/asf_logo.gif" />
+    <link href="/css/bootstrap.min.css" rel="stylesheet" media="screen">
+    <link href="/css/prettify.css" rel="stylesheet" media="screen">
+    <link href="/css/code.css" rel="stylesheet" media="screen">
+    <script src="//code.jquery.com/jquery.js"></script>
+    <script src="/js/bootstrap.min.js"></script>    
+    <script src="/js/prettify.js"></script>
+    
+    
+    
+    <script>
+    $(function () { prettyPrint() })
+    $().dropdown()
+    </script>
+  </head>
+  <body style="padding-top: 50px;">
+    <div class="navbar navbar-fixed-top navbar-inverse">
+      <div class="navbar-inner">
+        <div class="container">
+          <a class="brand" href="/index.html">Apache ACE&trade;</a>
+          <ul class="nav">
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">News <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="/news.html">News</a>
+      </li>
+      <li>
+        <a href="/on-the-web.html">On the web</a>
+      </li>
+    </ul>
+  </li>
+  <li>
+    <a href="/downloads.html">Downloads</a>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Users <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="/user-doc/introduction.html">Introduction</a>
+      </li>
+      <li>
+        <a href="/user-doc/getting-started.html">Getting Started</a>
+      </li>
+      <li>
+        <a href="/user-doc/user-guide.html">User Guide</a>
+      </li>
+      <li>
+        <a href="/user-doc/features.html">Features</a>
+      </li>
+      <li>
+        <a href="/user-doc/shellapi.html">Client Shell API</a>
+      </li>
+	    <li>
+        <a href="/user-doc/restapi.html">Client REST API</a>
+      </li>
+      <li>
+        <a href="/user-doc/useradmin-ui.html">User Management Guide</a>
+      </li>
+      <li>
+        <a href="/user-doc/faq.html">FAQ</a>
+      </li>
+      <li>
+        <a href="/user-doc/support.html">Support</a>
+      </li>
+    </ul>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Developers <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="/dev-doc/getting-started.html">Getting Started</a>
+      </li>
+      <li>
+        <a href="/dev-doc/requirements/">Requirements</a>
+      </li>
+      <li>
+        <a href="/dev-doc/architecture.html">Architecture</a>
+      </li>
+      <li>
+        <a href="/dev-doc/analysis/">Analysis</a>
+      </li>
+      <li>
+        <a href="/dev-doc/design/">Design</a>
+      </li>
+      <li>
+        <a href="/dev-doc/coding-standards.html">Coding Standards</a>
+      </li>
+      <li>
+        <a href="/dev-doc/release-guide.html">Release Guide</a>
+      </li>
+      <li>
+        <a href="/dev-doc/writing-tests.html">Writing unit/integration tests</a>
+      </li>
+      <li>
+        <a href="/dev-doc/adding-custom-artifact-types.html">Adding custom artifact types</a>
+      </li>
+      <li>
+        <a href="/dev-doc/configuring-relay-servers.html">Configuring and using relay servers</a>
+      </li>
+    </ul>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Get Involved <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="/get-involved/mailing-lists.html">Mailing Lists</a>
+      </li>
+      <li>
+        <a href="/get-involved/issue-tracking.html">Issue Tracking</a>
+      </li>
+      <li>
+        <a href="/get-involved/continuous-integration.html">Continuous Integration</a>
+      </li>
+      <li>
+        <a href="/get-involved/source-code.html">Source Code</a>
+      </li>
+      <li>
+        <a href="/get-involved/project-team.html">Project Team</a>
+      </li>
+    </ul>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Wiki <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="https://cwiki.apache.org/confluence/display/ACE/Board+Reports">Board Reports <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="https://cwiki.apache.org/confluence/display/ACE/Index">Homepage <i class="icon-share-alt"></i></a>
+      </li>
+    </ul>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="http://www.apache.org/">Apache Homepage <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="http://www.apache.org/licenses/">Licenses <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="http://www.apache.org/security/">Security <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="http://www.apache.org/foundation/thanks.html">Thanks <i class="icon-share-alt"></i></a>
+      </li>
+    </ul>
+  </li>
+</ul>
+
+        </div>
+      </div>
+    </div>
+    <div class="container">
+      <p><a href="/"><i class='icon-home'></i> Home</a>&nbsp;&raquo&nbsp;<a href="/docs/">Docs</a></p>
+      <h1>Introduction</h1>
+      <div class="clear"></div>
+      <div id="content"><p>Since its birth in 1999, OSGi has steadily been gaining popularity as the component model
+of choice for Java. Originally designed as a framework for home gateways and other
+embedded systems, it has since moved on to desktop and enterprise systems and embraced by
+major software vendors.</p>
+<p>OSGi allows you to build your systems out of well defined, reusable components, which
+brings both exciting new benefits as well as a set of challenges. One of these is the
+actual management of components, deployed on different target systems.</p>
+<p>Traditional, monolithic systems usually have fairly straightforward and linear release
+schedules. It is quite common for most target systems to have the same version and
+configuration of such a system.</p>
+<p>Component based systems can easily be customized on a per target case, meaning there might
+be many different configurations out there. When components are developed over time, they
+might be released individually and a lot more often than these traditional systems.</p>
+<p>Keeping track of what is installed where becomes quite a challenge if the number of
+components and targets grows, and this is where Apache ACE comes in.</p>
+<p>Apache ACE is a software distribution framework. It is written as a set of OSGi components
+and consists of three major subsystems:</p>
+<ol>
+<li>dependency management, which handles the complexity of managing the dependencies
+between component, aggregating them into features and distributions and associating those
+to targets;</li>
+<li>deployment management, which ensures that the right components get installed onto the
+right targets in a robust and scalable way;</li>
+<li>feedback management, which collects life cycle feedback on the target and aggregates
+that on a central server.</li>
+</ol>
+<p>A typical topology consists of:</p>
+<ul>
+<li>a server, holding the components and their metadata;</li>
+<li>multiple target systems, which all connect to the server;</li>
+<li>a client, usually a web browser, on which the user interacts with the server.</li>
+</ul>
+<p>The Apache ACE software, which consists of a set of OSGi bundles, gets deployed on a
+server. A target can be any OSGi framework (Apache Felix, Equinox or Knopflerfish) with
+the Apache ACE management agent installed. This agent will connect to the server, identify
+itself and poll for updates.</p></div>
+      <hr>
+      <footer>
+        <p>Copyright &#169; 2012-2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache ACE, the Apache ACE logo, Apache and the Apache feather logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
+      </footer>
+    </div>
+  </body>
+</html>

Added: websites/staging/ace/trunk/content/docs/relay_functional_overview.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/ace/trunk/content/docs/relay_functional_overview.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/ace/trunk/content/docs/release-guide.html
==============================================================================
--- websites/staging/ace/trunk/content/docs/release-guide.html (added)
+++ websites/staging/ace/trunk/content/docs/release-guide.html Mon Nov 24 22:42:13 2014
@@ -0,0 +1,307 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <title>Release Guide</title>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <meta property="og:image" content="//www.apache.org/images/asf_logo.gif" />
+    <link href="/css/bootstrap.min.css" rel="stylesheet" media="screen">
+    <link href="/css/prettify.css" rel="stylesheet" media="screen">
+    <link href="/css/code.css" rel="stylesheet" media="screen">
+    <script src="//code.jquery.com/jquery.js"></script>
+    <script src="/js/bootstrap.min.js"></script>    
+    <script src="/js/prettify.js"></script>
+    
+    
+    
+    <script>
+    $(function () { prettyPrint() })
+    $().dropdown()
+    </script>
+  </head>
+  <body style="padding-top: 50px;">
+    <div class="navbar navbar-fixed-top navbar-inverse">
+      <div class="navbar-inner">
+        <div class="container">
+          <a class="brand" href="/index.html">Apache ACE&trade;</a>
+          <ul class="nav">
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">News <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="/news.html">News</a>
+      </li>
+      <li>
+        <a href="/on-the-web.html">On the web</a>
+      </li>
+    </ul>
+  </li>
+  <li>
+    <a href="/downloads.html">Downloads</a>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Users <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="/user-doc/introduction.html">Introduction</a>
+      </li>
+      <li>
+        <a href="/user-doc/getting-started.html">Getting Started</a>
+      </li>
+      <li>
+        <a href="/user-doc/user-guide.html">User Guide</a>
+      </li>
+      <li>
+        <a href="/user-doc/features.html">Features</a>
+      </li>
+      <li>
+        <a href="/user-doc/shellapi.html">Client Shell API</a>
+      </li>
+	    <li>
+        <a href="/user-doc/restapi.html">Client REST API</a>
+      </li>
+      <li>
+        <a href="/user-doc/useradmin-ui.html">User Management Guide</a>
+      </li>
+      <li>
+        <a href="/user-doc/faq.html">FAQ</a>
+      </li>
+      <li>
+        <a href="/user-doc/support.html">Support</a>
+      </li>
+    </ul>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Developers <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="/dev-doc/getting-started.html">Getting Started</a>
+      </li>
+      <li>
+        <a href="/dev-doc/requirements/">Requirements</a>
+      </li>
+      <li>
+        <a href="/dev-doc/architecture.html">Architecture</a>
+      </li>
+      <li>
+        <a href="/dev-doc/analysis/">Analysis</a>
+      </li>
+      <li>
+        <a href="/dev-doc/design/">Design</a>
+      </li>
+      <li>
+        <a href="/dev-doc/coding-standards.html">Coding Standards</a>
+      </li>
+      <li>
+        <a href="/dev-doc/release-guide.html">Release Guide</a>
+      </li>
+      <li>
+        <a href="/dev-doc/writing-tests.html">Writing unit/integration tests</a>
+      </li>
+      <li>
+        <a href="/dev-doc/adding-custom-artifact-types.html">Adding custom artifact types</a>
+      </li>
+      <li>
+        <a href="/dev-doc/configuring-relay-servers.html">Configuring and using relay servers</a>
+      </li>
+    </ul>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Get Involved <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="/get-involved/mailing-lists.html">Mailing Lists</a>
+      </li>
+      <li>
+        <a href="/get-involved/issue-tracking.html">Issue Tracking</a>
+      </li>
+      <li>
+        <a href="/get-involved/continuous-integration.html">Continuous Integration</a>
+      </li>
+      <li>
+        <a href="/get-involved/source-code.html">Source Code</a>
+      </li>
+      <li>
+        <a href="/get-involved/project-team.html">Project Team</a>
+      </li>
+    </ul>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Wiki <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="https://cwiki.apache.org/confluence/display/ACE/Board+Reports">Board Reports <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="https://cwiki.apache.org/confluence/display/ACE/Index">Homepage <i class="icon-share-alt"></i></a>
+      </li>
+    </ul>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="http://www.apache.org/">Apache Homepage <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="http://www.apache.org/licenses/">Licenses <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="http://www.apache.org/security/">Security <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="http://www.apache.org/foundation/thanks.html">Thanks <i class="icon-share-alt"></i></a>
+      </li>
+    </ul>
+  </li>
+</ul>
+
+        </div>
+      </div>
+    </div>
+    <div class="container">
+      <p><a href="/"><i class='icon-home'></i> Home</a>&nbsp;&raquo&nbsp;<a href="/docs/">Docs</a></p>
+      <h1>Release Guide</h1>
+      <div class="clear"></div>
+      <div id="content"><p>Apache ACE is an open source project, and as such its only official releases are source
+releases. For convenience we also provide binaries. This document describes how to do a
+source release. It is based on the <a href="http://www.apache.org/dev/release.html">Release FAQ</a>.</p>
+<h2 id="prerequisites">Prerequisites</h2>
+<p>To create a release you <em>must</em>:</p>
+<ul>
+<li>Be a committer in the Apache ACE project;</li>
+<li>Have Ant installed on your system;</li>
+<li>Have Subversion installed on your system;</li>
+<li>Have gpg installed on your system;</li>
+<li>Have a public key added to the <a href="http://www.apache.org/dist/ace/KEYS">keys file</a>.</li>
+</ul>
+<p>Before you can start staging a release candidate, you must:</p>
+<ul>
+<li>make sure there are no dependencies on snapshots/unreleased versions;</li>
+<li>double check that the version you want to create is correctly filled in in <tt>build/build.xml</tt>;</li>
+<li>create a tagged version of the sources in preparation of the release candidate.  </li>
+</ul>
+<p>Creating a tagged version of the sources can be done directly through svn:</p>
+<div class="codehilite"><pre><span class="nv">$ </span>svn copy https://svn.apache.org/repos/asf/ace/trunk/ https://svn.apache.org/repos/asf/ace/releases/X.Y.Z -m <span class="s2">&quot;Release X.Y.Z&quot;</span>
+</pre></div>
+
+
+<h2 id="staging-a-release-candidate">Staging a release candidate</h2>
+<p>Staging a release starts by checking out a tagged version of the sources:</p>
+<div class="codehilite"><pre><span class="nv">$ </span>svn co https://svn.apache.org/repos/asf/ace/releases/X.Y.Z ace-X.Y.Z
+</pre></div>
+
+
+<p>The next step is to build the software and create the archives:</p>
+<div class="codehilite"><pre><span class="nv">$ </span><span class="nb">cd </span>ace-X.Y.Z/build
+<span class="nv">$ </span>ant
+<span class="nv">$ </span>ant package
+</pre></div>
+
+
+<p>Then you sign archives by invoking the following target:</p>
+<div class="codehilite"><pre><span class="nv">$ </span>ant sign
+</pre></div>
+
+
+<p>you can upload the archives and the signatures to our development area, which we use to
+stage this release candidate. This development area can be found at
+<tt>https://dist.apache.org/repos/dist/dev/ace</tt> and adding files to it can be done
+using "svnpubsub" which is taken care of by the following target:</p>
+<div class="codehilite"><pre><span class="nv">$ </span>ant commit-to-staging
+</pre></div>
+
+
+<h2 id="voting-on-the-release">Voting on the release</h2>
+<p>Start a vote on the dev@ace.apache.org list, for example (be sure to replace
+<tt>X.Y.Z</tt> with the <em>correct</em> version!):</p>
+<div class="codehilite"><pre><span class="n">To</span><span class="p">:</span> &quot;<span class="n">Apache</span> <span class="n">ACE</span> <span class="n">developers</span> <span class="n">list</span>&quot; <span class="o">&lt;</span><span class="n">dev</span><span class="p">@</span><span class="n">ace</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">&gt;</span>
+<span class="n">Subject</span><span class="p">:</span> <span class="p">[</span><span class="n">VOTE</span><span class="p">]</span> <span class="n">Release</span> <span class="n">ACE</span> <span class="n">version</span> <span class="n">X</span><span class="p">.</span><span class="n">Y</span><span class="p">.</span><span class="n">Z</span>
+
+<span class="n">The</span> <span class="n">source</span> <span class="n">code</span> <span class="n">of</span> <span class="n">Apache</span> <span class="n">ACE</span> <span class="n">version</span> <span class="n">X</span><span class="p">.</span><span class="n">Y</span><span class="p">.</span><span class="n">Z</span> <span class="n">is</span> <span class="n">available</span><span class="p">,</span>
+<span class="n">along</span> <span class="n">with</span> <span class="n">an</span> <span class="n">archive</span> <span class="n">containing</span> <span class="n">all</span> <span class="n">dependencies</span> <span class="n">and</span> <span class="n">a</span>
+<span class="n">binary</span> <span class="n">release</span> <span class="k">for</span> <span class="n">convenience</span><span class="p">.</span> <span class="n">They</span> <span class="n">can</span> <span class="n">all</span> <span class="n">be</span> <span class="n">found</span> <span class="n">in</span>
+<span class="n">our</span> <span class="n">staging</span> <span class="n">area</span> <span class="n">here</span><span class="p">:</span>
+<span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">dist</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">repos</span><span class="o">/</span><span class="n">dist</span><span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">ace</span><span class="o">/</span>
+
+<span class="n">You</span> <span class="n">can</span> <span class="n">use</span> <span class="n">this</span> <span class="n">UNIX</span> <span class="n">script</span> <span class="n">to</span> <span class="n">download</span> <span class="n">the</span> <span class="n">release</span> <span class="n">and</span>
+<span class="n">verify</span> <span class="n">the</span> <span class="n">checksums</span> <span class="n">and</span> <span class="n">signatures</span><span class="p">:</span>
+<span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">svn</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">repos</span><span class="o">/</span><span class="n">asf</span><span class="o">/</span><span class="n">ace</span><span class="o">/</span><span class="n">trunk</span><span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">check_staged_ace</span><span class="p">.</span><span class="n">sh</span>
+
+<span class="n">Usage</span><span class="p">:</span>
+<span class="n">sh</span> <span class="n">check_staged_ace</span><span class="p">.</span><span class="n">sh</span> <span class="n">X</span><span class="p">.</span><span class="n">Y</span><span class="p">.</span><span class="n">Z</span>
+
+<span class="n">Please</span> <span class="n">vote</span> <span class="n">to</span> <span class="n">approve</span> <span class="n">this</span> <span class="n">release</span><span class="p">:</span>
+<span class="p">[</span>  <span class="p">]</span> <span class="o">+</span>1 <span class="n">Approve</span> <span class="n">the</span> <span class="n">release</span>
+<span class="p">[</span>  <span class="p">]</span> <span class="o">-</span>1 <span class="n">Veto</span> <span class="n">the</span> <span class="n">release</span> <span class="p">(</span><span class="n">please</span> <span class="n">motivate</span><span class="p">)</span>
+
+<span class="n">This</span> <span class="n">vote</span> <span class="n">will</span> <span class="n">be</span> <span class="n">open</span> <span class="k">for</span> <span class="n">at</span> <span class="n">least</span> 72 <span class="n">hours</span><span class="p">.</span>
+</pre></div>
+
+
+<p>The formal requirements on <a href="http://www.apache.org/dev/release.html#approving-a-release">approving a release</a> are:</p>
+<blockquote>
+<p>Votes on whether a package is ready to be released use majority approval --
+i.e. at least three PMC members must vote affirmatively for release, and there
+must be more positive than negative votes. Releases may not be vetoed. Before
+voting +1 PMC members are required to download the signed source code package,
+compile it as provided, and test the resulting executable on their own
+platform, along with also verifying that the package contains the required
+contents.</p>
+</blockquote>
+<p>The list of PMC (and project) members can be found <a href="http://ace.apache.org/get-involved/project-team.html">on this
+page</a>.</p>
+<p>Wrap up the vote with an e-mail to the <tt>dev@ace.apache.org</tt> list again:</p>
+<div class="codehilite"><pre><span class="n">To</span><span class="p">:</span> &quot;<span class="n">Apache</span> <span class="n">ACE</span> <span class="n">developers</span> <span class="n">list</span>&quot; <span class="o">&lt;</span><span class="n">dev</span><span class="p">@</span><span class="n">ace</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">&gt;</span>
+<span class="n">Subject</span><span class="p">:</span> <span class="p">[</span><span class="n">RESULT</span><span class="p">]</span> <span class="p">[</span><span class="n">VOTE</span><span class="p">]</span> <span class="n">Release</span> <span class="n">ACE</span> <span class="n">version</span> <span class="n">X</span><span class="p">.</span><span class="n">Y</span><span class="p">.</span><span class="n">Z</span>
+
+<span class="n">The</span> <span class="n">vote</span> <span class="n">has</span> <span class="n">passed</span><span class="o">/</span><span class="n">failed</span> <span class="n">with</span> <span class="n">the</span> <span class="n">following</span> <span class="n">result</span><span class="p">:</span>
+<span class="o">+</span>1 <span class="p">(</span><span class="n">binding</span><span class="p">):</span> <span class="p">...</span>
+<span class="o">+</span>1 <span class="p">(</span><span class="n">non</span><span class="o">-</span><span class="n">binding</span><span class="p">):</span> <span class="p">...</span>
+<span class="o">-</span>1<span class="p">:</span> <span class="p">...</span>
+</pre></div>
+
+
+<p>And, depending on the result, continue with either promoting or cancelling the release
+below.</p>
+<h2 id="promoting-the-release">Promoting the release</h2>
+<p>Move the artifacts from the development area to the final release location at
+<tt>https://dist.apache.org/repos/dist/release/ace</tt> by invoking the following target:</p>
+<div class="codehilite"><pre><span class="nv">$ </span>ant promote-to-release
+</pre></div>
+
+
+<p>Now wait at least 24 hours to allow the release to be properly mirrored and then update
+the news and download page on the Apache ACE website and announce the release:</p>
+<div class="codehilite"><pre><span class="n">To</span><span class="p">:</span> &quot;<span class="n">Apache</span> <span class="n">ACE</span> <span class="n">users</span> <span class="n">list</span>&quot; <span class="o">&lt;</span><span class="n">users</span><span class="p">@</span><span class="n">ace</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">&gt;</span>
+<span class="n">Subject</span><span class="p">:</span> <span class="p">[</span><span class="n">ANN</span><span class="p">]</span> <span class="n">ACE</span> <span class="n">version</span> <span class="n">X</span><span class="p">.</span><span class="n">Y</span><span class="p">.</span><span class="n">Z</span> <span class="n">released</span><span class="p">.</span>
+
+<span class="n">The</span> <span class="n">Apache</span> <span class="n">ACE</span> <span class="n">team</span> <span class="n">is</span> <span class="n">proud</span> <span class="n">to</span> <span class="n">announce</span> <span class="n">the</span> <span class="n">release</span> <span class="n">of</span> <span class="n">ACE</span> <span class="n">version</span> <span class="n">X</span><span class="p">.</span><span class="n">Y</span><span class="p">.</span><span class="n">Z</span><span class="p">.</span>
+
+<span class="n">This</span> <span class="n">release</span> <span class="n">is</span> <span class="n">available</span> <span class="n">from</span> <span class="n">our</span> <span class="n">download</span> <span class="n">page</span> <span class="n">at</span><span class="p">:</span>
+<span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">ace</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">downloads</span><span class="p">.</span><span class="n">html</span>
+</pre></div>
+
+
+<p>After announcing the release, please update the baseline bundles contained in
+trunk/cnf/releaserepo based on the released artifacts (remove old versions, keep only the
+latest one).</p>
+<p>Please also make sure that old releases are removed from
+https://dist.apache.org/repos/dist/release/ace (the ant task does not do that yet).  Leave
+the KEYS file in place.</p>
+<h2 id="cancelling-the-release">Cancelling the release</h2>
+<p>Remove the artifacts from the development area:</p>
+<div class="codehilite"><pre><span class="nv">$ </span>ant delete-from-staging
+</pre></div>
+
+
+<p>We keep the tag in subversion for reference.</p></div>
+      <hr>
+      <footer>
+        <p>Copyright &#169; 2012-2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache ACE, the Apache ACE logo, Apache and the Apache feather logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
+      </footer>
+    </div>
+  </body>
+</html>

Added: websites/staging/ace/trunk/content/docs/rest-api.html
==============================================================================
--- websites/staging/ace/trunk/content/docs/rest-api.html (added)
+++ websites/staging/ace/trunk/content/docs/rest-api.html Mon Nov 24 22:42:13 2014
@@ -0,0 +1,305 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <title>Client REST API</title>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <meta property="og:image" content="//www.apache.org/images/asf_logo.gif" />
+    <link href="/css/bootstrap.min.css" rel="stylesheet" media="screen">
+    <link href="/css/prettify.css" rel="stylesheet" media="screen">
+    <link href="/css/code.css" rel="stylesheet" media="screen">
+    <script src="//code.jquery.com/jquery.js"></script>
+    <script src="/js/bootstrap.min.js"></script>    
+    <script src="/js/prettify.js"></script>
+    
+    
+    <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file to you under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License.  You may obtain a copy of the License at . http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and limitations under the License. -->
+    <script>
+    $(function () { prettyPrint() })
+    $().dropdown()
+    </script>
+  </head>
+  <body style="padding-top: 50px;">
+    <div class="navbar navbar-fixed-top navbar-inverse">
+      <div class="navbar-inner">
+        <div class="container">
+          <a class="brand" href="/index.html">Apache ACE&trade;</a>
+          <ul class="nav">
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">News <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="/news.html">News</a>
+      </li>
+      <li>
+        <a href="/on-the-web.html">On the web</a>
+      </li>
+    </ul>
+  </li>
+  <li>
+    <a href="/downloads.html">Downloads</a>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Users <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="/user-doc/introduction.html">Introduction</a>
+      </li>
+      <li>
+        <a href="/user-doc/getting-started.html">Getting Started</a>
+      </li>
+      <li>
+        <a href="/user-doc/user-guide.html">User Guide</a>
+      </li>
+      <li>
+        <a href="/user-doc/features.html">Features</a>
+      </li>
+      <li>
+        <a href="/user-doc/shellapi.html">Client Shell API</a>
+      </li>
+	    <li>
+        <a href="/user-doc/restapi.html">Client REST API</a>
+      </li>
+      <li>
+        <a href="/user-doc/useradmin-ui.html">User Management Guide</a>
+      </li>
+      <li>
+        <a href="/user-doc/faq.html">FAQ</a>
+      </li>
+      <li>
+        <a href="/user-doc/support.html">Support</a>
+      </li>
+    </ul>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Developers <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="/dev-doc/getting-started.html">Getting Started</a>
+      </li>
+      <li>
+        <a href="/dev-doc/requirements/">Requirements</a>
+      </li>
+      <li>
+        <a href="/dev-doc/architecture.html">Architecture</a>
+      </li>
+      <li>
+        <a href="/dev-doc/analysis/">Analysis</a>
+      </li>
+      <li>
+        <a href="/dev-doc/design/">Design</a>
+      </li>
+      <li>
+        <a href="/dev-doc/coding-standards.html">Coding Standards</a>
+      </li>
+      <li>
+        <a href="/dev-doc/release-guide.html">Release Guide</a>
+      </li>
+      <li>
+        <a href="/dev-doc/writing-tests.html">Writing unit/integration tests</a>
+      </li>
+      <li>
+        <a href="/dev-doc/adding-custom-artifact-types.html">Adding custom artifact types</a>
+      </li>
+      <li>
+        <a href="/dev-doc/configuring-relay-servers.html">Configuring and using relay servers</a>
+      </li>
+    </ul>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Get Involved <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="/get-involved/mailing-lists.html">Mailing Lists</a>
+      </li>
+      <li>
+        <a href="/get-involved/issue-tracking.html">Issue Tracking</a>
+      </li>
+      <li>
+        <a href="/get-involved/continuous-integration.html">Continuous Integration</a>
+      </li>
+      <li>
+        <a href="/get-involved/source-code.html">Source Code</a>
+      </li>
+      <li>
+        <a href="/get-involved/project-team.html">Project Team</a>
+      </li>
+    </ul>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Wiki <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="https://cwiki.apache.org/confluence/display/ACE/Board+Reports">Board Reports <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="https://cwiki.apache.org/confluence/display/ACE/Index">Homepage <i class="icon-share-alt"></i></a>
+      </li>
+    </ul>
+  </li>
+  <li class="dropdown">
+    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
+    <ul class="dropdown-menu">
+      <li>
+        <a href="http://www.apache.org/">Apache Homepage <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="http://www.apache.org/licenses/">Licenses <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="http://www.apache.org/security/">Security <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship <i class="icon-share-alt"></i></a>
+      </li>
+      <li>
+        <a href="http://www.apache.org/foundation/thanks.html">Thanks <i class="icon-share-alt"></i></a>
+      </li>
+    </ul>
+  </li>
+</ul>
+
+        </div>
+      </div>
+    </div>
+    <div class="container">
+      <p><a href="/"><i class='icon-home'></i> Home</a>&nbsp;&raquo&nbsp;<a href="/docs/">Docs</a></p>
+      <h1>Client REST API</h1>
+      <div class="clear"></div>
+      <div id="content"><h1 id="introduction">Introduction</h1>
+<p>To automate the interaction with ACE, you can use its REST client API. Typical use cases include the tight integration of ACE into your development or automated build process, or the creation of a custom user interface or integration.</p>
+<p>This is still a work in progress which you can track in ACE-151.</p>
+<h1 id="overview">Overview</h1>
+<p>Before we dive into the various REST endpoints, let's start with an overview of how all of this works. Everything in ACE is an entity. For example, an artifact or a feature is an entity, but also the association between an artifact and a feature is. Entities have properties and tags. Properties are the "fixed" attributes that make up a specific type of entity. For example a feature has a name and a description. If you know the type of entity, its properties are also known. Tags on the other hand are attributes that a user can freely add and refer to.</p>
+<p>The following diagram shows the different entities that ACE knows:
+<img alt="alt text" src="https://cwiki.apache.org/confluence/download/attachments/27822075/entities.png?version=1&amp;modificationDate=1311923466000" /></p>
+<p>For each entity we will now list and explain the properties:</p>
+<h1 id="artifact">Artifact</h1>
+<p>Artifacts contain the metadata for the different types of artifacts that can be provisioned to targets. Artifacts can be bundles, configuration data or any other type you've defined yourself.</p>
+<ul>
+<li>artifactName</li>
+<li>artifactDescription</li>
+<li>url</li>
+<li>mimetype</li>
+<li>processorPid</li>
+</ul>
+<p>Since there are different types of artifacts, some properties depend on the actual type.</p>
+<p>For bundles:</p>
+<ul>
+<li>Bundle-Name</li>
+<li>Bundle-SymbolicName</li>
+<li>Bundle-Version</li>
+</ul>
+<p>For configuration:</p>
+<ul>
+<li>filename</li>
+</ul>
+<p>For other types, please consult the documentation about these types (specifically the classes that implement the interfaces in the org.apache.ace.client.repository.helper package).</p>
+<h1 id="artifact2feature">Artifact2Feature</h1>
+<p>Associates artifacts to features. Associations have a left and right hand side. Both can be expressed as filter conditions, and both have a cardinality.</p>
+<ul>
+<li>leftEndpoint</li>
+<li>rightEndpoint</li>
+<li>leftCardinality — defaults to 1</li>
+<li>rightCardinality — defaults to 1</li>
+</ul>
+<h1 id="feature">Feature</h1>
+<p>A feature is a grouping mechanism for artifacts. It is commonly used to group together a set of artifacts that together represent some kind of feature to the application.</p>
+<ul>
+<li>name</li>
+<li>description</li>
+</ul>
+<h1 id="feature2distribution">Feature2Distribution</h1>
+<p>Associates features to distributions. Associations have a left and right hand side. Both can be expressed as filter conditions, and both have a cardinality.</p>
+<ul>
+<li>leftEndpoint</li>
+<li>rightEndpoint</li>
+<li>leftCardinality — defaults to 1</li>
+<li>rightCardinality — defaults to 1</li>
+</ul>
+<h1 id="distribution">Distribution</h1>
+<p>A feature is a grouping mechanism for features. It is commonly used to group together a set of features that together represent some kind of distribution. Distributions are the things you can associate with targets, so you can look at them as the licensable configurations of your software.</p>
+<ul>
+<li>name</li>
+<li>description</li>
+</ul>
+<h1 id="distribution2target">Distribution2Target</h1>
+<p>Associates distributions to targets. Associations have a left and right hand side. Both can be expressed as filter conditions, and both have a cardinality.</p>
+<ul>
+<li>leftEndpoint</li>
+<li>rightEndpoint</li>
+<li>leftCardinality — defaults to 1</li>
+<li>rightCardinality — defaults to 1</li>
+</ul>
+<h1 id="target">Target</h1>
+<p>A target receives the artifacts you provision to it. Most of the time, a target is an OSGi container and provisioning means you'll actually install the artifacts in the container, but there can be other types of targets (non-OSGi containers, or something completely different).</p>
+<ul>
+<li>id</li>
+<li>autoapprove</li>
+</ul>
+<p>A target also has specific state (see below for how that is returned):</p>
+<ul>
+<li>registrationState — Unregistered, Registered</li>
+<li>provisioningState — Idle, InProgress, OK, Failed</li>
+<li>storeState — New, Unapproved, Approved</li>
+<li>currentVersion</li>
+<li>isRegistered</li>
+<li>needsApproval</li>
+<li>autoApprove</li>
+<li>artifactsFromShop</li>
+<li>artifactsFromDeployment</li>
+<li>lastInstallSuccess</li>
+</ul>
+<h1 id="checkout-and-commit">Checkout and commit</h1>
+<p>Similar to the web based UI, this API also works with the concept of checking out a copy to a local working area, altering it in that working area and then committing it back to the server.</p>
+<h2 id="post-work">POST /work</h2>
+<p>Creates a working copy for you, with its own ID, and redirects you to it. (For the contents of this working copy, see below.)</p>
+<p>Response:</p>
+<ul>
+<li>302 /work/ID</li>
+</ul>
+<h2 id="delete-workid">DELETE /work/ID</h2>
+<p>Deletes the working copy. Signals you're done with it, without transferring the data back to the server.</p>
+<h2 id="post-workid">POST /work/ID</h2>
+<p>Sets the working copy to be the current version. We keep track of whether you have based your copy on, and will reject the update if it is no longer the latest.</p>
+<p>Response:</p>
+<ul>
+<li>200</li>
+<li>409</li>
+</ul>
+<h1 id="repositories-and-objects">Repositories and objects</h1>
+<p>Now you have a working copy, you can start working with it.</p>
+<h2 id="get-workid">GET /work/ID</h2>
+<p>Gets you a list of all repositories you can use. Should return: ["artifact", "feature", "distribution", "target", "artifact2feature", "feature2distribution", "distribution2target"]</p>
+<h2 id="get-workidfeature">GET /work/ID/feature</h2>
+<p>Lists all feature IDs in the feature repository.</p>
+<h2 id="post-workidfeature">POST /work/ID/feature</h2>
+<p>Creates a new feature. In the post body, you can specify attributes and tags, for example: {attributes: {key: "value"}, tags: {key: "value"}}.</p>
+<p>Response:</p>
+<ul>
+<li>302 /work/ID/feature/FID</li>
+<li>400</li>
+</ul>
+<h2 id="get-workidfeaturefid">GET /work/ID/feature/FID</h2>
+<p>Returns a representation of the object, for example: {attributes: {key: "value"}, tags: {key: "value"}}. If you ask for a target, you will also get its state, so the result will be in the form: {attributes: {key: "value"}, tags: {key: "value"}, state: {key: "value"}}.</p>
+<h2 id="put-workidfeaturefid">PUT /work/ID/feature/FID</h2>
+<p>Updates the object with the JSON data you supply.</p>
+<p>Response:</p>
+<ul>
+<li>200</li>
+<li>400</li>
+<li>404</li>
+</ul>
+<h2 id="delete-workidfeaturefid">DELETE /work/ID/feature/FID</h2>
+<p>Deletes the object.</p>
+<p>Response:</p>
+<ul>
+<li>200</li>
+<li>404</li>
+</ul></div>
+      <hr>
+      <footer>
+        <p>Copyright &#169; 2012-2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache ACE, the Apache ACE logo, Apache and the Apache feather logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
+      </footer>
+    </div>
+  </body>
+</html>