Modified: 
websites/staging/sling/trunk/content/documentation/the-sling-engine/mappings-for-resource-resolution.html
==============================================================================
--- 
websites/staging/sling/trunk/content/documentation/the-sling-engine/mappings-for-resource-resolution.html
 (original)
+++ 
websites/staging/sling/trunk/content/documentation/the-sling-engine/mappings-for-resource-resolution.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 - Mappings for Resource Resolution</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,8 +101,19 @@
       
       
       <h1>Mappings for Resource Resolution</h1>
-      <h2 id="configuration">Configuration</h2>
-<h3 id="properties">Properties</h3>
+      <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>
+<h2 id="configuration">Configuration<a class="headerlink" 
href="#configuration" title="Permanent link">&para;</a></h2>
+<h3 id="properties">Properties<a class="headerlink" href="#properties" 
title="Permanent link">&para;</a></h3>
 <p>The mapping of request URLs to resources is mainly configured in a 
configuration tree which is (by default) located below <code>/etc/map</code>. 
The actual location can be configured with the 
<code>resource.resolver.map.location</code> property of the 
<code>org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl</code>
 configuration.</p>
 <p>When dealing with the new resource resolution we have a number of 
properties influencing the process:</p>
 <ul>
@@ -101,7 +123,7 @@
 <li><code>sling:internalRedirect</code> &ndash; This property when set on a 
node in the <code>/etc/map</code> tree (see below) causes the current path to 
be modified internally to continue with resource resolution.</li>
 <li><code>sling:alias</code> &ndash; The property may be set on any resource 
to indicate an alias name for the resource. For example the resource 
<code>/content/visitors</code> may have the <code>sling:alias</code> property 
set to <code>besucher</code> allowing the resource to be addressed in an URL as 
<code>/content/besucher</code>.</li>
 </ul>
-<h3 id="node-types">Node Types</h3>
+<h3 id="node-types">Node Types<a class="headerlink" href="#node-types" 
title="Permanent link">&para;</a></h3>
 <p>To ease with the definition of redirects and aliases, the following node 
types are defined:</p>
 <ul>
 <li><code>sling:ResourceAlias</code> &ndash; This mixin node type defines the 
<code>sling:alias</code> property and may be attached to any node, which does 
not otherwise allow setting a property named <code>sling:alias</code></li>
@@ -109,15 +131,15 @@
 <li><code>sling:Mapping</code> &ndash; Primary node type which may be used to 
easily construct entries in the <code>/etc/map</code> tree. The node type 
extends the <code>sling:MappingSpec</code> mixin node type to allow setting the 
required matching and redirection. In addition the <code>sling:Resource</code> 
mixin node type is extended to allow setting a resource type and the 
<code>nt:hierarchyNode</code> node type is extended to allow locating nodes of 
this node type below <code>nt:folder</code> nodes.</li>
 </ul>
 <p>Note, that these node types only help setting the properties. The 
implementation itself only cares for the properties and their values and not 
for any of these node types.</p>
-<h2 id="namespace-mangling">Namespace Mangling</h2>
+<h2 id="namespace-mangling">Namespace Mangling<a class="headerlink" 
href="#namespace-mangling" title="Permanent link">&para;</a></h2>
 <p>There are systems accessing Sling, which have a hard time handling URLs 
containing colons &ndash; <code>:</code> &ndash; in the path part correctly. 
Since URLs produced and supported by Sling may contain colons because JCR Item 
based resources may be namespaced (e.g. <code>jcr:content</code>), a special 
namespace mangling feature is built into the 
<code>ResourceResolver.resolve</code> and <code>ResourceResolver(map)</code> 
methods.</p>
 <p>Namespace mangling operates such, that any namespace prefix identified in 
resource path to be mapped as an URL in the <code>map</code> methods is 
modified such that the prefix is enclosed in underscores and the colon 
removed.</p>
 <p><em>Example</em>: The path 
<code>/content/*a*sample/jcr:content/jcr:data.png</code> is modified by 
namespace mangling in the <code>map</code> method to get at 
<code>/content/*a*sample/*jcr*content/*jcr*data.png</code>.</p>
 <p>Conversely the <code>resolve</code> methods must undo such namespace 
mangling to get back at the resource path. This is simple done by modifying any 
path such that segments starting with an underscore enclosed prefix are changed 
by removing the underscores and adding a colon after the prefix. There is one 
catch, tough: Due to the way the SlingPostServlets automatically generates 
names, there may be cases where the actual name would be matching this 
mechanism. Therefore only prefixes are modified which are actually namespace 
prefixes.</p>
 <p><em>Example</em>: The path 
<code>/content/*a*sample/*jcr*content/*jcr*data.png{*</code>} <em>is modified 
by namespace mangling in the</em> <code>{*}resolve{*</code>} <em>method to 
get</em> <code>*/content/*a*sample/jcr:content/jcr:data.png{*}{</code>}<em>. 
The prefix</em> <code>*\*a{*}{</code>}<code>{</code>} is not modified because 
there is no registered namespace with prefix <code>a</code>. On the other hand 
the prefix <code>{*}jcr{*</code>} is modified because there is of course a 
registered namespace with prefix <code>jcr</code>.</p>
-<h2 id="root-level-mappings">Root Level Mappings</h2>
+<h2 id="root-level-mappings">Root Level Mappings<a class="headerlink" 
href="#root-level-mappings" title="Permanent link">&para;</a></h2>
 <p>Root Level Mappings apply to the request at large including the scheme, 
host.port and uri path. To accomplish this a path is constructed from the 
request as <code>\{scheme\}/\{host.port\}/\{uri_path\</code>}. This string is 
then matched against mapping entries below <code>/etc/map</code> which are 
structured in the content analogously. The longest matching entry string is 
used and the replacement, that is the redirection property, is applied.</p>
-<h3 id="mapping-entry-specification">Mapping Entry Specification</h3>
+<h3 id="mapping-entry-specification">Mapping Entry Specification<a 
class="headerlink" href="#mapping-entry-specification" title="Permanent 
link">&para;</a></h3>
 <p>Each entry in the mapping table is a regular expression, which is 
constructed from the resource path below <code>/etc/map</code>. If any resource 
along the path has a <code>sling:match</code> property, the respective value is 
used in the corresponding segment instead of the resource name. Only resources 
either having a <code>sling:redirect</code> or 
<code>sling:internalRedirect</code> property are used as table entries. Other 
resources in the tree are just used to build the mapping structure.</p>
 <p><em>Example</em></p>
 <p>Consider the following content</p>
@@ -146,7 +168,7 @@
 
 
 <p>This would define the following mapping entries:</p>
-<table>
+<table class="table">
 <thead>
 <tr>
 <th>Regular Expression</th>
@@ -200,7 +222,7 @@
 </tr>
 </tbody>
 </table>
-<h3 id="regular-expression-matching">Regular Expression matching</h3>
+<h3 id="regular-expression-matching">Regular Expression matching<a 
class="headerlink" href="#regular-expression-matching" title="Permanent 
link">&para;</a></h3>
 <p>As said above the mapping entries are regular expressions which are matched 
against path. As such these regular expressions may also contain capturing 
groups as shown in the example above: 
<code>http/localhost\.\d*/(stories)</code>. After matching the path against the 
regular expression, the replacement pattern is applied which allows references 
back to the capturing groups.</p>
 <p>To illustrate the matching and replacement is applied according to the 
following pseudo code:</p>
 <table class="codehilitetable"><tr><td class="linenos"><div 
class="linenodiv"><pre> 1
@@ -233,7 +255,7 @@
 
 <p>At the end of the loop, <code>result</code> contains the mapped path or 
