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/25 08:43:22 UTC

svn commit: r930400 - in /websites/staging/ace/trunk/content: ./ docs.html docs/ace-roles.html docs/history-and-background.html docs/user-guide.html

Author: buildbot
Date: Tue Nov 25 07:43:22 2014
New Revision: 930400

Log:
Staging update by buildbot for ace

Modified:
    websites/staging/ace/trunk/content/   (props changed)
    websites/staging/ace/trunk/content/docs.html
    websites/staging/ace/trunk/content/docs/ace-roles.html
    websites/staging/ace/trunk/content/docs/history-and-background.html
    websites/staging/ace/trunk/content/docs/user-guide.html

Propchange: websites/staging/ace/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Tue Nov 25 07:43:22 2014
@@ -1 +1 @@
-1641505
+1641536

Modified: websites/staging/ace/trunk/content/docs.html
==============================================================================
--- websites/staging/ace/trunk/content/docs.html (original)
+++ websites/staging/ace/trunk/content/docs.html Tue Nov 25 07:43:22 2014
@@ -107,7 +107,8 @@ terminology, allowing precise control ov
 features are:</p>
 <ul>
 <li>being able to deploy software to many different targets;</li>
-<li>atomic upgrades: if an upgrade fails for a target, it is automatically rolled back to the former state;</li>
+<li>atomic upgrades: if an upgrade fails for a target, it is automatically rolled back to
+  the former state;</li>
 <li>deploy different configurations for different targets;</li>
 <li>smart redeployments of only the changed artifacts to your targets;</li>
 <li>complete control on the deployment strategy for your targets.</li>
@@ -121,27 +122,40 @@ background</a>.</p>
 <p>Resources that go into more detail on using Apache ACE:</p>
 <ul>
 <li>read all about using Apache ACE in the <a href="/docs/user-guide.html">users guide</a>;</li>
-<li>to manage users using ACE's web UI, read the <a href="/docs/user-management-guide.html">user management guide</a>;</li>
+<li>to manage users using ACE's web UI, read the <a href="/docs/user-management-guide.html">user management
+  guide</a>;</li>
 <li><a href="/docs/ace-roles.html">information about the various roles used in Apache ACE</a>;</li>
 <li>accessing Apache ACE <a href="/docs/shell-api.html">using the Gogo shell</a>;</li>
 <li>accessing Apache ACE from <a href="/docs/rest-api.html">its REST API</a>;</li>
-<li>to handle a large number of targets, you can make use of <a href="/docs/configuring-relay-servers.html">intermediate relay servers</a>;</li>
-<li>configuring ACE authentication is described in the <a href="/docs/ace-authentication.html">authentication guide</a>;</li>
-<li>configuring ACE to use two-way SSL is described in <a href="/docs/using-client-certificates.html">using client certificates</a>;</li>
-<li>various deployment strategies for Apache ACE are described in the <a href="/docs/ace-deployment-strategies.html">ACE deployment strategies document</a>;</li>
+<li>to handle a large number of targets, you can make use of <a href="/docs/configuring-relay-servers.html">intermediate relay
+  servers</a>;</li>
+<li>configuring ACE authentication is described in the <a href="/docs/ace-authentication.html">authentication
+  guide</a>;</li>
+<li>configuring ACE to use two-way SSL is described in <a href="/docs/using-client-certificates.html">using client
+  certificates</a>;</li>
+<li>various deployment strategies for Apache ACE are described in the <a href="/docs/ace-deployment-strategies.html">ACE deployment
+  strategies document</a>;</li>
 </ul>
 <h2 id="developing-for-apache-ace">Developing for Apache ACE</h2>
 <p>There are several resources available on extending and developing for Apache ACE, such as:</p>
 <ul>
