You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bu...@apache.org on 2015/09/22 12:23:33 UTC

svn commit: r966334 [2/11] - in /websites/staging/sling/trunk/content: ./ documentation/ documentation/bundles/ documentation/bundles/scripting/ documentation/development/ documentation/getting-started/ documentation/legacy/ documentation/the-sling-eng...

Modified: websites/staging/sling/trunk/content/documentation/bundles/discovery-api-and-impl.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/bundles/discovery-api-and-impl.html (original)
+++ websites/staging/sling/trunk/content/documentation/bundles/discovery-api-and-impl.html Tue Sep 22 10:23:16 2015
@@ -18,11 +18,11 @@
     limitations under the License.
 -->
   <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
     <title>Apache Sling - Discovery API and its implementations</title>
     <link rel="icon" href="/res/favicon.ico">
     <link rel="stylesheet" href="/res/site.css" type="text/css" media="all">
     <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all">
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
   </head>
   <body>
     <div class="title">
@@ -39,7 +39,18 @@
     </div>
     
     <div class="menu"> 
-      <p><strong><a href="/documentation.html">Documentation</a></strong> <br />
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p><strong><a href="/documentation.html">Documentation</a></strong> <br />
 <a href="/documentation/getting-started.html">Getting Started</a> <br />
 <a href="/documentation/the-sling-engine.html">The Sling Engine</a> <br />
 <a href="/documentation/development.html">Development</a> <br />
@@ -90,7 +101,18 @@
       
       
       <h1>Discovery API and its implementations</h1>
-      <p>In many situations a particular Sling-based deployment consists of several Sling instances:
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p>In many situations a particular Sling-based deployment consists of several Sling instances:
 typically a number of instances would form a <code>cluster</code> that share a common content repository - 
 in other situations, or additionally, instances might be loosely coupled, each with their own repository.</p>
 <p>The <code>discovery-api</code> bundle introduces an abstraction for such scenarios called <code>topology</code>. It provides
@@ -112,7 +134,7 @@ instances) and contains a simple propert
 </li>
 </ul>
 </div>
-<h2 id="topology">Topology</h2>
+<h2 id="topology">Topology<a class="headerlink" href="#topology" title="Permanent link">&para;</a></h2>
 <p>The topology - or more precisely the <code>TopologyView</code> - represents a snapshot (<code>view</code>) of a number of loosely coupled Sling instances (<code>InstanceDescription</code>)
 and clusters (<code>ClusterView</code>) of a particular deployment. A cluster can consist of one or more instances. Each instance
 is always part of a cluster (even if the cluster consists of only one instance). 
@@ -120,7 +142,7 @@ Each instance and cluster has an identif
 Other than this cluster-instance relation there is no further
 assumption made on the structure of a topology. Therefore if the actual structure is of a different shape (such as a tree)
 this would have to be managed separately.</p>