<code>null</code> if no entry matches the request <code>path</code>.</p>
 <p><strong>NOTE:</strong> Since the entries in the <code>/etc/map</code> are 
also used to reverse map any resource paths to URLs, using regular expressions 
in the Root Level Mappings prevent the respective entries from being used for 
reverse mappings. Therefor, it is strongly recommended to not use regular 
expression matching, unless you have a strong need.</p>
-<h3 id="redirection-values">Redirection Values</h3>
+<h3 id="redirection-values">Redirection Values<a class="headerlink" 
href="#redirection-values" title="Permanent link">&para;</a></h3>
 <p>The result of matching the request path and getting the redirection is 
either a path into the resource tree or another URL. If the result is an URL, 
it is converted into a path again and matched against the mapping entries. This 
may be taking place repeatedly until an absolute or relative path into the 
resource tree results.</p>
 <p>The following pseudo code summarizes this behaviour:</p>
 <table class="codehilitetable"><tr><td class="linenos"><div 
class="linenodiv"><pre>1
@@ -249,7 +271,7 @@
 </td></tr></table>
 
 <p>As soon as the result of applying the map entries is an absolute or 
relative path (or no more map entries match), Root Level Mapping terminates and 
the next step in resource resolution, resource tree access, takes place.</p>
-<h2 id="resource-tree-access">Resource Tree Access</h2>
+<h2 id="resource-tree-access">Resource Tree Access<a class="headerlink" 
href="#resource-tree-access" title="Permanent link">&para;</a></h2>
 <p>The result of Root Level Mapping is an absolute or relative path to a 