-<li><a href="/docs/setup-dev-environment.html">setting up an development environment for developing for Apache ACE</a>;</li>
-<li>more details on writing unit and/or integration tests can be found in <a href="/docs/writing-tests.html">this document</a>;</li>
-<li>all about the coding style and guidelines can be found in the <a href="/docs/coding-standards.html">coding standards</a>;</li>
-<li>guidelines for releasing Apache ACE can be found in <a href="/docs/release-guide.html">the release guide</a>;</li>
-<li>more information about the architectural principals can be found in <a href="/docs/architecture.html">the architectural guide</a>;</li>
-<li>if you are interested in performing load tests, or want to get started with automating ACE deployments, read all about it in our <a href="/docs/test-script.html">test script document</a>;</li>
+<li><a href="/docs/setup-dev-environment.html">setting up an development environment for developing for Apache
+  ACE</a>;</li>
+<li>more details on writing unit and/or integration tests can be found in <a href="/docs/writing-tests.html">this
+  document</a>;</li>
+<li>all about the coding style and guidelines can be found in the <a href="/docs/coding-standards.html">coding
+  standards</a>;</li>
+<li>guidelines for releasing Apache ACE can be found in <a href="/docs/release-guide.html">the release
+  guide</a>;</li>
+<li>more information about the architectural principals can be found in <a href="/docs/architecture.html">the architectural
+  guide</a>;</li>
+<li>if you are interested in performing load tests, or want to get started with automating
+  ACE deployments, read all about it in our <a href="/docs/test-script.html">test script
+  document</a>;</li>
 <li>various use cases are described on the <a href="/docs/use-cases">use cases page</a>;</li>
 <li><a href="/docs/adding-custom-artifact-types.html">adding support for new types of artifacts</a>;</li>
-<li>detailed analysis documentation giving background information on some development principles currently used:</li>
+<li>detailed analysis documentation giving background information on some development
+  principles currently used:</li>
 <li><a href="/docs/analysis/auditlog-analysis.html">audit log analysis</a>;</li>
 <li><a href="/docs/analysis/bundlerepository-analysis.html">bundle repository analysis</a>;</li>
 <li><a href="/docs/analysis/security-analysis.html">security analysis</a>;</li>

Modified: websites/staging/ace/trunk/content/docs/ace-roles.html
==============================================================================
--- websites/staging/ace/trunk/content/docs/ace-roles.html (original)
+++ websites/staging/ace/trunk/content/docs/ace-roles.html Tue Nov 25 07:43:22 2014
@@ -101,25 +101,33 @@
       <p><a href="/"><i class='icon-home'></i> Home</a>&nbsp;&raquo&nbsp;<a href="/docs/">Docs</a></p>
       <h1>Roles</h1>
       <div class="clear"></div>
-      <div id="content"><p>These are the different roles in the system. Users of the system can be assigned one or more roles. The roles are also used in the different <a href="use-cases/">use cases</a>.</p>
+      <div id="content"><p>These are the different roles in the system. Users of the system can be assigned one or
+more roles. The roles are also used in the different <a href="/docs/use-cases/">use cases</a>.</p>
 <h2 id="release-manager">Release Manager</h2>
-<p>The release manager manages the software configuration, linking artifacts to features and features to distributions.</p>
+<p>The release manager manages the software configuration, linking artifacts to features and
+features to distributions.</p>
 <h2 id="target-manager">Target Manager</h2>
-<p>The target manager manages the total population of targets and assigns them to target operators.</p>
+<p>The target manager manages the total population of targets and assigns them to target
+operators.</p>
 <h2 id="target-operator">Target Operator</h2>
-<p>The target operator manages a (limited) set of targets designated to him by the target manager. He is responsible for accepting changes to the software configuration for those targets.</p>
+<p>The target operator manages a (limited) set of targets designated to him by the target
+manager. He is responsible for accepting changes to the software configuration for those
+targets.</p>
 <h2 id="remote-target-operator">Remote Target Operator</h2>
 <p>Like the target operator, the remote target operator manages a limited set of targets.</p>
 <h2 id="license-manager">License Manager</h2>
 <p>The license manager manages the relationship between the targets and the distributions.</p>
 <h2 id="administrator">Administrator</h2>