-<h2 id="cluster-leader-and-instance-ordering">Cluster Leader and Instance Ordering</h2>
+<h2 id="cluster-leader-and-instance-ordering">Cluster Leader and Instance Ordering<a class="headerlink" href="#cluster-leader-and-instance-ordering" title="Permanent link">&para;</a></h2>
 <p>The discovery API introduces support for a <code>cluster leader</code>: within each cluster, the API guarantees that one and only one
 instance is leader at any time. That leader is guaranteed to be <code>stable</code>, ie as long as it stays alive and is visible
 by other instances of the same cluster, it will stay leader. As soon as it leaves the cluster (or the corresponding
@@ -129,7 +151,7 @@ deal with work that must be guaranteed t
 <p>Additionally each cluster (<code>ClusterView</code>) orders its instances in a stable list: each newly joined instances is added
 at the end of the list and retains its order in the list as long as it doesn't leave the cluster. This can be used
 to distribute "singleton" work amongst the cluster to more than just the leader. </p>
-<h2 id="topology-changes">Topology Changes</h2>
+<h2 id="topology-changes">Topology Changes<a class="headerlink" href="#topology-changes" title="Permanent link">&para;</a></h2>
 <p>The <code>DiscoveryService</code> provides access to the currently valid <code>TopologyView</code>. Additionally, applications can 
 register a <code>TopologyEventListener</code> and thus be informed about any changes in the topology. Whenever the discovery
 service detects that an instance is no longer responding or has newly joined, or a new leader has been elected, 
@@ -157,7 +179,7 @@ sends a <code>TOPOLOGY_CHANGED</code> ev
 </pre></div>
 
 
-<h2 id="properties">Properties</h2>
+<h2 id="properties">Properties<a class="headerlink" href="#properties" title="Permanent link">&para;</a></h2>
 <p>The discovery API not only lists all clusters and instances that are part of a topology but also provides a simple
 mechanism for announcing properties of each instance to the topology, via the <code>PropertyProvider</code> service interface.</p>
 <p>Typical use cases for this are announcements of endpoint URLs or ports such that applications can communicate to other
@@ -189,27 +211,27 @@ meant to be used to announce configurati
 </pre></div>
 
 
-<h2 id="deployment-and-configuration">Deployment and configuration</h2>
+<h2 id="deployment-and-configuration">Deployment and configuration<a class="headerlink" href="#deployment-and-configuration" title="Permanent link">&para;</a></h2>
 <p>The discovery API makes no assumptions as to how the instances and clusters discover each other. This is entirely
 up to the implementations. Some might choose automatic discovery within a LAN using IP multicast, others
 might choose explicit configuration via a central service etc.</p>
-<h2 id="discoveryimpl-resource-based-ootb-implementation">discovery.impl: Resource-based, OOTB Implementation</h2>
+<h2 id="discoveryimpl-resource-based-ootb-implementation">discovery.impl: Resource-based, OOTB Implementation<a class="headerlink" href="#discoveryimpl-resource-based-ootb-implementation" title="Permanent link">&para;</a></h2>
 <p>The <code>discovery.impl</code> bundle is a resource-based, out of the box implementation of the <code>discovery.api</code> using standard Sling. 
 The discovery within a cluster is done by writing heartbeat information into the (common) repository. The establishment of a 
 clusterview is done by analyzing these heartbeats, initiating a voting within the cluster (such that each instance can agree
 that it sees the same number of instances) and by concluding the voting by promoting it as the new "established" view.</p>
-<h3 id="location-in-repository">Location in Repository</h3>
+<h3 id="location-in-repository">Location in Repository<a class="headerlink" href="#location-in-repository" title="Permanent link">&para;</a></h3>
 <p>Administrative note: All the information about the topology is stored at the following location in the repository:</p>
 <div class="codehilite"><pre><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">discovery</span><span class="o">/</span><span class="n">impl</span>
 </pre></div>
 
 
-<h3 id="connectors">Connectors</h3>
+<h3 id="connectors">Connectors<a class="headerlink" href="#connectors" title="Permanent link">&para;</a></h3>
 <p>The "cross-cluster" announcement is done via HTTP(s) heartbeats between (arbitrary) cluster instances. These HTTP heartbeats
 (internally termed <code>connectors</code>) are configured at <a href="http://localhost:8888/system/console/configMgr/org.apache.sling.discovery.impl.Config">/system/console/configMgr/org.apache.sling.discovery.impl.Config</a>.</p>
-<h3 id="webconsole">WebConsole</h3>
+<h3 id="webconsole">WebConsole<a class="headerlink" href="#webconsole" title="Permanent link">&para;</a></h3>
 <p>A Felix WebConsole plugin at <a href="http://localhost:8888/system/console/topology">/system/console/topology</a> provides a (read-only) overview of the topology.</p>
-<h3 id="configuration">Configuration</h3>
+<h3 id="configuration">Configuration<a class="headerlink" href="#configuration" title="Permanent link">&para;</a></h3>
 <p>The following properties can be configured (at <a href="http://localhost:8888/system/console/configMgr/org.apache.sling.discovery.impl.Config">/system/console/configMgr/org.apache.sling.discovery.impl.Config</a>):</p>
 <ul>
 <li>

Modified: websites/staging/sling/trunk/content/documentation/bundles/file-installer-provider.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/bundles/file-installer-provider.html (original)
+++ websites/staging/sling/trunk/content/documentation/bundles/file-installer-provider.html Tue Sep 22 10:23:16 2015
@@ -18,11 +18,11 @@
     limitations under the License.
 -->
   <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
     <title>Apache Sling - File Installer Provider</title>
     <link rel="icon" href="/res/favicon.ico">
     <link rel="stylesheet" href="/res/site.css" type="text/css" media="all">
     <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all">
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
   </head>
   <body>
     <div class="title">
@@ -39,7 +39,18 @@
     </div>
     
     <div class="menu"> 
-      <p><strong><a href="/documentation.html">Documentation</a></strong> <br />
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p><strong><a href="/documentation.html">Documentation</a></strong> <br />
 <a href="/documentation/getting-started.html">Getting Started</a> <br />
 <a href="/documentation/the-sling-engine.html">The Sling Engine</a> <br />
 <a href="/documentation/development.html">Development</a> <br />
@@ -90,10 +101,21 @@
       
       
       <h1>File Installer Provider</h1>
-      <p>The file installer provider scans configured directories and provides the found artifacts (files) to the <a href="/documentation/bundles/osgi-installer.html">OSGI installer</a>. The functionality is very similar to Apache Felix FileInstall, with the major difference that this service implements just the task of scanning a file directory. All the management logic is implemented in the OSGi installer and support of various artifact types like bundles, configurations or custom formats is implemented by plugins for the OSGi installer.</p>
-<h2 id="setup">Setup</h2>
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p>The file installer provider scans configured directories and provides the found artifacts (files) to the <a href="/documentation/bundles/osgi-installer.html">OSGI installer</a>. The functionality is very similar to Apache Felix FileInstall, with the major difference that this service implements just the task of scanning a file directory. All the management logic is implemented in the OSGi installer and support of various artifact types like bundles, configurations or custom formats is implemented by plugins for the OSGi installer.</p>
+<h2 id="setup">Setup<a class="headerlink" href="#setup" title="Permanent link">&para;</a></h2>
 <p>The file installer can be configured with these framework (system) properties:</p>
-<table>
+<table class="table">
 <thead>
 <tr>
 <th>Property</th>
@@ -119,17 +141,17 @@
 </tr>
 </tbody>
 </table>
-<h2 id="bundles">Bundles</h2>
+<h2 id="bundles">Bundles<a class="headerlink" href="#bundles" title="Permanent link">&para;</a></h2>
 <p>Bundles are supported by the OSGi installer. If a bundle jar is added to a scanned directory, this bundle is installed. If the file is updated/changed, the bundle is updated. If the file is removed, the bundle gets removed.
 Of course, these are the simple rules. The actual action depends by the overall state of the system and is controlled by the OSGi installer. For example if already the same bundle with a higher version is installed, when a bundle is dropped into the install folder, the OSGi installer will perform no operation.</p>
 <p>Start levels are supported as well by creating a directory with the name of the start level within the scan directory and putting the bundles within this directory. For example, if the 'install' folder is scanned, the bundle 'install/3/mybundle.jar' will be installed with start level 3. Without such a directory the default start level is used.</p>
-<h2 id="configurations">Configurations</h2>
+<h2 id="configurations">Configurations<a class="headerlink" href="#configurations" title="Permanent link">&para;</a></h2>
 <p>Configurations are handled by the <a href="/documentation/bundles/configuration-installer-factory.html">Configuration Installer Factory</a>. The different formats are described there.</p>
-<h2 id="custom-artifacts">Custom Artifacts</h2>
+<h2 id="custom-artifacts">Custom Artifacts<a class="headerlink" href="#custom-artifacts" title="Permanent link">&para;</a></h2>
 <p>Custom artifacts are handled by the OSGi installer depending on the installed plugins. Have a look at the OSGi installer and it's plugins for more information.</p>
-<h2 id="runmode-support">Runmode Support</h2>
+<h2 id="runmode-support">Runmode Support<a class="headerlink" href="#runmode-support" title="Permanent link">&para;</a></h2>
 <p>The file installer supports run modes for installing artifacts. Within the scanned directory, a folder named with the run mode will only provisioning these artifacts if the respective run mode is active. If an artifact is associated with several run modes, the name of the directory contains all of them separated by a dot, for example <em>a1.dev</em>.</p>
-<h1 id="project-info">Project Info</h1>
+<h1 id="project-info">Project Info<a class="headerlink" href="#project-info" title="Permanent link">&para;</a></h1>
 <ul>
 <li>File installer provider (<a href="http://svn.apache.org/repos/asf/sling/trunk/installer/providers/file">org.apache.sling.installer.provider.file</a>)</li>
 </ul>

Modified: websites/staging/sling/trunk/content/documentation/bundles/internationalization-support-i18n.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/bundles/internationalization-support-i18n.html (original)
+++ websites/staging/sling/trunk/content/documentation/bundles/internationalization-support-i18n.html Tue Sep 22 10:23:16 2015
@@ -18,11 +18,11 @@
     limitations under the License.
 -->
   <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
     <title>Apache Sling - Internationalization Support (i18n)</title>
     <link rel="icon" href="/res/favicon.ico">
     <link rel="stylesheet" href="/res/site.css" type="text/css" media="all">
     <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all">
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
   </head>
   <body>
     <div class="title">
@@ -39,7 +39,18 @@
     </div>
     
     <div class="menu"> 
-      <p><strong><a href="/documentation.html">Documentation</a></strong> <br />
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p><strong><a href="/documentation.html">Documentation</a></strong> <br />
 <a href="/documentation/getting-started.html">Getting Started</a> <br />
 <a href="/documentation/the-sling-engine.html">The Sling Engine</a> <br />
 <a href="/documentation/development.html">Development</a> <br />
@@ -90,7 +101,18 @@
       
       
       <h1>Internationalization Support (i18n)</h1>
-      <p>Internationalization support in Sling consists of four methods in the <code>SlingHttpServletRequest</code> interface:</p>
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p>Internationalization support in Sling consists of four methods in the <code>SlingHttpServletRequest</code> interface:</p>
 <ul>
 <li><code>getLocale()</code> -- Returns the primary <code>Locale</code> for the current request. This method is inherited from the <code>javax.servlet.ServletRequest</code> interface.</li>
 <li><code>getLocales()</code> -- Returns the <code>Locale</code> instances for the current request. This method is inherited from the <code>javax.servlet.ServletRequest</code> interface.</li>
@@ -98,7 +120,7 @@
 <li><code>getResourceBundle(String, Locale)</code> -- Returns a <code>ResourceBundle</code> of a given base name for the given <code>Locale</code>. This method is specific to Sling.</li>
 </ul>
 <p>These methods have a default implementation in the <code>org.apache.sling.core</code> bundle and an extended and extensible implementation in the <code>org.apache.sling.i18n</code> bundle.</p>
-<h2 id="default-implementation-in-the-orgapacheslingengine-bundle">Default Implementation in the <code>org.apache.sling.engine</code> Bundle</h2>
+<h2 id="default-implementation-in-the-orgapacheslingengine-bundle">Default Implementation in the <code>org.apache.sling.engine</code> Bundle<a class="headerlink" href="#default-implementation-in-the-orgapacheslingengine-bundle" title="Permanent link">&para;</a></h2>
 <p>The default implementation of the above mentioned four methods in the Sling Engine bundle is contained in the bundle-private class <code>org.apache.sling.engine.impl.SlingHttpServletRequestImpl</code> which is the primary implementation of the <code>SlingHttpServletRequest</code> interface:</p>
 <ul>
 <li><code>getLocale()</code> -- Returns the <code>Locale</code> from the request object of the servlet container in which Sling is running. As per the Servlet API specification, this is either the primary Locale of the <code>Accept-Language</code> request header or the server default locale.</li>
@@ -107,7 +129,7 @@
 <li><code>getResourceBundle(String, Locale)</code> -- Returns a <code>ResourceBundle</code> whose <code>getString(String key)</code> method returns the <code>key</code> as the message and whose <code>getKeys()</code> method returns an empty <code>Enumeration</code>.</li>
 </ul>
 <p>NOTE: Unlike the default implementations of the <code>ResourceBundle</code> abstract class in the Java Runtime -- <code>PropertyResourceBundle</code> and <code>ListResourceBundle</code> -- the <code>ResourceBundle</code> returned by the default implementation of the <code>getResourceBundle(Locale)</code> and <code>getResourceBundle(String, Locale)</code> always returns a string message for any key, which is the key itself. This prevents throwing <code>MissingResourceException</code>.</p>
-<h2 id="extensible-implementation-in-the-orgapacheslingi18n-bundle">Extensible Implementation in the <code>org.apache.sling.i18n</code> Bundle</h2>
+<h2 id="extensible-implementation-in-the-orgapacheslingi18n-bundle">Extensible Implementation in the <code>org.apache.sling.i18n</code> Bundle<a class="headerlink" href="#extensible-implementation-in-the-orgapacheslingi18n-bundle" title="Permanent link">&para;</a></h2>
 <p>The <code>org.apache.sling.i18n</code> Bundle implements a request level <code>Filter</code> providing extensible implementations of the above mentioned three methods. Extensibility is attained by defining two service interfaces:</p>
 <ul>
 <li>
@@ -117,18 +139,18 @@
 <p><code>ResourceBundleProvider</code> -- The <code>ResourceBundleProvider</code> interface defines two methods to acquire a <code>ResourceBundle</code> for any <code>Locale</code> and an optional base name. This service interface is not intended to be implemented outside of the sling.i18n bundle: A JCR Repository based implementation is contained in the sling.i18n bundle. The <code>ResourceBundleProvider</code> service is not only used within the sling.i18n bundle to implement the <code>SlingHttpServletRequest.getResourceBundle(Locale)</code> and  <code>SlingHttpServletRequest.getResourceBundle(String, Locale)</code> methods. The service may also be used by Sling applications to acquire <code>ResourceBundle</code> instances without having a request object by getting the service and calling its <code>getResourceBundle(Locale)</code> or <code>getResourceBundle(String, Locale)</code> method directly.</p>
 </li>
 </ul>
-<h3 id="jcr-repository-based-resourcebundleprovider">JCR Repository based <code>ResourceBundleProvider</code></h3>
+<h3 id="jcr-repository-based-resourcebundleprovider">JCR Repository based <code>ResourceBundleProvider</code><a class="headerlink" href="#jcr-repository-based-resourcebundleprovider" title="Permanent link">&para;</a></h3>
 <p>The sling.i18n Bundle provides the implementation of the <code>ResourceBundleProvider</code> interface, which may also be used outside of Sling requests for service tasks. This implementation gets the messages from a JCR Repository stored below nodes of the mixin node type <code>mix:language</code>. These language nodes have a <code>jcr:language</code> property naming the language of the resources. In the context of the JCR based <code>ResourceBundleProvider</code> this is of course expected to be the string value of respective <code>Locale</code>. The format may either be the format as described in <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Locale.html#toString%28%29">Locale.toString</a> or as described in <a href="https://www.ietf.org/rfc/rfc4646.txt">RFC4646</a> (both formats are also accepted in lower-case).</p>
 <p>The exact location of these nodes is not relevant as the <code>ResourceBundleProvider</code> finds them by applying a JCR search.</p>
 <p>Two different types of storage formats are supported for the individual dictionaries</p>
-<h4 id="slingmessageentry-based"><code>sling:MessageEntry</code> based</h4>
+<h4 id="slingmessageentry-based"><code>sling:MessageEntry</code> based<a class="headerlink" href="#slingmessageentry-based" title="Permanent link">&para;</a></h4>
 <p>The (direct) child nodes of the <code>mix:language</code> node must have the <code>jcr:primaryType</code> set to <code>sling:MessageEntry</code> and must contain two special properties naming the key string and the message:</p>
 <ul>
 <li><code>sling:key</code> -- The <code>sling:key</code> property is a string property being the key for which the node contains the message(s). This property is optional. If it is not set the key is determined by the resource name of the parent <code>sling:messageEntry</code>.</li>
 <li><code>sling:message</code> -- The <code>sling:message</code> property represents the resource for the key.</li>
 </ul>
 <p>It is only required that the message nodes are located below <code>mix:language</code> nodes. Such structures may also be scattered in the repository to allow storing message resources next to where they are most likely used, such as request scripts.</p>
-<h5 id="sample-resources">Sample Resources</h5>
+<h5 id="sample-resources">Sample Resources<a class="headerlink" href="#sample-resources" title="Permanent link">&para;</a></h5>
 <p>Content for dictionaries in this format might look like this:</p>
 <div class="codehilite"><pre>   <span class="o">/</span><span class="n">libs</span><span class="o">/</span><span class="n">languages</span>
            <span class="o">+--</span> <span class="n">English</span> <span class="p">(</span><span class="n">nt</span><span class="p">:</span><span class="n">folder</span><span class="p">,</span> <span class="n">mix</span><span class="p">:</span><span class="n">language</span><span class="p">)</span>
@@ -163,12 +185,12 @@
 
 
 <p>This content defines two languages <em>en</em> and <em>de</em> with three messages <em>msg001</em>, <em>msg002</em> and <em>msgXXX</em> each. The names of the respective resources have no significance (in case the <code>sling:key</code> is set).</p>
-<h4 id="json-file-based">JSON-file based</h4>
+<h4 id="json-file-based">JSON-file based<a class="headerlink" href="#json-file-based" title="Permanent link">&para;</a></h4>
 <p>Since Version 2.4.2 the i18n bundle supports dictionaries in JSON-format (<a href="https://issues.apache.org/jira/browse/SLING-4543">SLING-4543</a>).
 Since loading such dictionaries is much faster than loading the ones based on <code>sling:MessageEntry</code>s this format should be used preferably.
 This format is assumed if the <code>mix:language</code> resource name is ending with the extension <code>.json</code>.
 The parser will take any "key":"value" pair in the JSON file, including those in nested objects or arrays. Normally, a dictionary will be just a single json object = hash map though.</p>
-<h5 id="sample-resources_1">Sample Resources</h5>
+<h5 id="sample-resources_1">Sample Resources<a class="headerlink" href="#sample-resources_1" title="Permanent link">&para;</a></h5>
 <p>Content for this format might look like this:</p>
 <div class="codehilite"><pre>   <span class="o">/</span><span class="n">libs</span><span class="o">/</span><span class="n">languages</span>
            <span class="o">+--</span> <span class="n">english</span><span class="p">.</span><span class="n">json</span> <span class="p">(</span><span class="n">nt</span><span class="p">:</span><span class="n">file</span><span class="p">,</span> <span class="n">mix</span><span class="p">:</span><span class="n">language</span><span class="p">)</span>
@@ -182,7 +204,7 @@ The parser will take any "key":"value" p
 </pre></div>
 
 
-<h4 id="jcr-node-types-supporting-the-jcr-repository-based-resourcebundleprovider">JCR Node Types supporting the JCR Repository based <code>ResourceBundleProvider</code></h4>
+<h4 id="jcr-node-types-supporting-the-jcr-repository-based-resourcebundleprovider">JCR Node Types supporting the JCR Repository based <code>ResourceBundleProvider</code><a class="headerlink" href="#jcr-node-types-supporting-the-jcr-repository-based-resourcebundleprovider" title="Permanent link">&para;</a></h4>
 <p>The sling.i18n bundle asserts the following node types:</p>
 <div class="codehilite"><pre><span class="k">[mix:language]</span>
     <span class="err">mixin</span>
@@ -201,10 +223,10 @@ The parser will take any "key":"value" p
 
 
 <p>The <code>sling:Message</code> and <code>sling:MessageEntry</code> are helper node types. The latter must be used to create the nodes for the <code>sling:MessageEntry</code> based format.</p>
-<h3 id="resourcebundle-with-base-names"><code>ResourceBundle</code> with base names</h3>
+<h3 id="resourcebundle-with-base-names"><code>ResourceBundle</code> with base names<a class="headerlink" href="#resourcebundle-with-base-names" title="Permanent link">&para;</a></h3>
 <p>Similar to standard Java <code>ResourceBundle</code> instances, Sling <code>ResourceBundle</code> instances may be created for base names through any of the <code>getResourceBundle(String, Locale)</code> methods. These methods use the base name parameter as a selector for the values of the <code>sling:basename</code> property of the <code>mix:language</code> nodes.</p>
 <p>The base name argument can take one three values:</p>
-<table>
+<table class="table">
 <thead>
 <tr>
 <th>Value</th>
@@ -227,7 +249,7 @@ The parser will take any "key":"value" p
 </tbody>
 </table>
 <p>The <code>sling:basename</code> property may be multi-valued, that is the messages of a <code>mix:language</code> nodes may belong to multiple base names and thus <code>ResourceBundle</code> instances.</p>
-<h3 id="resourcebundle-hierarchies"><code>ResourceBundle</code> hierarchies</h3>
+<h3 id="resourcebundle-hierarchies"><code>ResourceBundle</code> hierarchies<a class="headerlink" href="#resourcebundle-hierarchies" title="Permanent link">&para;</a></h3>
 <p>The dictionary entries for one <code>JcrResourceBundle</code> are always ordered like the resource resolver search paths, so usually</p>
 <ol>
 <li>dictionary entries below <code>/apps</code></li>

Modified: websites/staging/sling/trunk/content/documentation/bundles/jcr-installer-provider.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/bundles/jcr-installer-provider.html (original)
+++ websites/staging/sling/trunk/content/documentation/bundles/jcr-installer-provider.html Tue Sep 22 10:23:16 2015
@@ -18,11 +18,11 @@
     limitations under the License.
 -->
   <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
     <title>Apache Sling - JCR Installer Provider</title>
     <link rel="icon" href="/res/favicon.ico">
     <link rel="stylesheet" href="/res/site.css" type="text/css" media="all">
     <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all">
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
   </head>
   <body>
     <div class="title">
@@ -39,7 +39,18 @@
     </div>
     
     <div class="menu"> 
-      <p><strong><a href="/documentation.html">Documentation</a></strong> <br />
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p><strong><a href="/documentation.html">Documentation</a></strong> <br />
 <a href="/documentation/getting-started.html">Getting Started</a> <br />
 <a href="/documentation/the-sling-engine.html">The Sling Engine</a> <br />
 <a href="/documentation/development.html">Development</a> <br />
@@ -90,25 +101,36 @@
       
       
       <h1>JCR Installer Provider</h1>
-      <p>The JCR installer provider scans the JCR repository for artifacts and provides them to the <a href="/documentation/bundles/osgi-installer.html">OSGI installer</a>.</p>
-<h2 id="configuration-and-scanning">Configuration and Scanning</h2>
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p>The JCR installer provider scans the JCR repository for artifacts and provides them to the <a href="/documentation/bundles/osgi-installer.html">OSGI installer</a>.</p>
+<h2 id="configuration-and-scanning">Configuration and Scanning<a class="headerlink" href="#configuration-and-scanning" title="Permanent link">&para;</a></h2>
 <p>The JCR installer provider can be configured with weighted paths which are scanned. By default, the installer scans in <em>/apps</em> and <em>/libs</em> where artifacts found in <em>/apps</em> get a higher priority. The installer does a deep scan and uses a regular expression to detect folders containing artifacts to be installed. By default, artifacts from within a folder named <em>install</em> are provided to the OSGi installer.</p>
 <p>If such an install folder contains a binary artifact (e.g. a bundle) this is provided to the OSGi installer. In addition a node of type <em>sling:OsgiConfig</em> is provided as a configuration to the installer.</p>
 <p>The jcr installer provider does not check or scan the artifacts itself, the detection and installation is deferred to the OSGi installer.</p>
-<h3 id="runmode-support">Runmode Support</h3>
+<h3 id="runmode-support">Runmode Support<a class="headerlink" href="#runmode-support" title="Permanent link">&para;</a></h3>
 <p>The JCR installer supports run modes for installing artifacts. By default folders named <em>install</em> are checked for artifacts. If Apache Sling is started with one (or more run modes), all folders named <em>install.[RUNMODE]</em> are scanned as well. To be precise, the folder name can be followed by any number of run modes separated by comma. For example, if started with run modes <em>dev</em>, <em>a1</em>, and <em>public</em>, folders like <em>install.dev</em>, <em>install.a1</em>, <em>install.public</em> are searched as well as <em>install.dev.a1</em>, or <em>install.a1.dev</em>.</p>
 <p>Artifacts from folders with a run mode get a higher priority. For example by default, an <em>install</em> folder underneath <em>/libs</em> gets the priority <em>50</em>. For each run mode in the folder name, this priority is increased by <em>1</em>, so <em>install.dev</em> has <em>51</em> and <em>install.a1.dev</em> is <em>52</em>.</p>
-<h3 id="start-level-support">Start Level Support</h3>
+<h3 id="start-level-support">Start Level Support<a class="headerlink" href="#start-level-support" title="Permanent link">&para;</a></h3>
 <p>If the parent folder of a bundle has a name which is a number, this is used as the start level (when installing the bundle for the first time, compare with <a href="https://issues.apache.org/jira/browse/SLING-2011">SLING-2011</a>). So e.g. a bundle in the path <code>/libs/sling/install/15/somebundle.jar</code> is having the start level <strong>15</strong>. </p>
-<h1 id="example">Example</h1>
+<h1 id="example">Example<a class="headerlink" href="#example" title="Permanent link">&para;</a></h1>
 <p>Here's a quick walkthrough of the JCR installer functionality.</p>
-<h2 id="installation">Installation</h2>
+<h2 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h2>
 <p>Start the Sling <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/app">launchpad/app</a> and make sure that the following bundles are present and started:
 <em> <a href="/old-stuff/run-modes-org-apache-sling-runmode.html">RunMode service</a>
 </em> OSGi installer service (<a href="http://svn.apache.org/repos/asf/sling/trunk/installer/core">org.apache.sling.installer.core</a>)
 * JCR installer provider (<a href="http://svn.apache.org/repos/asf/sling/trunk/installer/providers/jcr">org.apache.sling.installer.provider.jcr</a>)</p>
 <p>To watch the logs produced by these modules, you can filter <code>sling/logs/error.log</code> using <code>egrep 'jcrinstall|osgi.installer'</code>.</p>
-<h2 id="install-and-remove-a-bundle">Install and remove a bundle</h2>
+<h2 id="install-and-remove-a-bundle">Install and remove a bundle<a class="headerlink" href="#install-and-remove-a-bundle" title="Permanent link">&para;</a></h2>
 <p>We'll use the <a href="http://www.knopflerfish.org/releases/2.0.5/jars/desktop_awt/desktop_awt_all-2.0.0.jar">Knopflerfish Desktop</a> bundle for this example, it is convenient as it displays a graphical user interface when started.</p>
 <p>We use <code>curl</code> to create content, to make it easy to reproduce the example by copying and pasting the <code>curl</code> commands. Any other way to create content in the repository will work, of course.</p>
 <p>By default, JCRInstall picks up bundles found in folders named <em>install</em> under <code>/libs</code> and <code>/apps</code>, so we start by creating such a folder:</p>
@@ -131,7 +153,7 @@
 
 
 <p>Should cause the <em>Knopflerfish Desktop</em> window to disappear as the bundle is uninstalled.</p>
-<h2 id="install-modify-and-remove-a-configuration">Install, modify and remove a configuration</h2>
+<h2 id="install-modify-and-remove-a-configuration">Install, modify and remove a configuration<a class="headerlink" href="#install-modify-and-remove-a-configuration" title="Permanent link">&para;</a></h2>
 <p>JCRInstall installs OSGi configurations from nodes having the <em>sling:OsgiConfig</em> node type, found in folders named <em>install</em> under the installation roots (/apps and /libs).</p>
 <p>Let's try this feature by creating a configuration with two properties:</p>
 <div class="codehilite"><pre><span class="n">curl</span> <span class="o">\</span>
@@ -191,14 +213,14 @@
 
 <p>And verify that the corresponding configuration is gone in the console page (after 1-2 seconds, like for all other JCRInstall operations).</p>
 <p><em>TODO:</em> A node named like <code>o.a.s.foo.bar-a</code> uses <em>o.a.s.foo.bar</em> as its factory PID creating a configuration with an automatically generated PID. The value of <em>a</em> is stored as an alias property in the configuration to correlate the configuration object with the repository node - demonstrate that.</p>
-<h1 id="automated-tests">Automated Tests</h1>
+<h1 id="automated-tests">Automated Tests<a class="headerlink" href="#automated-tests" title="Permanent link">&para;</a></h1>
 <p>The following modules contain lots of automated tests (under <code>src/test</code>, as usual):</p>
 <ul>
 <li>OSGi installer integration tests (<a href="http://svn.apache.org/repos/asf/sling/trunk/installer/it">org.apache.sling.installer.it</a>)</li>
 <li>JCR installer service (<a href="http://svn.apache.org/repos/asf/sling/trunk/installer/providers/jcr">org.apache.sling.installer.providers.jcr</a>)</li>
 </ul>
 <p>Many of these tests are fairly readable, and can be used to find out in more detail how these modules work.</p>
-<h1 id="project-info">Project Info</h1>
+<h1 id="project-info">Project Info<a class="headerlink" href="#project-info" title="Permanent link">&para;</a></h1>
 <ul>
 <li>JCR installer provider (<a href="http://svn.apache.org/repos/asf/sling/trunk/installer/providers/jcr">org.apache.sling.installer.provider.jcr</a>)</li>
 </ul>

Modified: websites/staging/sling/trunk/content/documentation/bundles/log-tracers.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/bundles/log-tracers.html (original)
+++ websites/staging/sling/trunk/content/documentation/bundles/log-tracers.html Tue Sep 22 10:23:16 2015
@@ -18,11 +18,11 @@
     limitations under the License.
 -->
   <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
     <title>Apache Sling - Log Tracer</title>
     <link rel="icon" href="/res/favicon.ico">
     <link rel="stylesheet" href="/res/site.css" type="text/css" media="all">
     <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all">
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
   </head>
   <body>
     <div class="title">
@@ -39,7 +39,18 @@
     </div>
     
     <div class="menu"> 
-      <p><strong><a href="/documentation.html">Documentation</a></strong> <br />
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p><strong><a href="/documentation.html">Documentation</a></strong> <br />
 <a href="/documentation/getting-started.html">Getting Started</a> <br />
 <a href="/documentation/the-sling-engine.html">The Sling Engine</a> <br />
 <a href="/documentation/development.html">Development</a> <br />
@@ -90,7 +101,18 @@
       
       
       <h1>Log Tracer</h1>
-      <p><a href="https://issues.apache.org/jira/browse/SLING-4739">Log Tracer</a> provides support for enabling the logs for specific category at specific 
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p><a href="https://issues.apache.org/jira/browse/SLING-4739">Log Tracer</a> provides support for enabling the logs for specific category at specific 
 level and only for specific request. It provides a very fine level of control via config provided
 as part of HTTP request around how the logging should be performed for given category.</p>
 <p>This is specially useful for those parts of the system which are involved in every request.
@@ -108,12 +130,12 @@ an extra request parameters.</p>
 </pre></div>
 
 
-<h2 id="configuration">Configuration</h2>
+<h2 id="configuration">Configuration<a class="headerlink" href="#configuration" title="Permanent link">&para;</a></h2>
 <p><img alt="Tracer Config" src="/documentation/bundles/tracer-config.png" /></p>
 <p><strong>Note that by default Tracer would not be enabled and you would need to save the OSGi config to 
 get it activated</strong></p>
 <p>Tracer support two ways to enable logging.</p>
-<h3 id="tracer-sets">Tracer Sets</h3>
+<h3 id="tracer-sets">Tracer Sets<a class="headerlink" href="#tracer-sets" title="Permanent link">&para;</a></h3>
 <p>Tracer sets are collection of predefined logging categories matching specific area of an application. 
 These can for now be configured as part of OSGi config</p>
 <div class="codehilite"><pre><span class="n">oak</span><span class="o">-</span><span class="n">query</span> <span class="p">:</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">jackrabbit</span><span class="p">.</span><span class="n">oak</span><span class="p">.</span><span class="n">query</span><span class="p">.</span><span class="n">QueryEngineImpl</span><span class="p">;</span><span class="n">level</span><span class="p">=</span><span class="n">debug</span>
@@ -135,14 +157,14 @@ These can for now be configured as part
 
 <p>Currently following attributes are support
 * <code>level</code> - Either of TRACE, DEBUG, INFO, WARN, ERROR</p>
-<h3 id="performance-impact">Performance Impact</h3>
+<h3 id="performance-impact">Performance Impact<a class="headerlink" href="#performance-impact" title="Permanent link">&para;</a></h3>
 <p>Tracer makes use of <a href="http://logback.qos.ch/manual/filters.html#TurboFilter">Logback TuboFilter</a> to intercept the logging calls and only enable them for 
 those which are enabled via tracer config for the request. The filter is only registered for the 
 duration of that request hence would avoid adding the cost for normal run.</p>
 <p>You can also disable the Tracer completely via OSGi config.</p>
-<h2 id="where-do-logs-go">Where do logs go</h2>
+<h2 id="where-do-logs-go">Where do logs go<a class="headerlink" href="#where-do-logs-go" title="Permanent link">&para;</a></h2>
 <p>The logs captured are logged at two places</p>
-<h3 id="requestprogresstracker">RequestProgressTracker</h3>
+<h3 id="requestprogresstracker">RequestProgressTracker<a class="headerlink" href="#requestprogresstracker" title="Permanent link">&para;</a></h3>
 <p>Sling provides support for recording recent requests which can be accessed via <a href="https://sling.apache.org/documentation/development/monitoring-requests.html">Recent Requests 
 Plugin</a>. It would list down the list of recent request and then on clicking them you can see the 
 logs showed on the UI.</p>
@@ -160,17 +182,17 @@ the config as part of <em>Sling Main Ser
 </pre></div>
 
 
-<h3 id="server-logs">Server Logs</h3>
+<h3 id="server-logs">Server Logs<a class="headerlink" href="#server-logs" title="Permanent link">&para;</a></h3>
 <p>Further the logs also go to normal server side logs. By default they would go to the error.log. If 
 you have routed the logs of specific categories to different files then normal Logback logging rules 
 would apply</p>
-<h2 id="usage">Usage</h2>
+<h2 id="usage">Usage<a class="headerlink" href="#usage" title="Permanent link">&para;</a></h2>
 <p>Tracing can be done in various ways for a given HTTP request. Tracer looks for following hints as part of request</p>
 <ul>
 <li>Tracer set names - Comma separated list of tracer set names which need to be enabled. e.g. <code>oak-query, oak-writes</code> etc</li>
 <li>tracerConfig - Raw tracing config only used for that specific request</li>
 </ul>
-<h3 id="request-parameters">Request Parameters</h3>
+<h3 id="request-parameters">Request Parameters<a class="headerlink" href="#request-parameters" title="Permanent link">&para;</a></h3>
 <p>Param names</p>
 <ul>
 <li><code>tracers</code>  - Tracer set names</li>
@@ -202,7 +224,7 @@ would apply</p>
 </pre></div>
 
 
-<h3 id="request-headers">Request Headers</h3>
+<h3 id="request-headers">Request Headers<a class="headerlink" href="#request-headers" title="Permanent link">&para;</a></h3>
 <p>Some request like initial authentication processing does not involve Sling MainServlet and hence for 
 those request logging cannot be done to RequestProgressTracker. Instead we can just get logs enabled 
 and route them to normal logging on server side. For that you need to use HTTP header</p>
@@ -229,7 +251,7 @@ and route them to normal logging on serv
 </pre></div>
 
 
-<h2 id="installation">Installation</h2>
+<h2 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h2>
 <p>Download the bundle from <a href="http://sling.apache.org/downloads.cgi">here</a> or use following Maven dependency</p>
 <div class="codehilite"><pre><span class="nt">&lt;dependency&gt;</span>
     <span class="nt">&lt;groupId&gt;</span>org.apache.sling<span class="nt">&lt;/groupId&gt;</span>

Modified: websites/staging/sling/trunk/content/documentation/bundles/managing-permissions-jackrabbit-accessmanager.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/bundles/managing-permissions-jackrabbit-accessmanager.html (original)
+++ websites/staging/sling/trunk/content/documentation/bundles/managing-permissions-jackrabbit-accessmanager.html Tue Sep 22 10:23:16 2015
@@ -18,11 +18,11 @@
     limitations under the License.
 -->
   <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
     <title>Apache Sling - Managing permissions (jackrabbit.accessmanager)</title>
     <link rel="icon" href="/res/favicon.ico">
     <link rel="stylesheet" href="/res/site.css" type="text/css" media="all">
     <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all">
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
   </head>
   <body>
     <div class="title">
@@ -39,7 +39,18 @@
     </div>
     
     <div class="menu"> 
-      <p><strong><a href="/documentation.html">Documentation</a></strong> <br />
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p><strong><a href="/documentation.html">Documentation</a></strong> <br />
 <a href="/documentation/getting-started.html">Getting Started</a> <br />
 <a href="/documentation/the-sling-engine.html">The Sling Engine</a> <br />
 <a href="/documentation/development.html">Development</a> <br />
@@ -90,10 +101,21 @@
       
       
       <h1>Managing permissions (jackrabbit.accessmanager)</h1>
-      <p>The <code>jackrabbit-accessmanager</code> bundle delivers a REST interface to manipulate users permissions in the JCR. After installing the <code>jackrabbit-accessmanager</code> bundle the REST services are exposed under the path of the node where you will manipulate the permissions for a user with a specific selector like <code>modifyAce</code>, <code>acl</code> and <code>deleteAce</code>.
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p>The <code>jackrabbit-accessmanager</code> bundle delivers a REST interface to manipulate users permissions in the JCR. After installing the <code>jackrabbit-accessmanager</code> bundle the REST services are exposed under the path of the node where you will manipulate the permissions for a user with a specific selector like <code>modifyAce</code>, <code>acl</code> and <code>deleteAce</code>.
 [TOC]</p>
-<h2 id="privileges">Privileges</h2>
-<table>
+<h2 id="privileges">Privileges<a class="headerlink" href="#privileges" title="Permanent link">&para;</a></h2>
+<table class="table">
 <thead>
 <tr>
 <th>privilagename</th>
@@ -159,7 +181,7 @@
 </tr>
 </tbody>
 </table>
-<h2 id="add-or-modify-permissions">Add or modify permissions</h2>
+<h2 id="add-or-modify-permissions">Add or modify permissions<a class="headerlink" href="#add-or-modify-permissions" title="Permanent link">&para;</a></h2>
 <p>To modify the permissions for a node POST a request to <code>/&lt;path-to-the-node&gt;.modifyAce.&lt;html or json&gt;</code>. The following parameters are available:</p>
 <ul>
 <li><em>numeric</em> - Place the target ACE at the specified numeric index. |</li>
@@ -172,7 +194,7 @@ Example with curl:</p>
 </pre></div>
 
 
-<h2 id="delete-permissions">Delete permissions</h2>
+<h2 id="delete-permissions">Delete permissions<a class="headerlink" href="#delete-permissions" title="Permanent link">&para;</a></h2>
 <p>To delete permissions for a node POST a request to <code>/&lt;path-to-the-node&gt;.deleteAce.&lt;html or json&gt;</code>. The following parameters are available:</p>
 <p>Responses:
 | 200 | Success |
@@ -182,15 +204,15 @@ Example with curl:</p>
 </pre></div>
 
 
-<h2 id="get-permissions">Get permissions</h2>
-<h3 id="bound-permissions">Bound Permissions</h3>
+<h2 id="get-permissions">Get permissions<a class="headerlink" href="#get-permissions" title="Permanent link">&para;</a></h2>
+<h3 id="bound-permissions">Bound Permissions<a class="headerlink" href="#bound-permissions" title="Permanent link">&para;</a></h3>
 <p>To get the permissions bound to a particular node in a json format for a node send a GET request to <code>/&lt;path-to-the-node&gt;.acl.json</code>. </p>
 <p>Example:</p>
 <div class="codehilite"><pre><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span>8080<span class="o">/</span><span class="n">test</span><span class="o">/</span><span class="n">node</span><span class="p">.</span><span class="n">acl</span><span class="p">.</span><span class="n">json</span>
 </pre></div>
 
 
-<h3 id="effective-permissions">Effective Permissions</h3>
+<h3 id="effective-permissions">Effective Permissions<a class="headerlink" href="#effective-permissions" title="Permanent link">&para;</a></h3>
 <p>To get the permissions which are effective for a particular node in a json format for a node send a GET request to <code>/&lt;path-to-the-node&gt;.eacl.json</code>. </p>
 <p>Example:</p>
 <div class="codehilite"><pre><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span>8080<span class="o">/</span><span class="n">test</span><span class="o">/</span><span class="n">node</span><span class="p">.</span><span class="n">eacl</span><span class="p">.</span><span class="n">json</span>
@@ -201,7 +223,7 @@ Example with curl:</p>
 See section 16.3 of the JCR 2.0 specification for an explanation of the difference between bound and effective policies.
 </div>
 
-<h2 id="sample-user-interface-implementation">Sample User Interface Implementation</h2>
+<h2 id="sample-user-interface-implementation">Sample User Interface Implementation<a class="headerlink" href="#sample-user-interface-implementation" title="Permanent link">&para;</a></h2>
 <p><em>Since Version 2.1.1</em></p>
 <p>A sample implementation of ui pages for permissions management is provided @ http://svn.apache.org/viewvc/sling/trunk/samples/accessmanager-ui/</p>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">

Modified: websites/staging/sling/trunk/content/documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.html (original)
+++ websites/staging/sling/trunk/content/documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.html Tue Sep 22 10:23:16 2015
@@ -18,11 +18,11 @@
     limitations under the License.
 -->
   <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
     <title>Apache Sling - Managing users and groups (jackrabbit.usermanager)</title>
     <link rel="icon" href="/res/favicon.ico">
     <link rel="stylesheet" href="/res/site.css" type="text/css" media="all">
     <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all">
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
   </head>
   <body>
     <div class="title">
@@ -39,7 +39,18 @@
     </div>
     
     <div class="menu"> 
-      <p><strong><a href="/documentation.html">Documentation</a></strong> <br />
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p><strong><a href="/documentation.html">Documentation</a></strong> <br />
 <a href="/documentation/getting-started.html">Getting Started</a> <br />
 <a href="/documentation/the-sling-engine.html">The Sling Engine</a> <br />
 <a href="/documentation/development.html">Development</a> <br />
@@ -90,7 +101,18 @@
       
       
       <h1>Managing users and groups (jackrabbit.usermanager)</h1>
-      <p>The <code>jackrabbit-usermanager</code> bundle delivers a REST interface to create, update and delete users and groups in the JCR. After installing the <code>jackrabbit-usermanager</code> bundle all REST services are exposed under the path /system/userManager.</p>
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p>The <code>jackrabbit-usermanager</code> bundle delivers a REST interface to create, update and delete users and groups in the JCR. After installing the <code>jackrabbit-usermanager</code> bundle all REST services are exposed under the path /system/userManager.</p>
 <div class="toc">
 <ul>
 <li><a href="#list-users">List users</a></li>
@@ -109,7 +131,7 @@
 <li><a href="#sample-user-interface-implementation">Sample User Interface Implementation</a></li>
 </ul>
 </div>
-<h2 id="list-users">List users</h2>
+<h2 id="list-users">List users<a class="headerlink" href="#list-users" title="Permanent link">&para;</a></h2>
 <p>To list existing users a GET request to the <code>/system/userManager/user</code> resource can be posted. Depending on the configuration of the Default GET Servlet and/or the availability of a Servlet or Script handling the <code>sling/users</code> resource type, a result may be delivered.</p>
 <p>Example with curl and the default JSON rendering:</p>
 <div class="codehilite"><pre>$ <span class="n">curl</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span>8080<span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">userManager</span><span class="o">/</span><span class="n">user</span><span class="p">.</span><span class="n">tidy</span><span class="p">.</span>1<span class="p">.</span><span class="n">json</span>
@@ -126,7 +148,7 @@
 </pre></div>
 
 
-<h2 id="get-user">Get user</h2>
+<h2 id="get-user">Get user<a class="headerlink" href="#get-user" title="Permanent link">&para;</a></h2>
 <p><em>since version 2.0.8</em>
 The properties of a single user can be retrieved by sending a GET request to the user's resource at <code>/system/userManager/user/username</code> where <em>username</em> would be replaced with the name of the user.  Depending on the configuration of the Default GET Servlet and/or the availability of a Servlet or Script handling the <code>sling/user</code> resource type, a result may be delivered.</p>
 <p>Example with curl and the default JSON rendering:</p>
@@ -139,7 +161,7 @@ The properties of a single user can be r
 
 
 <p>If a non-existing user is requested a 404/NOT FOUND status is sent back.</p>
-<h2 id="create-user">Create user</h2>
+<h2 id="create-user">Create user<a class="headerlink" href="#create-user" title="Permanent link">&para;</a></h2>
 <p>To create a new user POST a request to <code>/system/userManager/user.create.&lt;html or json&gt;</code>. The following parameters are available:</p>
 <p>Responses:
 | 200 | Success, a redirect is sent to the users resource locator with HTML (or JSON) describing status. |</p>
@@ -149,7 +171,7 @@ The properties of a single user can be r
 </pre></div>
 
 
-<h2 id="update-user">Update user</h2>
+<h2 id="update-user">Update user<a class="headerlink" href="#update-user" title="Permanent link">&para;</a></h2>
 <p>To update an existing user POST a request to <code>/system/userManager/user/username.update.&lt;html or json&gt;</code>. You can NOT update the username or the password (see Change Password below) only the additional properties are updateable through this URL. The following parameters are available:</p>
 <p>Responses:
 | 200 | Success, a redirect is sent to the users resource locator with HTML (or JSON) describing status. |</p>
@@ -159,7 +181,7 @@ The properties of a single user can be r
 </pre></div>
 
 
-<h2 id="change-password">Change password</h2>
+<h2 id="change-password">Change password<a class="headerlink" href="#change-password" title="Permanent link">&para;</a></h2>
 <p>To change a password of an existing user POST a request to <code>/system/userManager/user/username.changePassword.&lt;html or json&gt;</code>. NOTE: since version 2.1.1, the oldPwd is optional if the current user is a user administrator.  The following parameters are available:</p>
 <p>Responses:
 | 200 | Success, sent with no body. |</p>
@@ -169,7 +191,7 @@ The properties of a single user can be r
 </pre></div>
 
 
-<h2 id="delete-user">Delete user</h2>
+<h2 id="delete-user">Delete user<a class="headerlink" href="#delete-user" title="Permanent link">&para;</a></h2>
 <p>To delete an existing user POST a request to <code>/system/userManager/user/username.delete.&lt;html or json&gt;</code>. The following parameters are available:</p>
 <p>Responses:
 | 200 | Success, sent with no body. |</p>
@@ -178,7 +200,7 @@ The properties of a single user can be r
 </pre></div>
 
 
-<h2 id="list-groups">List groups</h2>
+<h2 id="list-groups">List groups<a class="headerlink" href="#list-groups" title="Permanent link">&para;</a></h2>
 <p>To list existing groups a GET request to the <code>/system/userManager/group</code> resource can be sent. Depending on the configuration of the Default GET Servlet and/or the availability of a Servlet or Script handling the <code>sling/groups</code> resource type, a result may be delivered.</p>
 <p>Example with curl and the default JSON rendering:</p>
 <div class="codehilite"><pre>$ <span class="n">curl</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span>8080<span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">userManager</span><span class="o">/</span><span class="n">group</span><span class="p">.</span><span class="n">tidy</span><span class="p">.</span>1<span class="p">.</span><span class="n">json</span>
@@ -205,7 +227,7 @@ The properties of a single user can be r
 </pre></div>
 
 
-<h2 id="get-group">Get group</h2>
+<h2 id="get-group">Get group<a class="headerlink" href="#get-group" title="Permanent link">&para;</a></h2>
 <p>The properties of a single group can be retrieved by sending a GET request to the group's resource at <code>/system/userManager/group/groupname</code> where <em>groupname</em> would be replaced with the name of the group.  Depending on the configuration of the Default GET Servlet and/or the availability of a Servlet or Script handling the <code>sling/group</code> resource type, a result may be delivered.</p>
 <p>Example with curl and the default JSON rendering:</p>
 <div class="codehilite"><pre>$ <span class="n">curl</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span>8080<span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">userManager</span><span class="o">/</span><span class="n">group</span><span class="o">/</span><span class="n">administrators</span><span class="p">.</span><span class="n">tidy</span><span class="p">.</span>1<span class="p">.</span><span class="n">json</span>
@@ -219,7 +241,7 @@ The properties of a single user can be r
 
 
 <p>If a non-existing group is requested a 404/NOT FOUND status is sent back.</p>
-<h2 id="create-group">Create group</h2>
+<h2 id="create-group">Create group<a class="headerlink" href="#create-group" title="Permanent link">&para;</a></h2>
 <p>To create a new group POST a request to <code>/system/userManager/group.create.&lt;html or json&gt;</code>. The following parameters are available:</p>
 <p>Responses:
 | 200 | Success, a redirect is sent to the group resource locator with HTML (or JSON) describing status. |</p>
@@ -229,7 +251,7 @@ The properties of a single user can be r
 </pre></div>
 
 
-<h2 id="update-group">Update group</h2>
+<h2 id="update-group">Update group<a class="headerlink" href="#update-group" title="Permanent link">&para;</a></h2>
 <p>To update an existing group POST a request to <code>/system/userManager/group/groupname.update.&lt;html or json&gt;</code>. You can NOT update the name of the group only the additional properties are updateable. The following parameters are available:</p>
 <p>Responses:
 | 200 | Success, a redirect is sent to the groups resource locator with HTML (or JSON) describing status. |</p>
@@ -239,7 +261,7 @@ The properties of a single user can be r
 </pre></div>
 
 
-<h2 id="delete-group">Delete group</h2>
+<h2 id="delete-group">Delete group<a class="headerlink" href="#delete-group" title="Permanent link">&para;</a></h2>
 <p>To delete an existing group POST a request to <code>/system/userManager/group/groupname.delete.&lt;html or json&gt;</code>. The following parameters are available:</p>
 <p>Responses:
 | 200 | Success, sent with no body. |</p>
@@ -248,9 +270,9 @@ The properties of a single user can be r
 </pre></div>
 
 
-<h2 id="automated-tests">Automated Tests</h2>
+<h2 id="automated-tests">Automated Tests<a class="headerlink" href="#automated-tests" title="Permanent link">&para;</a></h2>
 <p>The <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/">launchpad/testing</a> module contains test classes for various operations of the <code>jackrabbit-usermanager</code>. Such tests run as part of our continuous integration process, to demonstrate and verify the behavior of the various operations, in a way that's guaranteed to be in sync with the actual Sling core code. If you have an idea for additional tests, make sure to let us know!</p>
-<h2 id="permissions-checking-from-scripts">Permissions checking from scripts</h2>
+<h2 id="permissions-checking-from-scripts">Permissions checking from scripts<a class="headerlink" href="#permissions-checking-from-scripts" title="Permanent link">&para;</a></h2>
 <p><em>Since Version 2.0.6</em></p>
 <p>When developing scripts that will perform user or group updates, you may want to know what actions the current user is provisioned to do.  This information can be used to conditionally render parts of your page differently based on the user rights.</p>
 <p>The jackrabbit.usermanager bundle provides a service (AuthorizablePrivilegesInfo) you can utilize to do help with this permission checking.</p>
@@ -290,7 +312,7 @@ The properties of a single user can be r
 </pre></div>
 
 
-<h2 id="sample-user-interface-implementation">Sample User Interface Implementation</h2>
+<h2 id="sample-user-interface-implementation">Sample User Interface Implementation<a class="headerlink" href="#sample-user-interface-implementation" title="Permanent link">&para;</a></h2>
 <p><em>Since Version 2.1.1</em></p>
 <p>A sample implementation of ui pages for user/group management is provided @ http://svn.apache.org/viewvc/sling/trunk/samples/usermanager-ui/</p>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">

Modified: websites/staging/sling/trunk/content/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html (original)
+++ websites/staging/sling/trunk/content/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html Tue Sep 22 10:23:16 2015
@@ -18,11 +18,11 @@
     limitations under the License.
 -->
   <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
     <title>Apache Sling - Manipulating Content - The SlingPostServlet (servlets.post)</title>
     <link rel="icon" href="/res/favicon.ico">
     <link rel="stylesheet" href="/res/site.css" type="text/css" media="all">
     <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all">
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
   </head>
   <body>
     <div class="title">

Modified: websites/staging/sling/trunk/content/documentation/bundles/mime-type-support-commons-mime.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/bundles/mime-type-support-commons-mime.html (original)
+++ websites/staging/sling/trunk/content/documentation/bundles/mime-type-support-commons-mime.html Tue Sep 22 10:23:16 2015
@@ -18,11 +18,11 @@
     limitations under the License.
 -->
   <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
     <title>Apache Sling - MIME Type Support (commons.mime and commons.contentdetection)</title>
     <link rel="icon" href="/res/favicon.ico">
     <link rel="stylesheet" href="/res/site.css" type="text/css" media="all">
     <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all">
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
   </head>
   <body>
     <div class="title">
@@ -39,7 +39,18 @@
     </div>
     
     <div class="menu"> 
-      <p><strong><a href="/documentation.html">Documentation</a></strong> <br />
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p><strong><a href="/documentation.html">Documentation</a></strong> <br />
 <a href="/documentation/getting-started.html">Getting Started</a> <br />
 <a href="/documentation/the-sling-engine.html">The Sling Engine</a> <br />
 <a href="/documentation/development.html">Development</a> <br />
@@ -90,7 +101,18 @@
       
       
       <h1>MIME Type Support (commons.mime and commons.contentdetection)</h1>
-      <p>Support for MIME type mappings is generally a problematic issue. On the one hand applications have to take care to stay up to date with their mappings on the other hands in web applications it is tedious to maintain the mappings. Apache Sling takes a very user and deployment friendly approadch to this problem which is described in detail on this page.</p>
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p>Support for MIME type mappings is generally a problematic issue. On the one hand applications have to take care to stay up to date with their mappings on the other hands in web applications it is tedious to maintain the mappings. Apache Sling takes a very user and deployment friendly approadch to this problem which is described in detail on this page.</p>
 <div class="toc">
 <ul>
 <li><a href="#servlet-api-support">Servlet API Support</a></li>
@@ -102,13 +124,13 @@
 <li><a href="#web-console-plugin">Web Console Plugin</a></li>
 </ul>
 </div>
-<h2 id="servlet-api-support">Servlet API Support</h2>
+<h2 id="servlet-api-support">Servlet API Support<a class="headerlink" href="#servlet-api-support" title="Permanent link">&para;</a></h2>
 <p>The Servlet API specification provides a limited support for MIME type mappings :</p>
 <ul>
 <li>Mappings may be defined in the <code>mime-mapping</code> elements of the the web application descriptor <code>web.xml</code>. Managing these mappings is presumably tedious. So servlet containers may provide reasonable defaults (or not).</li>
 <li>The <code>ServletContext.getMimeType(String)</code> returns a MIME type for a given file name based on the extension of the filename. The mapping returned is based on the servlet container configuration as well as the web application descriptor's <code>mime-mapping</code> elements.</li>
 </ul>
-<h2 id="the-sling-mimetypeservice">The Sling MimeTypeService</h2>
+<h2 id="the-sling-mimetypeservice">The Sling MimeTypeService<a class="headerlink" href="#the-sling-mimetypeservice" title="Permanent link">&para;</a></h2>
 <p>Already at the start of the Sling project we realized, that just basing the MIME type mapping decisions on the servlet container will not yield acceptable results. For this reason the Apache Sling projects provides a spezialized and configurable service supporting such mappings: The <a href="/apidocs/sling6/org/apache/sling/commons/mime/MimeTypeService.html"><code>MimeTypeService</code></a> provided by the <code>org.apache.sling.commons.mime</code> bundle.</p>
 <p>This service provides access to registered MIME types and their mappings with two methods:</p>
 <ul>
@@ -120,21 +142,21 @@
 <li><code>registerMimeType(InputStream)</code> registers additional mappings from the given input stream which is expected to be formated in traditional <code>mime.types</code> file format (see below).</li>
 <li><code>registerMimeType(String, String...)</code> registers a single mapping for the give MIME type and the respective extensions.</li>
 </ul>
-<h2 id="the-sling-contentawaremimetypeservice">The Sling ContentAwareMimeTypeService</h2>
+<h2 id="the-sling-contentawaremimetypeservice">The Sling ContentAwareMimeTypeService<a class="headerlink" href="#the-sling-contentawaremimetypeservice" title="Permanent link">&para;</a></h2>
 <p>For content-based mime type detection (as opposed to filename-based detection), the <code>org.apache.sling.commons.contentdetection</code> bundle 
 provides the <code>ContentAwareMimeTypeService</code>, which takes an <code>InputStream</code> that's analyzed to detect its mime type, using Apache Tika
 by default:</p>
 <ul>
 <li><code>getMimeType(String filename, InputStream content)</code> -- given a filename and an <code>InputStream</code> that points to the file contents, this method first tries content-based detection using the stream, and falls back to filename-based detection if needed.</li>
 </ul>
-<h2 id="and-more">And More...</h2>
+<h2 id="and-more">And More...<a class="headerlink" href="#and-more" title="Permanent link">&para;</a></h2>
 <p>Besides the <code>MimeTypeService</code> provided by Apache Sling, there is actually more:</p>
 <ul>
 <li>The <a href="/apidocs/sling6/org/apache/sling/api/SlingHttpServletRequest.html"><code>SlingHttpServletRequest</code></a> provides the <code>getResponseContentType()</code> method, which returns the preferred <em>Content-Type</em> for the response based on the requests extension. This method is implemented by Apache Sling using the <code>MimeTypeService</code>. So servlets and scripts may just call this method to set the content type of the response to the desired value.</li>
 <li>Each Servlet (and JSP scripts) is initialized by Apache Sling with a <code>ServletContext</code> instance whose implementation of the <code>getMimeType(String)</code> effectively calls the <code>MimeTypeService.getMimeType(String)</code> method.</li>
 <li>The Scripting support infrastructure of Sling sets the response content type on behalf of the script to the default value as returned by the <code>SlingHttpServletRequest.getResponseContentType()</code> method. At the same time the response character set is also set to <code>UTF-8</code> for <em>text</em> content types.</li>
 </ul>
-<h2 id="configuring-mime-type-mappings">Configuring MIME Type Mappings</h2>
+<h2 id="configuring-mime-type-mappings">Configuring MIME Type Mappings<a class="headerlink" href="#configuring-mime-type-mappings" title="Permanent link">&para;</a></h2>
 <p>The implementation of the <code>MimeTypeService</code> in the Apache Sling MIME type mapping support (<code>org.apache.sling.commons.mime</code>) bundle supports a numnber of ways to configure and extend the set of MIME type mappings:</p>
 <ul>
 <li>Default configuration. The default configuration is based on the <a href="http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types"><code>mime.types</code></a> file maintained by Roy Fielding for the Apache httpd project and some extensions by Apache Sling.</li>
@@ -152,7 +174,7 @@ by default:</p>
 <li>Mappings registered calling the <code>MimeTypeService.registerMimeType</code> method</li>
 <li>Mappings provided by <code>MimeTypeProvider</code> services</li>
 </ol>
-<h2 id="mime-type-mapping-file-format">MIME Type Mapping File Format</h2>
+<h2 id="mime-type-mapping-file-format">MIME Type Mapping File Format<a class="headerlink" href="#mime-type-mapping-file-format" title="Permanent link">&para;</a></h2>
 <p>The file format for MIME type mapping files is rather simple:</p>
 <ul>
 <li>The files are assumed to be encoded with the <em>ISO-8859-1</em> (aka Latin 1) character encoding</li>
@@ -161,7 +183,7 @@ by default:</p>
 <li>Data lines consist of space (any whitespace matching the <code>\s</code> regular expression) separated values. The first value is the MIME type name and the remaining values defining mappings to file name extensions. The first listed file name extension is considered the <em>default mapping</em> and is returned by the <code>MimeTypeService.getExtension(String)</code> method. Entry lines consisting of just a mime type but no extensions are also (currently) ignored.</li>
 </ul>
 <p>THe data line format described here also applies to configuration provided by the values of the <code>mime.types</code> property of the MIME type service configuration. The file format description applies to all <code>META-INF/mime.types</code> files provided by the bundles as well as input streams supplied to the <code>MimeTypeService.registerMimeType(InputStream)</code> method.</p>
-<h2 id="web-console-plugin">Web Console Plugin</h2>
+<h2 id="web-console-plugin">Web Console Plugin<a class="headerlink" href="#web-console-plugin" title="Permanent link">&para;</a></h2>
 <p>The Apache Sling MIME type mapping support bundle implements a plugin for the Apache Felix Web Console which may be consulted to investigate the current contents of the MIME type mapping tables.</p>
 <p><img alt="Mime Types Web Console Plugin" src="/documentation/bundles/mimetypes.png" /></p>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">