resource. If the path is relative &ndash; e.g. 
<code>myproject/docroot/sample.gif</code> &ndash; the resource resolver search 
path (<code>ResourceResolver.getSearchPath()</code> is used to build absolute 
paths and resolve the resource. In this case the first resource found is used. 
If the result of Root Level Mapping is an absolute path, the path is used as 
is.</p>
 <p>Accessing the resource tree after applying the Root Level Mappings has four 
options:</p>
 <ul>
@@ -258,7 +280,7 @@
 <li>Drill down the resource tree starting from the root, optionally using the 
search path until a resource is found.</li>
 <li>If no resource can be resolved, a Missing Resource is returned.</li>
 </ul>
-<h3 id="drilling-down-the-resource-tree">Drilling Down the Resource Tree</h3>
+<h3 id="drilling-down-the-resource-tree">Drilling Down the Resource Tree<a 
class="headerlink" href="#drilling-down-the-resource-tree" title="Permanent 
link">&para;</a></h3>
 <p>Drilling down the resource tree starts at the root and for each segment in 
the path checks whether a child resource of the given name exists or not. If 
not, a child resource is looked up, which has a <code>sling:alias</code> 
property whose value matches the given name. If neither exists, the search is 
terminated and the resource cannot be resolved.</p>
 <p>The following pseudo code shows this algorithm assuming the path is 
absolute:</p>
 <table class="codehilitetable"><tr><td class="linenos"><div 
class="linenodiv"><pre> 1
@@ -309,7 +331,7 @@
 </pre></div>
 </td></tr></table>
 
-<h2 id="rebuild-the-vanity-bloom-filter">Rebuild The Vanity Bloom Filter</h2>
+<h2 id="rebuild-the-vanity-bloom-filter">Rebuild The Vanity Bloom Filter<a 
class="headerlink" href="#rebuild-the-vanity-bloom-filter" title="Permanent 
link">&para;</a></h2>
 <p><a href="https://issues.apache.org/jira/browse/SLING-4216";>SLING-4216</a> 
introduced the usage of a bloom filter in order to resolve long startup time 
with many vanityPath entries.
 The bloom filter is handled automatically by the Sling framework. In some 
cases though, as changing the maximum number of vanity bloom filter bytes, a 
rebuild of the vanity bloom filter is needed.</p>
 <p>In order to rebuild vanity bloom filter:</p>

Modified: 
websites/staging/sling/trunk/content/documentation/the-sling-engine/request-listeners.html
==============================================================================
--- 
websites/staging/sling/trunk/content/documentation/the-sling-engine/request-listeners.html
 (original)
+++ 
websites/staging/sling/trunk/content/documentation/the-sling-engine/request-listeners.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 - Request Listeners</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>Request Listeners</h1>
-      <p>Sling provides the possibility to "listen" to a request processed by 
the Sling Engine (<code>SlingMainServlet</code>). To get notified you implement 
the service interface 
<code>org.apache.sling.api.request.SlingRequestListener</code>.</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>Sling provides the possibility to "listen" to a request processed by the 
Sling Engine (<code>SlingMainServlet</code>). To get notified you implement the 
service interface 
<code>org.apache.sling.api.request.SlingRequestListener</code>.</p>
 <table class="codehilitetable"><tr><td class="linenos"><div 
class="linenodiv"><pre> 1
  2
  3
@@ -124,9 +146,9 @@
 </td></tr></table>
 
 <p>There are no special properties to set. </p>
-<h2 id="supported-types-of-events">Supported types of events</h2>
+<h2 id="supported-types-of-events">Supported types of events<a 
class="headerlink" href="#supported-types-of-events" title="Permanent 
link">&para;</a></h2>
 <p>At the moment you will get two different types of 
<code>SlingRequestEvent</code>:</p>
-<table>
+<table class="table">
 <thead>
 <tr>
 <th>events types (<code>SlingRequestEvent.EventType</code>)</th>

Modified: 
websites/staging/sling/trunk/content/documentation/the-sling-engine/request-parameters.html
==============================================================================
--- 
websites/staging/sling/trunk/content/documentation/the-sling-engine/request-parameters.html
 (original)
+++ 
websites/staging/sling/trunk/content/documentation/the-sling-engine/request-parameters.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 - Request Parameter Handling in Sling</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,9 +101,20 @@
       
       
       <h1>Request Parameter Handling in Sling</h1>
-      <h2 id="servlet-api">Servlet API</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>
+<h2 id="servlet-api">Servlet API<a class="headerlink" href="#servlet-api" 
title="Permanent link">&para;</a></h2>
 <p>The Servlet API specification provides the following methods to access the 
parameters of a request</p>
-<table>
+<table class="table">
 <thead>
 <tr>
 <th>Method</th>
@@ -123,9 +145,9 @@
 </tbody>
 </table>
 <p>As a special restriction only two kinds of parameters are supported: (1) 
Query String parameters and (2) parameters contained in the request data of 
content type <code>application/x-www-form-encoded</code>. That is file uploads 
using request data of type <code>multipart/form-data</code> are not directly 
supported by the servlet specification. Finally the actual encoding of the 
parameters is all but safe because the encoding of URLs is not very well 
defined and browsers do not set the character encoding when sending post data. 
Fortunately, they use the same character encoding for sending back form content 
as was used by the server to send the form.</p>
-<h2 id="sling-api">Sling API</h2>
+<h2 id="sling-api">Sling API<a class="headerlink" href="#sling-api" 
title="Permanent link">&para;</a></h2>
 <p>To overcome these restrictions and to provide uniform access to request 
parameters the Sling API in addition to the Servlet API methods to access 
parameters provides an abstraction of parameters which is applicable to all 
parameters sent by clients, the <code>RequestParameter</code> interface. 
Through this interface, each parameter may be analyzed for these topics:</p>
-<table>
+<table class="table">
 <thead>
 <tr>
 <th>Type</th>
@@ -148,7 +170,7 @@
 </tbody>
 </table>
 <p>To accomodate this new interface as well as to provide easy access in the 
traditional way the <code>SlingHttpServletRequest</code> interface adds 
following methods to the standard Servlet API parameter access methods:</p>
-<table>
+<table class="table">
 <thead>
 <tr>
 <th>Method</th>
@@ -177,7 +199,7 @@
 <li>After the servlet container provided parameters are parameters extracted 
from the request in case <code>multipart/form-data</code> POST requests. The 
order of these parameters is preserved as they are submitted in the request. 
This conforms to HTML 4.01 spec on forms submitted with multipart/form-data 
encoding: <em>A "multipart/form-data" message contains a series of parts, each 
representing a successful control. The parts are sent to the processing agent 
in the same order the corresponding controls appear in the document stream. 
Part boundaries should not occur in any of the data; how this is done lies 
outside the scope of this specification</em> (<a 
href="http://www.w3.org/TR/html401/interact/forms.html";>17.13.4 Form content 
types</a>)</li>
 </ul>
 <p>Be warned: Only rely on request parameter ordering 
<code>multipart/form-data</code> POST requests without a query part in the 
request URL.</p>
-<h2 id="character-encoding">Character Encoding</h2>
+<h2 id="character-encoding">Character Encoding<a class="headerlink" 
href="#character-encoding" title="Permanent link">&para;</a></h2>
 <p>Traditionally, the encoding of parameters, especially in text area input 
forms, has been a big issue. To solve this issue Sling introduces the following 
convention:</p>
 <ul>
 <li>All forms should contain a hidden field of the name <code>_charset_</code> 
containing the actual encoding used to send the form from the server to the 
client</li>

Modified: 
websites/staging/sling/trunk/content/documentation/the-sling-engine/resources.html
==============================================================================
--- 
websites/staging/sling/trunk/content/documentation/the-sling-engine/resources.html
 (original)
+++ 
websites/staging/sling/trunk/content/documentation/the-sling-engine/resources.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 - Resources</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>Resources</h1>
-      <div class="toc">
+      <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>
+<div class="toc">
 <ul>
 <li><a href="#what-is-a-resource">What is a Resource</a><ul>
 <li><a href="#resource-properties">Resource Properties</a></li>
@@ -116,11 +138,11 @@
 <li><a href="#wrapdecorate-resources">Wrap/Decorate Resources</a></li>
 </ul>
 </div>
-<h2 id="what-is-a-resource">What is a Resource</h2>
+<h2 id="what-is-a-resource">What is a Resource<a class="headerlink" 
href="#what-is-a-resource" title="Permanent link">&para;</a></h2>
 <p>The Resource is one of the central parts of Sling. Extending from JCR's 
<em>Everything is Content</em>, Sling assumes <em>Everthing is a Resource</em>. 
Thus Sling is maintaining a virtual tree of resources, which is a merger of the 
actual contents in the JCR Repository and resources provided by so called 
resource providers. By doing this Sling fits very well in the paradigma of the 
REST architecture.</p>
-<h3 id="resource-properties">Resource Properties</h3>
+<h3 id="resource-properties">Resource Properties<a class="headerlink" 
href="#resource-properties" title="Permanent link">&para;</a></h3>
 <p>Resources have a number of essentiall properties:</p>
-<table>
+<table class="table">
 <thead>
 <tr>
 <th>Property</th>
@@ -155,10 +177,10 @@
 </tbody>
 </table>
 <p>For a complete description of the <code>Resource</code> interface, please 
refer to the <a 
href="http://sling.apache.org/apidocs/sling6/org/apache/sling/api/resource/Resource.html";
 title="Resource">link text</a> JavaDoc.</p>
-<h3 id="resource-types">Resource Types</h3>
+<h3 id="resource-types">Resource Types<a class="headerlink" 
href="#resource-types" title="Permanent link">&para;</a></h3>
 <p>The exact method of setting the resource type for a Resource depends on the 
actual Resource Provider. For the four main Resource Provider
 implementations provided by Sling, the assignments are as follows:</p>
-<table>
+<table class="table">
 <thead>
 <tr>
 <th>Provider</th>
@@ -190,10 +212,10 @@ implementations provided by Sling, the a
 </tbody>
 </table>
 <p>Resource Types form a type hierarchy much like Java classes form a type 
hierarchy. Each resource type has a resource super type, either explicitly 
defined as for example for JCR or Servlet Resources or implicitly. The implicit 
Resource Super Type is at the same time the root Resource Type much like the 
<code>java.lang.Object</code> class is called 
<code>sling/servlet/default</code> (for historical reasons). The 
<code>sling/servlet/default</code> Resource Type is the only type without a 
super type.</p>
-<h3 id="adapters">Adapters</h3>
+<h3 id="adapters">Adapters<a class="headerlink" href="#adapters" 
title="Permanent link">&para;</a></h3>
 <p>The object types to which Resources may be adapted depend mostly depends on 
the Resource Provider providing the resource. For example all JCR node based 
resources always adapt to <code>javax.jcr.Node</code> objects.</p>
 <p>If the actual Resource object class implementation extends from the 
<code>SlingAdaptable</code> class, then in addition all 
<code>AdapterFactory</code> services adapting <code>Resource</code> objects are 
considered when trying to adapt the Resource. In general Resource Providers are 
recommended to have their Resource implementation extend from <a 
href="http://sling.apache.org/apidocs/sling6/org/apache/sling/api/resource/AbstractResource.html";
 title="AbstractResource">link text</a> which guarantees the Resource 
implementation to extend from <code>SlingAdaptable</code> and thus supporting 
Adapter Factories.</p>
-<h2 id="how-to-get-a-resource">How to get a Resource</h2>
+<h2 id="how-to-get-a-resource">How to get a Resource<a class="headerlink" 
href="#how-to-get-a-resource" title="Permanent link">&para;</a></h2>
 <p>To get at Resources, you need a <code>ResourceResolver</code>. This 
interface defines four kinds of methods to access resources:</p>
 <ul>
 <li>Absolute Path Mapping Resource Resolution: The 
<code>resolve(HttpServletRequest, String)</code> and 
<code>resolve(String)</code> methods are called to apply some implementation 
specific path matching algorithm to find a Resource. These methods are mainly 
used to map external paths - such as path components of request URLs - to 
Resources. To support creating external paths usable in an URL a third method 
<code>map(String)</code> is defined, which allows for round-tripping.</li>
@@ -201,7 +223,7 @@ implementations provided by Sling, the a
 <li>Resource Enumeration: To enumerate resources and thus iterate the resource 
tree, the <code>listChildren(Resource)</code> method may be used. This method 
returns an <code>Iterator&lt;Resource&gt;</code> listing all resources whose 
path prefix is the path of the given Resource. This method will of course also 
cross boundaries of registered <code>ResourceProvider</code> instances to 
enable iterating the complete resource tree.</li>
 <li>Resource Querying: Querying resources is currently only supported for JCR 
Resources through the <code>findResources(String query, String language)</code> 
and <code>queryResources(String query, String language)</code> methods. For 
more information see the section on <a href="#querying-resources">Querying 
Resources</a> below.</li>
 </ul>
-<h3 id="absolute-path-mapping">Absolute Path Mapping</h3>
+<h3 id="absolute-path-mapping">Absolute Path Mapping<a class="headerlink" 
href="#absolute-path-mapping" title="Permanent link">&para;</a></h3>
 <p>As has been said, the absolute path mapping methods 
<code>resolve(HttpServletRequest, String)</code> and 
<code>resolve(String)</code> apply some implementation specific path matching 
algorithm to find a Resource. The difference between the two methods is that 
the former may take more properties of the <code>HttpServletRequest</code> into 
account when resolving the Resoure, while the latter just has an absolute path 
to work on.</p>
 <p>The general algorithm of the two methods is as follows:</p>
 <ol>
@@ -215,11 +237,11 @@ and <code>getResource(Resource base, Str
 <p>The virtual path mapping may be used to create shortcut URLs for otherwise 
long and complicated URLs. An example of such an URL might be the main 
administrative page of a CMS system. So, administrators may access the root of 
the web application and directed to the main administrative page.</p>
 <p>The path mapping functionality may be used to hide internal resource 
organization from the request URL space. For example to better control the 
structure of your repository, you might decide to store all accessible data 
inside a <code>/content</code> subtree. To hide this fact from the users, a 
mapping may be defined to prefix all incoming paths with <code>/content</code> 
to get at the actual Resource.</p>
 <p>The <code>map(String)</code> applies the path mapping algorithm in the 
reverse order. That is, first the path mappings are reversed and then any 
virtual mappings are checked. So, a path <code>/content/sample</code> might be 
mapped <code>/sample</code> to revers the <code>/content</code> prefixing. Or 
the main administrative page - say <code>/system/admin/main.html</code> - may 
be mapped to the virtual URL <code>/</code>.</p>
-<h3 id="relative-path-resolution">Relative Path Resolution</h3>
+<h3 id="relative-path-resolution">Relative Path Resolution<a 
class="headerlink" href="#relative-path-resolution" title="Permanent 
link">&para;</a></h3>
 <p>Sometimes it is required to resolve relative paths to Resources. An example 
of such a use case is Script and Servlet resolution which starts with a 
relative path consisting of the Resource type, optional selectors and the 
request extension or method name. By scanning a search path for these relative 
paths a system provided Resource may be overwritten with some user defined 
implementation.</p>
 <p>Consider for example, the system would provide a Servlet to render 
Resources of type <code>nt:file</code>. This Servlet would be registered under 
the path <code>/libs/nt/file/html</code>. For a certain web application, this 
default HTML rendering might not be appropriate, so a Script is created as 
<code>/apps/nt/file/html.jsp</code> with a customized HTML rendering. By 
defining the search path to be <em>[</em> <code>*/apps{*}{</code>}<em>,</em> 
<code>*/libs{*</code>} <em>]()</em> the Servlet resolver would call the 
<code>ResourceResolver.getResource(String)</code> method with the relative path 
<code>nt/file/html</code> and be provided with the first matching resource - 
<code>/apps/nt/file/html.jsp</code> in this example.</p>
 <p>Of course the search path is not used for absolute path arguments.</p>
-<h3 id="querying-resources">Querying Resources</h3>
+<h3 id="querying-resources">Querying Resources<a class="headerlink" 
href="#querying-resources" title="Permanent link">&para;</a></h3>
 <p>For convenience the <code>ResourceResolver</code> provides two Resource 
querying methods <code>findResources</code> and <code>queryResources</code> 
both methods take as arguments a JCR query string and a query language name. 
These parameters match the parameter definition of the 
<code>QueryManager.createQuery(String statement, String language)</code> method 
of the JCR API.</p>
 <p>The return value of these two methods differ in the use case:</p>
 <ul>
@@ -228,7 +250,7 @@ and <code>getResource(Resource base, Str
 </ul>
 <p>These methods are convenience methods to more easily post queries to the 
repository and to handle results in very straight forward way using only 
standard Java functionality.</p>
 <p>Please note, that Resource querying is currently only supported for 
repository based Resources. These query methods are not reflected in the 
<code>ResourceProvider</code> interface used to inject non-repository Resources 
into the Resource tree.</p>
-<h2 id="providing-resources">Providing Resources</h2>
+<h2 id="providing-resources">Providing Resources<a class="headerlink" 
href="#providing-resources" title="Permanent link">&para;</a></h2>
 <p>The virtual Resource tree to which the the Resource accessor methods 
<code>resolve</code> and <code>getResource</code> provide access is implemented 
by a collection of registered <code>ResourceProvider</code> instances. The main 
Resource provider is of course the repository based 
<code>JcrResourceProvider</code> which supports Node and Property based 
resources. This Resource provider is always available in Sling. Further 
Resource providers may or may not exist.</p>
 <p>Each Resource provider is registered as an OSGi service with a required 
service registration property <code>provider.roots</code>. This is a 
multi-value String property listing the absolute paths Resource tree entries 
serving as roots to provided subtrees. For example, if a Resource provider is 
registered with the service registration property <code>provider.roots</code> 
set to <em>/some/root</em>, all paths starting with <code>/some/root</code> are 
first looked up in the given Resource Provider.</p>
 <p>When looking up a Resource in the registered Resource providers, the 
<code>ResourceResolver</code> applies a longest prefix matching algorithm to 
find the best match. For example consider three Resource provider registered as 
follows:</p>
@@ -238,25 +260,25 @@ and <code>getResource(Resource base, Str
 <li>Resource provider R2 as <code>/some/path</code></li>
 </ul>
 <p>When accessing a Resource with path <code>/some/path/resource</code> the 
Resource provider <em>R2</em> is first asked. If that cannot provide the 
resource, Resource provider <em>R1</em> is asked and finally the JCR Resource 
provider is asked. The first Resource provider having a Resource with the 
requested path will be used.</p>
-<h3 id="jcr-based-resources">JCR-based Resources</h3>
+<h3 id="jcr-based-resources">JCR-based Resources<a class="headerlink" 
href="#jcr-based-resources" title="Permanent link">&para;</a></h3>
 <p>JCR-based Resources are provided with the default 
<code>JcrResourceProvider</code>. This Resource provider is always available 
and is always asked last. That is Resources provided by other Resource 
providers may never be overruled by repository based Resources.</p>
-<h3 id="bundle-based-resources">Bundle-based Resources</h3>
+<h3 id="bundle-based-resources">Bundle-based Resources<a class="headerlink" 
href="#bundle-based-resources" title="Permanent link">&para;</a></h3>
 <p>Resources may by provided by OSGi bundles. Providing bundles have a Bundle 
manifest header <code>Sling-Bundle-Resources</code> containing a list of 
absolute paths provided by the bundle. The path are separated by comma or 
whitespace (SP, TAB, VTAB, CR, LF).</p>
 <p>The <code>BundleResourceProvider</code> supporting bundle-based Resources 
provides directories as Resources of type <code>nt:folder</code> and files as 
Resources of type <code>nt:file</code>. This matches the default primary node 
types intended to be used for directories and files in JCR repositories. </p>
 <p>For details see <a 
href="/documentation/bundles/bundle-resources-extensions-bundleresource.html">Bundle
 Resource.</a></p>
-<h3 id="servlet-resources">Servlet Resources</h3>
+<h3 id="servlet-resources">Servlet Resources<a class="headerlink" 
href="#servlet-resources" title="Permanent link">&para;</a></h3>
 <p>Servlet Resources are registered by the Servlet Resolver bundle for 
Servlets registered as OSGi services. See <a 
href="/documentation/the-sling-engine/servlets.html">Servlet Resolution</a> for 
information on how Servlet Resources are provided.</p>
-<h3 id="file-system-resources">File System Resources</h3>
+<h3 id="file-system-resources">File System Resources<a class="headerlink" 
href="#file-system-resources" title="Permanent link">&para;</a></h3>
 <p>The Filesystem Resource Provider provides access to the operating system's 
filesystem through the Sling ResourceResolver. Multiple locations may be mapped 
into the resource tree by configuring the filesystem location and the resource 
tree root path for each location to be mapped. </p>
 <p>For details see <a 
href="/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.html">File
 System Resources</a>.</p>
-<h3 id="custom-resource-providers">Custom Resource providers</h3>
+<h3 id="custom-resource-providers">Custom Resource providers<a 
class="headerlink" href="#custom-resource-providers" title="Permanent 
link">&para;</a></h3>
 <p>Custom ResourceProvider services can be used to integrate your own custom 
resources in the Sling resource tree.</p>
 <p>For a simple example of that, see the <a 
href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/resourceprovider/";>PlanetResourceProvider</a>
 used in our integration tests.</p>
-<h2 id="writeable-resources">Writeable Resources</h2>
+<h2 id="writeable-resources">Writeable Resources<a class="headerlink" 
href="#writeable-resources" title="Permanent link">&para;</a></h2>
 <p>Sling now supports full CRUD functionality on Resources, without 
necessarily having to go through the JCR API.</p>
 <p>The advantage is that this works for any ResourceProvider that supports the 
required operations.</p>
 <p>See the testSimpleCRUD method in <a 
href="https://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/WriteableResourcesTest.java";>WriteableResourcesTest</a>
 for a basic example of how that works.</p>
-<h2 id="wrapdecorate-resources">Wrap/Decorate Resources</h2>
+<h2 id="wrapdecorate-resources">Wrap/Decorate Resources<a class="headerlink" 
href="#wrapdecorate-resources" title="Permanent link">&para;</a></h2>
 <p>The Sling API provides an easy way to wrap or decorate a resource before 
returning. Details see <a 
href="/documentation/the-sling-engine/wrap-or-decorate-resources.html">Wrap or 
Decorate Resources</a>.</p>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; 
text-align: right;">
         Rev. 1624417 by fmeschbe on Thu, 11 Sep 2014 22:50:12 +0000

Modified: 
websites/staging/sling/trunk/content/documentation/the-sling-engine/service-authentication.html
==============================================================================
--- 
websites/staging/sling/trunk/content/documentation/the-sling-engine/service-authentication.html
 (original)
+++ 
websites/staging/sling/trunk/content/documentation/the-sling-engine/service-authentication.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 - Service Authentication</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>Service Authentication</h1>
-      <div class="toc">
+      <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>
+<div class="toc">
 <ul>
 <li><a href="#problem">Problem</a></li>
 <li><a href="#concept">Concept</a><ul>
@@ -107,7 +129,7 @@
 <li><a href="#deprecation-of-administrative-authentication">Deprecation of 
administrative authentication</a></li>
 </ul>
 </div>
-<h2 id="problem">Problem</h2>
+<h2 id="problem">Problem<a class="headerlink" href="#problem" title="Permanent 
link">&para;</a></h2>
 <p>To access the data storage in the Resource Tree and/or the JCR Repository
 authentication is required to properly setup access control and guard
 sensitive data from unauthorized access. For regular request processing
@@ -131,7 +153,7 @@ configured for service level access (as
 <li>Allow administrators to configure the assignment of service users to
 services</li>
 </ul>
-<h2 id="concept">Concept</h2>
+<h2 id="concept">Concept<a class="headerlink" href="#concept" title="Permanent 
link">&para;</a></h2>
 <p>A <em>Service</em> is a piece or collection of functionality. Examples of 
services
 are the Sling queuing system, Tenant Administration, or some Message Transfer
 System. Each service is identified by a unique <em>Service Name</em>. Since a
@@ -151,13 +173,13 @@ a Resource Resolver and/or JCR Repositor
 </td></tr></table>
 
 <p>The <code>service-name</code> is the symbolic name of the bundle providing 
the service.</p>
-<h3 id="example-tenant-administration">Example: Tenant Administration</h3>
+<h3 id="example-tenant-administration">Example: Tenant Administration<a 
class="headerlink" href="#example-tenant-administration" title="Permanent 
link">&para;</a></h3>
 <p>Tenant Administration mostly deals with creating and managing groups
 and some other user administration tasks. Instead of just using an
 administrative session for Tenant administration this feature could
 define itself as being the <code>tenant-admin</code> service and leverage a
 properly configured Tenant Administration account.</p>
-<h3 id="example-mail-transfer-system">Example: Mail Transfer System</h3>
+<h3 id="example-mail-transfer-system">Example: Mail Transfer System<a 
class="headerlink" href="#example-mail-transfer-system" title="Permanent 
link">&para;</a></h3>
 <p>Consider a Mail Transfer System which may be comprised of the following
 sub systems:</p>
 <ul>
@@ -173,10 +195,10 @@ would be consituting the <code>mta</code
 <code>smtp</code>, <code>queue</code>, and <code>deliver</code>.</p>
 <p>Thus the SMTP server daemon would be represented by a user for the
 <code>mta:smtp</code> Service.  queueing with <code>mta:queue</code>, and 
delivery with <code>mta:deliver</code>.  </p>
-<h2 id="implementation">Implementation</h2>
+<h2 id="implementation">Implementation<a class="headerlink" 
href="#implementation" title="Permanent link">&para;</a></h2>
 <p>The implementation in Sling of the <em>Service Authentication</em> concept
 described above consists of three parts:</p>
-<h3 id="serviceusermapper"><code>ServiceUserMapper</code></h3>
+<h3 id="serviceusermapper"><code>ServiceUserMapper</code><a class="headerlink" 
href="#serviceusermapper" title="Permanent link">&para;</a></h3>
 <p>The first part is a new OSGi Service <code>ServiceUserMapper</code>. The
 <code>ServiceUserMapper</code> service allows for mapping <em>Service IDs</em> 
comprised of
 the <em>Service Names</em> defined by the providing bundles and optional 
<em>Subservice Name</em>
@@ -187,7 +209,7 @@ such that system administrators are in f
 </pre></div>
 </td></tr></table>
 
-<h3 id="resourceresolverfactory"><code>ResourceResolverFactory</code></h3>
+<h3 id="resourceresolverfactory"><code>ResourceResolverFactory</code><a 
class="headerlink" href="#resourceresolverfactory" title="Permanent 
link">&para;</a></h3>
 <p>The second part is support for service access to the Resource Tree. To this
 avail, the <code>ResourceResolverFactory</code> service is enhanced with a new 
factory
 method</p>
@@ -206,7 +228,7 @@ be used by services, the <code>ResourceP
 with support for Service Authentication: Now new API is required, though
 but additional properties are defined to convey the service to authenticate
 for.</p>
-<h3 id="slingrepository"><code>SlingRepository</code></h3>
+<h3 id="slingrepository"><code>SlingRepository</code><a class="headerlink" 
href="#slingrepository" title="Permanent link">&para;</a></h3>
 <p>The third part is an extension to the <code>SlingRepository</code>service 
interface
 to support JCR Repository access for services:</p>
 <table class="codehilitetable"><tr><td class="linenos"><div 
class="linenodiv"><pre>1
@@ -219,7 +241,7 @@ to support JCR Repository access for ser
 service bundle is the bundle actually using the <code>SlingRepository</code>
 service. The additional Subservice Name may be provided with the
 <code>subServiceName</code> parameter.</p>
-<h2 id="deprecation-of-administrative-authentication">Deprecation of 
administrative authentication</h2>
+<h2 id="deprecation-of-administrative-authentication">Deprecation of 
administrative authentication<a class="headerlink" 
href="#deprecation-of-administrative-authentication" title="Permanent 
link">&para;</a></h2>
 <p>Originally the 
<code>ResourceResolverFactory.getAdministrativeResourceResolver</code>
 and <code>SlingRepository.loginAdministrative</code> methods have been defined 
to
 provide access to the resource tree and JCR Repository. These methods

Modified: 
websites/staging/sling/trunk/content/documentation/the-sling-engine/servlets.html
==============================================================================
--- 
websites/staging/sling/trunk/content/documentation/the-sling-engine/servlets.html
 (original)
+++ 
websites/staging/sling/trunk/content/documentation/the-sling-engine/servlets.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 - Servlets and Scripts</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>Servlets and Scripts</h1>
-      <div class="toc">
+      <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>
+<div class="toc">
 <ul>
 <li><a href="#servlet-registration">Servlet Registration</a><ul>
 <li><a href="#registering-a-servlet-using-java-annotations">Registering a 
Servlet using Java Annotations</a></li>
@@ -108,9 +130,9 @@
 </div>
 <p>See also <a 
href="/documentation/the-sling-engine/url-to-script-resolution.html">URL to 
Script Resolution</a> which explains how Sling maps URLs 
 to a script or and servlet.</p>
-<h2 id="servlet-registration">Servlet Registration</h2>
+<h2 id="servlet-registration">Servlet Registration<a class="headerlink" 
href="#servlet-registration" title="Permanent link">&para;</a></h2>
 <p>Servlets can be registered as OSGi services. The following service 
reference properties are defined for Servlets defined as OSGi services of type 
<code>javax.servlet.Servlet</code>:</p>
-<table>
+<table class="table">
 <thead>
 <tr>
 <th>Name</th>
@@ -148,7 +170,7 @@ to a script or and servlet.</p>
 <p>For a Servlet registered as an OSGi service to be used by the Sling Servlet 
Resolver, either or both of the <code>sling.servlet.paths</code> or the 
<code>sling.servlet.resourceTypes</code> service reference properties must be 
set. If neither is set, the Servlet service is ignored.</p>
 <p>Each path to be used for registration - either from the 
<code>sling.servlet.paths</code> property or constructed from the other 
<code>sling.servlet.\*</code> properties - must be absolute. Any relative path 
is made absolute by prefixing it with a root path. This prefix may be set with 
the <code>sling.servlet.prefix</code> service registration property. If this 
property is not set, the first entry in the <code>ResourceResolver</code> 
search path for the <code>ResourceResolver.getResource(String)</code> method is 
used as the prefix. If this entry cannot be derived, a simpe slash - 
<code>/</code> - is used as the prefix.</p>
 <p>If <code>sling.servlet.methods</code> is not specified, the servlet is only 
registered for handling GET requests. Make sure to list all methods you want to 
be handled by this servlet.</p>
-<h4 id="registering-a-servlet-using-java-annotations">Registering a Servlet 
using Java Annotations</h4>
+<h4 id="registering-a-servlet-using-java-annotations">Registering a Servlet 
using Java Annotations<a class="headerlink" 
href="#registering-a-servlet-using-java-annotations" title="Permanent 
link">&para;</a></h4>
 <p>If you are working with the default Apache Sling development stack you can 
use Java Annotations from <a 
href="http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin.html";>Apache
 Felix Maven SCR Plugin</a> to register your Sling
 servlets and describe their binding details.</p>
 <p>There are two ways of doing this, either with a Sling-specific 
@SlingServlet annotation or with the more generic maven-scr-plugin 
annotations:</p>
@@ -193,11 +215,11 @@ servlets and describe their binding deta
 
 </li>
 </ol>
-<h3 id="automated-tests">Automated tests</h3>
+<h3 id="automated-tests">Automated tests<a class="headerlink" 
href="#automated-tests" title="Permanent link">&para;</a></h3>
 <p>The <a 
href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/";>launchpad/test-services</a>
 module contains test servlets that use various combinations of the above 
properties.</p>
 <p>The <a 
href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/";>launchpad/integration-tests</a>
 module contains a number of tests (like the 
[ExtensionServletTest|http://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/resolution/ExtensionServletTest.java]
 for example) that verify the results.</p>
 <p>Such tests run as part of our continuous integration process, to 
demonstrate and verify the behavior of the various servlet registration 
mechanisms, 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>
-<h3 id="example-registration-by-path">Example: Registration by Path</h3>
+<h3 id="example-registration-by-path">Example: Registration by Path<a 
class="headerlink" href="#example-registration-by-path" title="Permanent 
link">&para;</a></h3>
 <div class="codehilite"><pre><span class="n">sling</span><span 
class="p">.</span><span class="n">servlet</span><span class="p">.</span><span 
class="n">paths</span> <span class="p">=</span> <span class="o">\</span><span 
class="p">[</span> &quot;<span class="o">/</span><span 
class="n">libs</span><span class="o">/</span><span class="n">sling</span><span 
class="o">/</span><span class="n">sample</span><span class="o">/</span><span 
class="n">html</span>&quot;<span class="p">,</span> &quot;<span 
class="o">/</span><span class="n">libs</span><span class="o">/</span><span 
class="n">sling</span><span class="o">/</span><span 
class="n">sample</span><span class="o">/</span><span class="n">txt</span>&quot; 
<span class="o">\</span><span class="p">]</span>
 <span class="n">sling</span><span class="p">.</span><span 
class="n">servlet</span><span class="p">.</span><span 
class="n">resourceTypes</span> <span class="p">=</span> <span 
class="o">\</span><span class="p">[</span> &quot;<span 
class="n">sling</span><span class="o">/</span><span 
class="n">unused</span>&quot; <span class="o">\</span><span class="p">]</span>
 <span class="n">sling</span><span class="p">.</span><span 
class="n">servlet</span><span class="p">.</span><span 
class="n">selectors</span> <span class="p">=</span> <span 
class="o">\</span><span class="p">[</span> &quot;<span 
class="n">img</span>&quot; <span class="o">\</span><span class="p">]</span>
@@ -211,7 +233,7 @@ servlets and describe their binding deta
 <li><code>/libs/sling/sample/txt</code></li>
 </ul>
 <p>The registration properties <code>sling.servlet.resourceTypes</code>, 
<code>sling.servlet.selectors</code> and <code>sling.servlet.extensions</code> 
<em>are ignored</em> because the <code>sling.servlet.paths</code> property is 
set.</p>
-<h3 id="example-registration-by-resource-type-etc">Example: Registration by 
Resource Type etc.</h3>
+<h3 id="example-registration-by-resource-type-etc">Example: Registration by 
Resource Type etc.<a class="headerlink" 
href="#example-registration-by-resource-type-etc" title="Permanent 
link">&para;</a></h3>
 <div class="codehilite"><pre><span class="n">sling</span><span 
class="p">.</span><span class="n">servlet</span><span class="p">.</span><span 
class="n">resourceTypes</span> <span class="p">=</span> <span 
class="o">\</span><span class="p">[</span> &quot;<span 
class="n">sling</span><span class="o">/</span><span 
class="n">unused</span>&quot; <span class="o">\</span><span class="p">]</span>
 <span class="n">sling</span><span class="p">.</span><span 
class="n">servlet</span><span class="p">.</span><span 
class="n">selectors</span> <span class="p">=</span> <span 
class="o">\</span><span class="p">[</span> &quot;<span 
class="n">img</span>&quot;<span class="p">,</span> &quot;<span 
class="n">tab</span>&quot; <span class="o">\</span><span class="p">]</span>
 <span class="n">sling</span><span class="p">.</span><span 
class="n">servlet</span><span class="p">.</span><span 
class="n">extensions</span> <span class="p">=</span> <span 
class="o">\</span><span class="p">[</span> &quot;<span 
class="n">html</span>&quot;<span class="p">,</span> &quot;<span 
class="n">txt</span>&quot;<span class="p">,</span> &quot;<span 
class="n">json</span>&quot; <span class="o">\</span><span class="p">]</span>
@@ -228,7 +250,7 @@ servlets and describe their binding deta
 <li><code>{*}prefix*/sling/unused/tab/json</code></li>
 </ul>
 <p>As explained the Servlet is registered for each permutation of the resource 
types, selectors and extension. See above For an explanation of how 
<code>{*}prefix{*</code>} is defined.</p>
-<h3 id="servlet-lifecycle-issues">Servlet Lifecycle Issues</h3>
+<h3 id="servlet-lifecycle-issues">Servlet Lifecycle Issues<a 
class="headerlink" href="#servlet-lifecycle-issues" title="Permanent 
link">&para;</a></h3>
 <p>The Servlet API specification states the following with respect to the life
 cycle of Servlets:</p>
 <blockquote>
@@ -247,11 +269,11 @@ once in the life time of the Servlet obj
 <p>The provider of the Servlet service on the other can cope with this
 situation by making sure to drop the servlet instance once it is destroyed.
 The mechanism helping the provider here is the OSGi Service Factory.</p>
-<h2 id="scripts-are-servlets">Scripts are Servlets</h2>
+<h2 id="scripts-are-servlets">Scripts are Servlets<a class="headerlink" 
href="#scripts-are-servlets" title="Permanent link">&para;</a></h2>
 <p>The Sling API defines a <code>SlingScript</code> interface which is used to 
represent (executable) scripts inside of Sling. This interface is implemented 
in the <code>scripting/core</code> bundle in the 
<code>DefaultSlingScript</code> class which also implements the 
<code>javax.servlet.Servlet</code>.</p>
 <p>To further simplify the access to scripts from the Resource tree, the 
<code>scripting/core</code> bundle registers an <code>AdapterFactory</code> to 
adapt Resources to Scripts and Servlets (the 
<code>SlingScriptAdapterFactory</code>). In fact the adapter factory returns 
instances of the <code>DefaultSlingScript</code> class for both Scripts and 
Servlets.</p>
 <p>From the perspective of the Servlet resolver, scripts and servlets are 
handled exactly the same. In fact, internally, Sling only handles with 
Servlets, whereas scripts are packed inside a Servlet wrapping and representing 
the script.</p>
-<h2 id="default-servlets">Default Servlet(s)</h2>
+<h2 id="default-servlets">Default Servlet(s)<a class="headerlink" 
href="#default-servlets" title="Permanent link">&para;</a></h2>
 <p>As explained in the Resolution Process section above, a default Servlet is 
selected if no servlet (or script) for the current resource type can be found. 
To make the provisioning of a default Servlet as versatile as provisioning per 
resource type Servlets (or scripts), the default Servlet is selected with just 
a special resource type <code>sling/servlet/default</code>.</p>
 <p>The actual Servlet or Script called as the default Servlet is resolved 
exactly the same way as for any resource type. That is, also for the default 
Servlet selection, the request selectors and extension or method are 
considered. Also, the Servlet may be a Servlet registered as an OSGi service or 
it may be a Script stored in the repository or provided by any bundle.</p>
 <p>Finally, if not even a registered default Servlet may be resolved for the 
request, because none has been registered, the <code>servlets/resolver</code> 
bundle provides a fall back the <code>DefaultServlet</code> with the following 
functionality:</p>
@@ -259,11 +281,11 @@ The mechanism helping the provider here
 <li>If an <code>NonExistingResource</code> was created for the request the 
<code>DefaultServlet</code> sends a 404 (Not Found)</li>
 <li>Otherwise the <code>DefaultServlet</code> sends a 500 (Internal Server 
Error), because normally at least a <code>NonExistingResource</code> should be 
created</li>
 </ul>
-<h2 id="optingservlet-interface">OptingServlet interface</h2>
+<h2 id="optingservlet-interface">OptingServlet interface<a class="headerlink" 
href="#optingservlet-interface" title="Permanent link">&para;</a></h2>
 <p>If a registered servlet implements the OptingServlet interface, Sling uses 
that servlet's <code>accepts(SlingHttpServletRequest request)</code> method to 
refine the servlet resolution process.</p>
 <p>In this case, the servlet is only selected for processing the current 
request if its <code>accept</code> method returns true.</p>
 <p>While an opting servlet seems to be a nice way of picking the right servlet 
to process the request, the use of an opting servlet is not recommended: the 
main reason is that it complicates the request processing, makes it less 
transparent what is going on during a request and prevents optimizations like 
caching the script resolution in an optimal manner. The other static options 
are usually sufficient for all use cases.</p>
-<h2 id="error-handler-servlets-or-scripts">Error Handler Servlet(s) or 
Scripts</h2>
+<h2 id="error-handler-servlets-or-scripts">Error Handler Servlet(s) or 
Scripts<a class="headerlink" href="#error-handler-servlets-or-scripts" 
title="Permanent link">&para;</a></h2>
 <p>Error handling support is now described on the <a 
href="/documentation/the-sling-engine/errorhandling.html">Errorhandling</a> 
page.</p>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; 
text-align: right;">
         Rev. 1678488 by cziegeler on Sat, 9 May 2015 12:43:11 +0000

Modified: 
websites/staging/sling/trunk/content/documentation/the-sling-engine/sling-api-crud-support.html
==============================================================================
--- 
websites/staging/sling/trunk/content/documentation/the-sling-engine/sling-api-crud-support.html
 (original)
+++ 
websites/staging/sling/trunk/content/documentation/the-sling-engine/sling-api-crud-support.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 - Sling API CRUD Support</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>Sling API CRUD Support</h1>
-      <div class="toc">
+      <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>
+<div class="toc">
 <ul>
 <li><a href="#apache-sling-api-support">Apache Sling API Support</a></li>
 <li><a href="#comparing-sling-api-crud-to-sling-post-servlet">Comparing Sling 
API CRUD to Sling Post Servlet</a><ul>
@@ -106,7 +128,7 @@
 <li><a href="#value-class-support">Value Class Support</a></li>
 </ul>
 </div>
-<h2 id="apache-sling-api-support">Apache Sling API Support</h2>
+<h2 id="apache-sling-api-support">Apache Sling API Support<a 
class="headerlink" href="#apache-sling-api-support" title="Permanent 
link">&para;</a></h2>
 <p>As of version 2.3.0, the Sling API provides full Create Read Update Delete 
(CRUD) features.  CRUD support is provided by the addition of the following 
methods to the ResourceResolver:</p>
 <ul>
 <li><a 
href="https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#delete-org.apache.sling.api.resource.Resource-";>void
 delete(Resource resource) throws PersistenceException</a></li>
@@ -117,9 +139,9 @@
 <li><a 
href="https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#refresh--";>void
 refresh()</a></li>
 </ul>
 <p>Which provide the ability to create and delete resources as well as the 
addition of the ModifiableValueMap interface which is similar to the ValueMap 
interface, but allows for updating properties on a resource.</p>
-<h2 id="comparing-sling-api-crud-to-sling-post-servlet">Comparing Sling API 
CRUD to Sling Post Servlet</h2>
+<h2 id="comparing-sling-api-crud-to-sling-post-servlet">Comparing Sling API 
CRUD to Sling Post Servlet<a class="headerlink" 
href="#comparing-sling-api-crud-to-sling-post-servlet" title="Permanent 
link">&para;</a></h2>
 <p>Here are some examples of common operations performed using the Sling Post 
Servlet and Sling API CRUD support.  Note, the examples are derived from the <a 
href="http://dev.day.com/content/ddc/blog/2008/07/cheatsheet/_jcr_content/images/cheatsheet/back.png";>SlingPostServlet
 Cheatsheet</a>.</p>
-<h3 id="updating-a-property">Updating a Property</h3>
+<h3 id="updating-a-property">Updating a Property<a class="headerlink" 
href="#updating-a-property" title="Permanent link">&para;</a></h3>
 <p>Update /myresource, setting the title and body:</p>
 <p><strong>Sling Post Servlet</strong></p>
 <div class="codehilite"><pre><span class="nt">&lt;form</span> <span 
class="na">action=</span><span class="s">&quot;/myresource&quot;</span> <span 
class="na">method=</span><span class="s">&quot;POST&quot;</span><span 
class="nt">&gt;</span>
@@ -138,7 +160,7 @@
 </pre></div>
 
 
-<h3 id="create-new-resource">Create New Resource</h3>
+<h3 id="create-new-resource">Create New Resource<a class="headerlink" 
href="#create-new-resource" title="Permanent link">&para;</a></h3>
 <p>Create a new resource below /myresource</p>
 <p><strong>Sling Post Servlet</strong></p>
 <div class="codehilite"><pre><span class="nt">&lt;form</span> <span 
class="na">action=</span><span class="s">&quot;/myresource/&quot;</span> <span 
class="na">method=</span><span class="s">&quot;POST&quot;</span><span 
class="nt">&gt;</span>
@@ -157,7 +179,7 @@
 </pre></div>
 
 
-<h3 id="remove-a-property">Remove a Property</h3>
+<h3 id="remove-a-property">Remove a Property<a class="headerlink" 
href="#remove-a-property" title="Permanent link">&para;</a></h3>
 <p>Remove the property title</p>
 <p><strong>Sling Post Servlet</strong></p>
 <div class="codehilite"><pre><span class="nt">&lt;form</span> <span 
class="na">action=</span><span class="s">&quot;/myresource&quot;</span> <span 
class="na">method=</span><span class="s">&quot;POST&quot;</span><span 
class="nt">&gt;</span>
@@ -174,7 +196,7 @@
 </pre></div>
 
 
-<h3 id="copy-a-resource">Copy a Resource</h3>
+<h3 id="copy-a-resource">Copy a Resource<a class="headerlink" 
href="#copy-a-resource" title="Permanent link">&para;</a></h3>
 <p>Copy the resource /myresource to /myresource2</p>
 <p><strong>Sling Post Servlet</strong></p>
 <div class="codehilite"><pre><span class="nt">&lt;form</span> <span 
class="na">action=</span><span class="s">&quot;/myresource&quot;</span> <span 
class="na">method=</span><span class="s">&quot;POST&quot;</span><span 
class="nt">&gt;</span>
@@ -192,7 +214,7 @@
 </pre></div>
 
 
-<h3 id="move-a-resource">Move a Resource</h3>
+<h3 id="move-a-resource">Move a Resource<a class="headerlink" 
href="#move-a-resource" title="Permanent link">&para;</a></h3>
 <p>Move the resource /myresource2 to /myresource3</p>
 <p><strong>Sling Post Servlet</strong></p>
 <div class="codehilite"><pre><span class="nt">&lt;form</span> <span 
class="na">action=</span><span class="s">&quot;/myresource2&quot;</span> <span 
class="na">method=</span><span class="s">&quot;POST&quot;</span><span 
class="nt">&gt;</span>
@@ -211,7 +233,7 @@
 </pre></div>
 
 
-<h3 id="setting-non-string-value">Setting non-String Value</h3>
+<h3 id="setting-non-string-value">Setting non-String Value<a 
class="headerlink" href="#setting-non-string-value" title="Permanent 
link">&para;</a></h3>
 <p>Set the property date to a particular date</p>
 <p><strong>Sling Post Servlet</strong></p>
 <div class="codehilite"><pre><span class="nt">&lt;form</span> <span 
class="na">action=</span><span class="s">&quot;/myresource3&quot;</span> <span 
class="na">method=</span><span class="s">&quot;POST&quot;</span><span 
class="nt">&gt;</span>
@@ -230,7 +252,7 @@
 </pre></div>
 
 
-<h3 id="delete-a-resource">Delete a Resource</h3>
+<h3 id="delete-a-resource">Delete a Resource<a class="headerlink" 
href="#delete-a-resource" title="Permanent link">&para;</a></h3>
 <p>Delete the resource /myresource</p>
 <p><strong>Sling Post Servlet</strong></p>
 <div class="codehilite"><pre><span class="nt">&lt;form</span> <span 
class="na">action=</span><span class="s">&quot;/myresource&quot;</span> <span 
class="na">method=</span><span class="s">&quot;POST&quot;</span><span 
class="nt">&gt;</span>
@@ -246,7 +268,7 @@
 </pre></div>
 
 
-<h2 id="value-class-support">Value Class Support</h2>
+<h2 id="value-class-support">Value Class Support<a class="headerlink" 
href="#value-class-support" title="Permanent link">&para;</a></h2>
 <div class="info">
     Please note, this information is specific to the Sling JCR Resource 
implementation provided by the Apache Sling project.  Other implementations may 
have different value class support.  
 </div>

Modified: 
websites/staging/sling/trunk/content/documentation/the-sling-engine/sling-properties.html
==============================================================================
--- 
websites/staging/sling/trunk/content/documentation/the-sling-engine/sling-properties.html
 (original)
+++ 
websites/staging/sling/trunk/content/documentation/the-sling-engine/sling-properties.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 - Well-known Sling Properties</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>Well-known Sling Properties</h1>
-      <p>This table lists properties which have known functionality in the 
OSGi and Sling frameworks.</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>This table lists properties which have known functionality in the OSGi and 
Sling frameworks.</p>
 <p>With the exception of the Sling setup properties (<code>sling.home</code>, 
<code>sling.launchpad</code>, and <code>sling.properties</code>) all properties 
can be set on the command line using the <code>-D</code> command line option or 
in the <code>sling.properties</code> file. Properties defined on the command 
line or in the <code>web.xml</code> file always overwrite properties in the 
<code>sling.properties</code> file.</p>
 <div class="toc">
 <ul>
@@ -100,8 +122,8 @@
 <li><a href="#http-service-properties">Http Service Properties</a></li>
 </ul>
 </div>
-<h2 id="sling-setup-properties">Sling Setup Properties</h2>
-<table>
+<h2 id="sling-setup-properties">Sling Setup Properties<a class="headerlink" 
href="#sling-setup-properties" title="Permanent link">&para;</a></h2>
+<table class="table">
 <thead>
 <tr>
 <th>Property</th>
@@ -127,8 +149,8 @@
 </tr>
 </tbody>
 </table>
-<h2 id="server-control-port-properties">Server Control Port Properties</h2>
-<table>
+<h2 id="server-control-port-properties">Server Control Port Properties<a 
class="headerlink" href="#server-control-port-properties" title="Permanent 
link">&para;</a></h2>
+<table class="table">
 <thead>
 <tr>
 <th>Property</th>
@@ -149,9 +171,9 @@
 </tr>
 </tbody>
 </table>
-<h2 id="logging-configuration">Logging Configuration</h2>
+<h2 id="logging-configuration">Logging Configuration<a class="headerlink" 
href="#logging-configuration" title="Permanent link">&para;</a></h2>
 <p>Logging configuration defined by these properties sets up initial 
configuration for the Sling Commons Log bundle. This configuration is used as 
long as there is no configuration from the Configuration Admin Service for the 
service PID <code>org.apache.sling.commons.log.LogManager</code>.</p>
-<table>
+<table class="table">
 <thead>
 <tr>
 <th>Property</th>
@@ -193,8 +215,8 @@
 </tbody>
 </table>
 <p>See <a href="http://sling.apache.org/site/logging.html";>Logging</a> for 
full information on configuring the Sling Logging system.</p>
-<h2 id="http-service-properties">Http Service Properties</h2>
-<table>
+<h2 id="http-service-properties">Http Service Properties<a class="headerlink" 
href="#http-service-properties" title="Permanent link">&para;</a></h2>
+<table class="table">
 <thead>
 <tr>
 <th>Property</th>


Reply via email to