-<p>The administrator manages the users, system settings, rights and security certificates for the whole ecosystem.</p>
+<p>The administrator manages the users, system settings, rights and security certificates for
+the whole ecosystem.</p>
 <h2 id="target">Target</h2>
 <p>A target runs the management agent that is responsible for updating the target.</p>
 <h2 id="server">Server</h2>
-<p>The server manages all the metadata that expresses what artifacts should be installed on what targets over time. It also contains an OBR for managing the actual artifacts.</p>
+<p>The server manages all the metadata that expresses what artifacts should be installed on
+what targets over time. It also contains an OBR for managing the actual artifacts.</p>
 <h2 id="relay-server">Relay server</h2>
-<p>The relay server acts as a cache for the server. It synchronizes with the server and might only contain a subset of the metadata to service a subset of the targets.</p>
+<p>The relay server acts as a cache for the server. It synchronizes with the server and might
+only contain a subset of the metadata to service a subset of the targets.</p>
 <h2 id="software-developer">Software Developer</h2>
 <p>The software developer provides artifacts that will be added to the OBR.</p></div>
       <hr>

Modified: websites/staging/ace/trunk/content/docs/history-and-background.html
==============================================================================
--- websites/staging/ace/trunk/content/docs/history-and-background.html (original)
+++ websites/staging/ace/trunk/content/docs/history-and-background.html Tue Nov 25 07:43:22 2014
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html lang="en">
   <head>
-    <title>Introduction</title>
+    <title>History and background</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">
@@ -99,7 +99,7 @@
     </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>
+      <h1>History and background</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
@@ -120,12 +120,12 @@ components and targets grows, and this i
 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>
+   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>
+   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>
+   that on a central server.</li>
 </ol>
 <p>A typical topology consists of:</p>
 <ul>
@@ -136,7 +136,9 @@ that on a central server.</li>
 <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>
+itself and poll for updates. If an update is found, the agent will download and install it
+using the Deployment Admin specifiction, allowing for rollbacks to the previous installed
+version in case the installation fails.</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>

Modified: websites/staging/ace/trunk/content/docs/user-guide.html
==============================================================================
--- websites/staging/ace/trunk/content/docs/user-guide.html (original)
+++ websites/staging/ace/trunk/content/docs/user-guide.html Tue Nov 25 07:43:22 2014
@@ -144,13 +144,12 @@ repository, like the Maven repository or
 versions of artifacts<sup id="fnref:1"><a class="footnote-ref" href="#fn:1" rel="footnote">1</a></sup>. You can use either the default <abbr title="OSGi Bundle Repository">OBR</abbr> supplied by ACE or an
 external one, such as <a href="http://books.sonatype.com/nexus-book/reference/osgi-sect-hosted.html">Sonatype's
 Nexus</a> for storing
-your artifacts.<br />
-As the <abbr title="OSGi Bundle Repository">OBR</abbr> is the <em>single source</em> for all artifacts, and therefore the software that is
-deployed on a target, ACE is able to calculate how to upgrade a target from one version to
-another version. This is possible because <em>all</em> changes made to (the metadata of) ACE are
-stored in an internal versioned database. In other words, ACE always keeps a full history
-and audit trail for all changes, making it possible to go back and forth between versions
-deployed on each target.</p>
+your artifacts.  As the <abbr title="OSGi Bundle Repository">OBR</abbr> is the <em>single source</em> for all artifacts, and therefore the
+software that is deployed on a target, ACE is able to calculate how to upgrade a target
+from one version to another version. This is possible because <em>all</em> changes made to (the
+metadata of) ACE are stored in an internal versioned database. In other words, ACE always
+keeps a full history and audit trail for all changes, making it possible to go back and
+forth between versions deployed on each target.</p>
 <h2 id="use-cases-and-workflow">Use cases and workflow</h2>
 <p>The typical use case for using ACE is where you want to control and manage which software
 runs on what target. So, how does one use ACE in practice? To explain the typical workflow
@@ -188,40 +187,40 @@ greatest official release to the accepta
 After that, he can repurpose it again. Another scenario obviously is that users setup
 dedicated targets for the purpose of acceptance testing.</p>
 <p>When all acceptance tests are successful, the new version of your software needs to be
-deployed on several production environments, which is done by you, the release manager. As
-most production environments only differ in a few details, such as IP addresses and maybe
-the database credentials, you use the template engine of ACE to make specific
-configuration files for each production target. This way, you can easily scale up your
-production environment by defining new targets and provide them with the necessary
+deployed on several production environments, which is done by you, the release
+manager<sup id="fnref:2"><a class="footnote-ref" href="#fn:2" rel="footnote">2</a></sup>. As most production environments only differ in a few details, such as IP
+addresses and maybe the database credentials, you use the template engine of ACE to make
+specific configuration files for each production target. This way, you can easily scale up
+your production environment by defining new targets and provide them with the necessary
 configuration values.</p>
 <h3 id="workflow">Workflow</h3>
 <p>Apache ACE can be used in many different workflows, which makes it rather difficult for
 new users to comprehend to use ACE to its full extent. By default, that is, without any
 configuration, the workflow of ACE is as follows (see also figure 1):</p>
 <ol>
-<li>a "release manager" (either you, or somebody designated to that role), ensures that the
-targets are defined. This is where the software is deployed and running. You can predefine
-each target using the ACE web UI, or start each target (and configure them properly to
-contact your ACE server) and make them appear automatically in your workspace (you might
-need to refresh your workspace before targets appear in the web UI);</li>
+<li>a release manager<sup id="fnref:2"><a class="footnote-ref" href="#fn:2" rel="footnote">2</a></sup>, ensures that the targets are defined. This is where the software
+   is deployed and running. You can predefine each target using the ACE web UI, or start
+   each target (and configure them properly to contact your ACE server) and make them
+   appear automatically in your workspace (you might need to refresh your workspace before
+   targets appear in the web UI);</li>
 <li>the release manager defines the features and distributions that need to be deployed. In
-the simplest case, you can define only one feature and distribution, but go also define
-much more fine-grained features and distributions if needed. The easiest way to define
-features and distributions and to link them to each other is by using the ACE web UI. This
-allows you to simply use the "add" buttons and drag-and-drop to achieve this;</li>
+   the simplest case, you can define only one feature and distribution, but go also define
+   much more fine-grained features and distributions if needed. The easiest way to define
+   features and distributions and to link them to each other is by using the ACE web UI.
+   This allows you to simply use the "add" buttons and drag-and-drop to achieve this;</li>
 <li>the artifacts are added to your <abbr title="OSGi Bundle Repository">OBR</abbr>. This can be done by uploading them through on of
-the ACE clients, for example, the web UI. Once uploaded, the artifacts need to be linked
-to features in order to be deployed to targets. Again, the ACE web UI makes this easy by
-simply using drag-and-drop to link artifacts to features;</li>
+   the ACE clients, for example, the web UI. Once uploaded, the artifacts need to be
+   linked to features in order to be deployed to targets. Again, the ACE web UI makes this
+   easy by simply using drag-and-drop to link artifacts to features;</li>
 <li>the next time the target contacts the ACE server, it will retrieve the configured
-distribution(s);</li>
+   distribution(s);</li>
 <li>If you linked artifacts to features using the ACE web UI, it will create "wildcard"
-assocations, meaning that it will automatically use the latest version available for each
-artifact. This means that if you update <em>existing</em> artifacts in the <abbr title="OSGi Bundle Repository">OBR</abbr>, ACE will
-automatically deploy them to all affected targets. If you add new artifacts, you need to
-link them to existing or new features and distributions to deploy them.</li>
+   assocations, meaning that it will automatically use the latest version available for
+   each artifact. This means that if you update <em>existing</em> artifacts in the <abbr title="OSGi Bundle Repository">OBR</abbr>, ACE will
+   automatically deploy them to all affected targets. If you add new artifacts, you need
+   to link them to existing or new features and distributions to deploy them.</li>
 </ol>
-<p><a href="simple-workflow.png" target="_blank"><img src="simple-workflow.png" height="250px" title="Figure 1: Typical ACE workflow." /></a><br />
+<p><a href="simple-workflow.png" target="_blank"><img src="simple-workflow.png" width="149" height="250" title="Figure 1: Typical ACE workflow." /></a><br />
 <strong>Figure 1</strong>: A graphical overview of a typical workflow of ACE (click on image to see full size).</p>
 <!-- TODO: describe how you can extend/customize the workflow -->
 
@@ -233,12 +232,12 @@ familiar with it, you'll see that it is 
 <p>After logging in, the main window consists of two main areas:</p>
 <ol>
 <li>The control area at the top of the screen, where you can perform actions like
-retrieving the latest repository changes, revert the changes you've made locally, add new
-artifacts, and so on;</li>
+   retrieving the latest repository changes, revert the changes you've made locally, add
+   new artifacts, and so on;</li>
 <li>The resource area, consisting of (up to) four columns showing the current artifacts,
-features, distributions and targets that are known to ACE. When you select an entity here,
-the associated entities in other columns will automatically be highlighted, giving you an
-instant overview of the links within the system.</li>
+   features, distributions and targets that are known to ACE. When you select an entity
+   here, the associated entities in other columns will automatically be highlighted,
+   giving you an instant overview of the links within the system.</li>
 </ol>
 <p>Apache ACE allows for concurrent use at every aspect. Many targets can request different
 versions of software that need to be served, while at the same time one or more users are
@@ -269,9 +268,9 @@ the list of selected artifacts) and a li
 allows you to upload artifacts, and offers two options to do so:</p>
 <ol>
 <li>by uploading the individual artifacts by pressing the "Upload" button and selecting the
-artifact from the file chooser dialog, or;</li>
+   artifact from the file chooser dialog, or;</li>
 <li>by using drag-and-drop: select all artifacts in an Explorer or Finder and drag them
-onto the "Upload artifact" area. This way, you can upload multiple artifacts in one go.</li>
+   onto the "Upload artifact" area. This way, you can upload multiple artifacts in one go.</li>
 </ol>
 <p>If you try to upload an artifact that is not recognized by ACE, a failure notification is
 displayed noting that that particular artifact is not uploaded (see figure 5). Adding
@@ -305,10 +304,10 @@ name of the feature or distribution and 
 <p>To define a new target in the ACE web UI, you can do either:</p>
 <ol>
 <li>pre-register a target by clicking the "+" button above the targets column and entering
-the name of the new target. This allows you to associate software to this target before it
-has ever been started or seen by the server; or,</li>
+   the name of the new target. This allows you to associate software to this target before
+   it has ever been started or seen by the server; or,</li>
 <li>you can register a target that is already running and has already tried to fetch
-software from the ACE server. The details on this will be discussed later on.</li>
+   software from the ACE server. The details on this will be discussed later on.</li>
 </ol>
 <p>After a feature, distribution or target is created, you can edit its properties by double
 clicking it. For features and distributions, this means you can alter their description,
@@ -352,7 +351,7 @@ associated to the feature.</p>
 <strong>Figure 7</strong>: Creating a static association by dragging a particular version of a bundle onto a feature.</p>
 <p>Creating dynamic associations is currently only supported for bundle artifacts. For other
 types of artifacts, such as configuration files, only static associations can be
-created<sup id="fnref:2"><a class="footnote-ref" href="#fn:2" rel="footnote">2</a></sup>. </p>
+created<sup id="fnref:4"><a class="footnote-ref" href="#fn:4" rel="footnote">4</a></sup>. </p>
 <h3 id="configuring-the-server">Configuring the server</h3>
 <p>The ACE server is completely modular and therefore can be configured in many different
 ways. As such, the configuration of the server is done by using the Configuration Admin
@@ -382,10 +381,10 @@ available in the ACE source repository a
 The management agent, or agent for short, does the following:</p>
 <ol>
 <li>it uploads the audit log of the target to the ACE server. The audit log contains all
-changes in bundle and framework state, such as the starting and stopping of the framework
-and (de)installation of bundles;</li>
+   changes in bundle and framework state, such as the starting and stopping of the
+   framework and (de)installation of bundles;</li>
 <li>it check whether or not software updates are available. If so, it will download it and
-install this update automatically.</li>
+   install this update automatically.</li>
 </ol>
 <p>To run a target, you need to issue the following command:</p>
 <div class="codehilite"><pre><span class="nv">$ </span>java <span class="se">\</span>
@@ -400,7 +399,7 @@ Welcome to Apache Felix Gogo
 
 <h3 id="target-configuration">Target configuration</h3>
 <p>The agent can be configured by supplying its options as commandline parameters (e.g.
-<tt>-Dname=value</tt>). A list of most used options are<sup id="fnref:7"><a class="footnote-ref" href="#fn:7" rel="footnote">7</a></sup>:</p>
+<tt>-Dname=value</tt>). A list of most used options are<sup id="fnref:8"><a class="footnote-ref" href="#fn:8" rel="footnote">8</a></sup>:</p>
 <dl>
 <dt><tt>agent.identification.agentid</tt></dt>
 <dd>
@@ -550,7 +549,7 @@ specific configuration files for each ta
 you have lots of targets. Besides that, ACE requires that each artifact has a unique name,
 so you need to create unique file names for your configuration files for each change you
 make. Fortunately, ACE provides an easier way to solve this problem: a template engine.</p>
-<p>All configuration files<sup id="fnref:4"><a class="footnote-ref" href="#fn:4" rel="footnote">4</a></sup> can be regarded as templates, in which variables are replaced
+<p>All configuration files<sup id="fnref:5"><a class="footnote-ref" href="#fn:5" rel="footnote">5</a></sup> can be regarded as templates, in which variables are replaced
 with values supplied by ACE. In fact, the values are definable per target, distribution,
 feature or artifact and ACE will collect all tags of entities that are associated with a
 specific target. To define variables and their replacement values (or "tags") for, for
@@ -581,7 +580,7 @@ be replaced. The <tt>context.</tt> (incl
 after this prefix is user-definable and considered as variable name. In this example, two
 variables are expected: <tt>address</tt> and <tt>port</tt>. The values for these variables
 can be added to entities by using the "Tag Editor", available when you double click on an
-artifact, feature, distribution or target in the web UI<sup id="fnref:5"><a class="footnote-ref" href="#fn:5" rel="footnote">5</a></sup>. It does not really matter on
+artifact, feature, distribution or target in the web UI<sup id="fnref:6"><a class="footnote-ref" href="#fn:6" rel="footnote">6</a></sup>. It does not really matter on
 what entity the variables are actually defined, but in most cases they are either defined
 on a distribution and/or target.</p>
 <p>Suppose we want to deploy the aforementioned configuration file to two targets,
@@ -600,7 +599,7 @@ figure 7):</p>
 </ul>
 <p><img src="ace_target_tag_editor.png" width="600px" title="Figure 8: Using the Tag Editor of a target to supply configuration variables." /><br />
 <strong>Figure 8</strong>: Using the Tag Editor of a target to supply configuration variables.</p>
-<p>Under the covers, ACE uses Velocity<sup id="fnref:6"><a class="footnote-ref" href="#fn:6" rel="footnote">6</a></sup> to parse the template. This means that, apart from
+<p>Under the covers, ACE uses Velocity<sup id="fnref:7"><a class="footnote-ref" href="#fn:7" rel="footnote">7</a></sup> to parse the template. This means that, apart from
 variable substitution, you can also use other Velocity macros and create more complex
 configurations that might contain conditional sections, loops and other features Velocity
 provides. See the Velocity documentation for more information on how to use this
@@ -623,27 +622,31 @@ the way that Maven handles snapshot vers
 usually use the version qualifier to append a timestamp in such scenarios.&#160;<a class="footnote-backref" href="#fnref:1" rev="footnote" title="Jump back to footnote 1 in the text">&#8617;</a></p>
 </li>
 <li id="fn:2">
-<p>This is a limitation of the current web UI. It is possible to create more
-sophisticated associations by using the REST API or the Gogo shell commands.&#160;<a class="footnote-backref" href="#fnref:2" rev="footnote" title="Jump back to footnote 2 in the text">&#8617;</a></p>
+<p>To read more about the various roles used in Apache ACE, see <a href="/docs/ace-roles.html">this
+page</a>;&#160;<a class="footnote-backref" href="#fnref:2" rev="footnote" title="Jump back to footnote 2 in the text">&#8617;</a></p>
 </li>
 <li id="fn:3">
-<p>Do not forget to store your changes!&#160;<a class="footnote-backref" href="#fnref:3" rev="footnote" title="Jump back to footnote 3 in the text">&#8617;</a></p>
+<p>This is a limitation of the current web UI. It is possible to create more
+sophisticated associations by using the REST API or the Gogo shell commands.&#160;<a class="footnote-backref" href="#fnref:3" rev="footnote" title="Jump back to footnote 3 in the text">&#8617;</a></p>
 </li>
 <li id="fn:4">
-<p>In fact any artifact can be considered as an template, but by default ACE only
-considers configuration files. &#160;<a class="footnote-backref" href="#fnref:4" rev="footnote" title="Jump back to footnote 4 in the text">&#8617;</a></p>
+<p>Do not forget to store your changes!&#160;<a class="footnote-backref" href="#fnref:4" rev="footnote" title="Jump back to footnote 4 in the text">&#8617;</a></p>
 </li>
 <li id="fn:5">
-<p>In other UIs, such as the Gogo shell, you need to supply these tags manually.&#160;<a class="footnote-backref" href="#fnref:5" rev="footnote" title="Jump back to footnote 5 in the text">&#8617;</a></p>
+<p>In fact any artifact can be considered as an template, but by default ACE only
+considers configuration files. &#160;<a class="footnote-backref" href="#fnref:5" rev="footnote" title="Jump back to footnote 5 in the text">&#8617;</a></p>
 </li>
 <li id="fn:6">
+<p>In other UIs, such as the Gogo shell, you need to supply these tags manually.&#160;<a class="footnote-backref" href="#fnref:6" rev="footnote" title="Jump back to footnote 6 in the text">&#8617;</a></p>
+</li>
+<li id="fn:7">
 <p>Apache Velocity is an engine that can generate documents by combining a template
 with a context that contains variables. To learn more about it, visit the <a href="http://velocity.apache.org/">Velocity
-website</a>.&#160;<a class="footnote-backref" href="#fnref:6" rev="footnote" title="Jump back to footnote 6 in the text">&#8617;</a></p>
+website</a>.&#160;<a class="footnote-backref" href="#fnref:7" rev="footnote" title="Jump back to footnote 7 in the text">&#8617;</a></p>
 </li>
-<li id="fn:7">
+<li id="fn:8">
 <p>A complete list of recognised options can be found in
-<a href="https://svn.apache.org/repos/asf/ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/AgentConstants.java"><tt>org.apache.ace.agent.AgentConstants</tt></a>.&#160;<a class="footnote-backref" href="#fnref:7" rev="footnote" title="Jump back to footnote 7 in the text">&#8617;</a></p>
+<a href="https://svn.apache.org/repos/asf/ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/AgentConstants.java"><tt>org.apache.ace.agent.AgentConstants</tt></a>.&#160;<a class="footnote-backref" href="#fnref:8" rev="footnote" title="Jump back to footnote 8 in the text">&#8617;</a></p>
 </li>
 </ol>
 </div></div>