incubator-sling-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r818658 [13/23] - in /websites/staging/sling/trunk/content: ./ tutorials-how-tos/
Date Tue, 22 May 2012 08:25:36 GMT
Modified: websites/staging/sling/trunk/content/mappings-for-resource-resolution.html
==============================================================================
--- websites/staging/sling/trunk/content/mappings-for-resource-resolution.html (original)
+++ websites/staging/sling/trunk/content/mappings-for-resource-resolution.html Tue May 22 08:25:32 2012
@@ -82,198 +82,87 @@
         <a href="/">Home</a>
       </div>
       <h1>Mappings for Resource Resolution</h1>
-      <p><a name="MappingsforResourceResolution-MappingsforResourceResolution"></a></p>
-<h1 id="mappings-for-resource-resolution">Mappings for Resource Resolution</h1>
-<p><a name="MappingsforResourceResolution-Configuration"></a></p>
+      <h1 id="mappings-for-resource-resolution">Mappings for Resource Resolution</h1>
 <h2 id="configuration">Configuration</h2>
-<p><a name="MappingsforResourceResolution-Properties"></a></p>
 <h3 id="properties">Properties</h3>
-<p>The mapping of request URLs to resources is mainly configured in a
-configuration tree which is (by default) located below <em>/etc/map</em>. The
-actual location can be configured with the
-<em>resource.resolver.map.location</em> property of the
-<em>org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl</em>
-configuration.</p>
-<p>When dealing with the new resource resolution we have a number of
-properties influencing the process:
-<em> </em>sling:match<em> -- This property when set on a node in the </em>/etc/map<em> tree (see below) defines a partial regular expression which is used instead of the node's name to match the incoming request. This property is only needed if the regular expression includes characters which are not valid JCR name characters. The list of invalid characters for JCR names is: /, :, [, ](,-.html)
-, *, ', ", \| and any whitespace except blank space. In addition a name
-without a name space may not be </em>.<em> or </em>..<em> and a blank space is only
-allowed inside the name.
-</em> <em>sling:redirect</em> -- This property when set on a node in the
-<em>/etc/map</em> tree (see below) causes a redirect response to be sent to the
-client, which causes the client to send in a new request with the modified
-location. The value of this property is applied to the actual request and
-sent back as the value of <em>Location</em> response header.
-<em> </em>sling:status<em> -- This property defines the HTTP status code sent to
-the client with the </em>sling:redirect<em> response. If this property is not
-set, it defaults to 302 (Found). Other status codes supported are 300
-(Multiple Choices), 301 (Moved Permanently), 303 (See Other), and 307
-(Temporary Redirect).
-</em> <em>sling:internalRedirect</em> -- This property when set on a node in the
-<em>/etc/map</em> tree (see below) causes the current path to be modified
-internally to continue with resource resolution.
-<em> </em>sling:alias<em> -- The property may be set on any resource to indicate an
-alias name for the resource. For example the resource </em>/content/visitors<em>
-may have the </em>sling:alias<em> property set to </em>besucher<em> allowing the
-resource to be addressed in an URL as </em>/content/besucher*.</p>
-<p><a name="MappingsforResourceResolution-NodeTypes"></a></p>
+<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:
+<em> <code>sling:match</code> -- This property when set on a node in the <code>/etc/map</code> tree (see below) defines a partial regular expression which is used instead of the node's name to match the incoming request. This property is only needed if the regular expression includes characters which are not valid JCR name characters. The list of invalid characters for JCR names is: /, :, [, ](), *, ', ", \| and any whitespace except blank space. In addition a name without a name space may not be <code>.</code> or <code>..</code> and a blank space is only allowed inside the name.
+</em> <code>sling:redirect</code> -- This property when set on a node in the <code>/etc/map</code> tree (see below) causes a redirect response to be sent to the client, which causes the client to send in a new request with the modified location. The value of this property is applied to the actual request and sent back as the value of <code>Location</code> response header.
+<em> <code>sling:status</code> -- This property defines the HTTP status code sent to the client with the <code>sling:redirect</code> response. If this property is not set, it defaults to 302 (Found). Other status codes supported are 300 (Multiple Choices), 301 (Moved Permanently), 303 (See Other), and 307 (Temporary Redirect).
+</em> <code>sling:internalRedirect</code> -- 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.
+* <code>sling:alias</code> -- 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>.</p>
 <h3 id="node-types">Node Types</h3>
-<p>To ease with the definition of redirects and aliases, the following node
-types are defined:
-<em> </em>sling:ResourceAlias<em> -- This mixin node type defines the
-</em>sling:alias<em> property and may be attached to any node, which does not
-otherwise allow setting a property named </em>sling:alias<em>
-</em> <em>sling:MappingSpec</em> -- This mixin node type defines the
-<em>sling:match</em>, <em>sling:redirect</em>, <em>sling:status</em>, and
-<em>sling:internaleRedirect</em> properties to define a matching and redirection
-inside the <em>/etc/map</em> hierarchy.
-<em> </em>sling:Mapping<em> -- Primary node type which may be used to easily
-construct entries in the </em>/etc/map<em> tree. The node type extends the
-</em>sling:MappingSpec<em> mixin node type to allow setting the required
-matching and redirection. In addition the </em>sling:Resource<em> mixin node
-type is extended to allow setting a resource type and the
-</em>nt:hierarchyNode<em> node type is extended to allow locating nodes of this
-node type below </em>nt:folder* nodes.</p>
-<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>
-<p><a name="MappingsforResourceResolution-NamespaceMangling"></a></p>
+<p>To ease with the definition of redirects and aliases, the following node types are defined:
+<em> <code>sling:ResourceAlias</code> -- 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>
+</em> <code>sling:MappingSpec</code> -- This mixin node type defines the <code>sling:match</code>, <code>sling:redirect</code>, <code>sling:status</code>, and <code>sling:internaleRedirect</code> properties to define a matching and redirection inside the <code>/etc/map</code> hierarchy.
+* <code>sling:Mapping</code> -- 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.</p>
+<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>
-<p>There are systems accessing Sling, which have a hard time handling URLs
-containing colons -- <em>:</em> -- in the path part correctly. Since URLs
-produced and supported by Sling may colons because JCR Item based resources
-may be namespaced (e.g. <em>jcr:content</em>), a special namespace mangling
-feature is built into the <em>ResourceResolver.resolve</em> and
-<em>ResourceResolver(map)</em> methods.</p>
-<p>Namespace mangling operates such, that any namespace prefix identified in
-resource path to be mapped as an URL in the <em>map</em> methods is modified
-such that the prefix is enclosed in underscores and the colon removed.</p>
-<p><em>Example</em>: The path <em>/content/_a_sample/jcr:content/jcr:data.png</em> is
-modified by namespace mangling in the <em>map</em> method to get at
-<em>/content/_a_sample/_jcr_content/_jcr_data.png</em>.</p>
-<p>Conversely the <em>resolve</em> 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 <em>/content/<em>a_sample/_jcr_content/_jcr_data.png{</em></em>}
-<em>is modified by namespace mangling in the</em> <em>{<em>}resolve{</em></em>} <em>method to
-get</em> <em><em>/content/_a_sample/jcr:content/jcr:data.png{</em>}{</em>}<em>. The prefix</em>
-<em><em>_a{</em>}{</em>}<em>{</em>} is not modified because there is no registered
-namespace with prefix <em>a</em>. On the other hand the prefix <em>{<em>}jcr{</em></em>} is
-modified because there is of course a registered namespace with prefix
-<em>jcr</em>.</p>
-<p><a name="MappingsforResourceResolution-RootLevelMappings"></a></p>
+<p>There are systems accessing Sling, which have a hard time handling URLs containing colons -- <code>:</code> -- in the path part correctly. Since URLs produced and supported by Sling may 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>
-<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 <em>{scheme}/{host.port}/{uri_path*}. This string is then
-matched against mapping entries below </em>/etc/map* 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>
-<p><a name="MappingsforResourceResolution-MappingEntrySpecification"></a></p>
+<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>
-<p>Each entry in the mapping table is a regular expression, which is
-constructed from the resource path below <em>/etc/map</em>. If any resource
-along the path has a <em>sling:match</em> property, the respective value is used
-in the corresponding segment instead of the resource name. Only resources
-either having a <em>sling:redirect</em> or <em>sling:internalRedirect</em> property
-are used as table entries. Other resources in the tree are just used to
-build the mapping structure.</p>
+<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>
 <div class="codehilite"><pre><span class="sr">/etc/m</span><span class="n">ap</span>
       <span class="o">+--</span> <span class="n">http</span>
-       <span class="o">+--</span> <span class="n">example</span><span class="o">.</span><span class="n">com</span><span class="mf">.80</span>
-        <span class="o">+--</span> <span class="n">sling:redirect</span> <span class="o">=</span> <span class="s">&quot;http://www.example.com/&quot;</span>
-       <span class="o">+--</span> <span class="n">www</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span><span class="mf">.80</span>
-        <span class="o">+--</span> <span class="n">sling:internalRedirect</span> <span class="o">=</span> <span class="s">&quot;/example&quot;</span>
-       <span class="o">+--</span> <span class="n">any_example</span><span class="o">.</span><span class="n">com</span><span class="mf">.80</span>
-        <span class="o">+--</span> <span class="n">sling:match</span> <span class="o">=</span> <span class="s">&quot;.+\.example\.com\.80&quot;</span>
-        <span class="o">+--</span> <span class="n">sling:redirect</span> <span class="o">=</span> <span class="s">&quot;http://www.example.com/&quot;</span>
-       <span class="o">+--</span> <span class="n">localhost_any</span>
-        <span class="o">+--</span> <span class="n">sling:match</span> <span class="o">=</span> <span class="s">&quot;localhost\.\d*&quot;</span>
-        <span class="o">+--</span> <span class="n">sling:internalRedirect</span> <span class="o">=</span> <span class="s">&quot;/content&quot;</span>
-        <span class="o">+--</span> <span class="n">cgi</span><span class="o">-</span><span class="n">bin</span>
-             <span class="o">+--</span> <span class="n">sling:internalRedirect</span> <span class="o">=</span> <span class="s">&quot;/scripts&quot;</span>
-        <span class="o">+--</span> <span class="n">gateway</span>
-             <span class="o">+--</span> <span class="n">sling:internalRedirect</span> <span class="o">=</span> <span class="s">&quot;http://gbiv.com&quot;</span>
-        <span class="o">+--</span> <span class="p">(</span><span class="n">stories</span><span class="p">)</span>
-             <span class="o">+--</span> <span class="n">sling:internalRedirect</span> <span class="o">=</span> <span class="s">&quot;/anecdotes/$1&quot;</span>
+           <span class="o">+--</span> <span class="n">example</span><span class="o">.</span><span class="n">com</span><span class="mf">.80</span>
+                <span class="o">+--</span> <span class="n">sling:redirect</span> <span class="o">=</span> <span class="s">&quot;http://www.example.com/&quot;</span>
+           <span class="o">+--</span> <span class="n">www</span><span class="o">.</span><span class="n">example</span><span class="o">.</span><span class="n">com</span><span class="mf">.80</span>
+                <span class="o">+--</span> <span class="n">sling:internalRedirect</span> <span class="o">=</span> <span class="s">&quot;/example&quot;</span>
+           <span class="o">+--</span> <span class="n">any_example</span><span class="o">.</span><span class="n">com</span><span class="mf">.80</span>
+                <span class="o">+--</span> <span class="n">sling:match</span> <span class="o">=</span> <span class="s">&quot;.+\.example\.com\.80&quot;</span>
+                <span class="o">+--</span> <span class="n">sling:redirect</span> <span class="o">=</span> <span class="s">&quot;http://www.example.com/&quot;</span>
+           <span class="o">+--</span> <span class="n">localhost_any</span>
+                <span class="o">+--</span> <span class="n">sling:match</span> <span class="o">=</span> <span class="s">&quot;localhost\.\d*&quot;</span>
+                <span class="o">+--</span> <span class="n">sling:internalRedirect</span> <span class="o">=</span> <span class="s">&quot;/content&quot;</span>
+                <span class="o">+--</span> <span class="n">cgi</span><span class="o">-</span><span class="n">bin</span>
+                     <span class="o">+--</span> <span class="n">sling:internalRedirect</span> <span class="o">=</span> <span class="s">&quot;/scripts&quot;</span>
+                <span class="o">+--</span> <span class="n">gateway</span>
+                     <span class="o">+--</span> <span class="n">sling:internalRedirect</span> <span class="o">=</span> <span class="s">&quot;http://gbiv.com&quot;</span>
+                <span class="o">+--</span> <span class="p">(</span><span class="n">stories</span><span class="p">)</span>
+                     <span class="o">+--</span> <span class="n">sling:internalRedirect</span> <span class="o">=</span> <span class="s">&quot;/anecdotes/$1&quot;</span>
 </pre></div>
 
 
 <p>This would define the following mapping entries:
-<table>
-<tr><th> Regular Expression </th><th> Redirect </th><th> Internal </th><th> Description </th></tr>
-<tr><td> http/example.com.80 </td><td> <a href="http://www.example.com">http://www.example.com</a>
- </td><td> no </td><td> Redirect all requests to the Second Level Domain to www </td></tr>
-<tr><td> http/www.example.com.80 </td><td> /example </td><td> yes </td><td> Prefix the URI paths of the
-requests sent to this domain with the string <em>/example</em> </td></tr>
-<tr><td> http/.+.example.com.80 </td><td> <a href="http://www.example.com">http://www.example.com</a>
- </td><td> no </td><td> Redirect all requests to sub domains to www. The actual regular
-expression for the host.port segment is taken from the <em>sling:match</em>
-property. </td></tr>
-<tr><td> http/localhost.\d* </td><td> /content </td><td> yes </td><td> Prefix the URI paths with
-<em>/content</em> for requests to localhost, regardless of actual port the
-request was received on. This entry only applies if the URI path does not
-start with <em>/cgi-bin</em>, <em>gateway</em> or <em>stories</em> because there are
-longer match entries. The actual regular expression for the host.port
-segment is taken from the <em>sling:match</em> property. </td></tr>
-<tr><td> http/localhost.\d<em>/cgi-bin </td><td> /scripts </td><td> yes </td><td> Replace the </em>/cgi-bin<em>
-prefix in the URI path with </em>/scripts<em> for requests to localhost,
-regardless of actual port the request was received on. </td></tr>
-<tr><td> http/localhost.\d</em>/gateway </td><td> <a href="http://gbiv.com">http://gbiv.com</a>
- </td><td> yes </td><td> Replace the <em>/gateway</em> prefix in the URI path with
-<em>[http://gbiv.com]</em> for requests to localhost, regardless of actual port
-the request was received on. </td></tr>
-<tr><td> http/localhost.\d<em>/(stories) </td><td> /anecdotes/stories </td><td> yes </td><td> Prepend the
-URI paths starting with </em>/stories<em> with </em>/anecdotes* for requests to
-localhost, regardless of actual port the request was received on. </td></tr>
-</table></p>
-<p><a name="MappingsforResourceResolution-RegularExpressionmatching"></a></p>
+| Regular Expression | Redirect | Internal | Description |
+|--|--|--|--|
+| http/example.com.80 | <a href="">http://www.example.com</a> | no | Redirect all requests to the Second Level Domain to www |
+| http/www.example.com.80 | /example | yes | Prefix the URI paths of the requests sent to this domain with the string <code>/example</code> |
+| http/.+.example.com.80 | <a href="">http://www.example.com</a> | no | Redirect all requests to sub domains to www. The actual regular expression for the host.port segment is taken from the <code>sling:match</code> property. |
+| http/localhost.\d* | /content | yes | Prefix the URI paths with <code>/content</code> for requests to localhost, regardless of actual port the request was received on. This entry only applies if the URI path does not start with <code>/cgi-bin</code>, <code>gateway</code> or <code>stories</code> because there are longer match entries. The actual regular expression for the host.port segment is taken from the <code>sling:match</code> property. |
+| http/localhost.\d<em>/cgi-bin | /scripts | yes | Replace the <code>/cgi-bin</code> prefix in the URI path with <code>/scripts</code> for requests to localhost, regardless of actual port the request was received on. |
+| http/localhost.\d</em>/gateway | <a href="">http://gbiv.com</a> | yes | Replace the <code>/gateway</code> prefix in the URI path with <code>[http://gbiv.com]</code> for requests to localhost, regardless of actual port the request was received on. |
+| http/localhost.\d*/(stories) | /anecdotes/stories | yes | Prepend the URI paths starting with <code>/stories</code> with <code>/anecdotes</code> for requests to localhost, regardless of actual port the request was received on. |</p>
 <h3 id="regular-expression-matching">Regular Expression matching</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: <em>http/localhost.\d</em>/(stories)*.
-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>
-<div class="codehilite"><pre><span class="n">String</span> <span class="n">path</span> <span class="o">=</span> <span class="n">request</span><span class="o">.</span><span class="n">getScheme</span> <span class="o">+</span> <span class="s">&quot;/&quot;</span> <span class="o">+</span> <span class="n">request</span><span class="o">.</span><span class="n">getServerName</span><span class="p">()</span> <span class="o">+</span> <span class="s">&quot;.&quot;</span> <span class="o">+</span>
+<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>
+<div class="codehilite"><pre><span class="n">String</span> <span class="n">path</span> <span class="o">=</span> <span class="n">request</span><span class="o">.</span><span class="n">getScheme</span> <span class="o">+</span> <span class="s">&quot;/&quot;</span> <span class="o">+</span> <span class="n">request</span><span class="o">.</span><span class="n">getServerName</span><span class="p">()</span> <span class="o">+</span> <span class="s">&quot;.&quot;</span> <span class="o">+</span> <span class="n">request</span><span class="o">.</span><span class="n">getServerPort</span><span class="p">()</span> <span class="o">+</span> <span class="s">&quot;/&quot;</span> <span class="o">+</span> <span class="n">request</span><span class="o">.</span><span class="n">getPathInfo</span><span class="p">();</span>
+<span class="n">String</span> <span class="n">result</span> <span class="o">=</span> <span class="n">null</span><span class="p">;</span>
+<span class="k">for</span> <span class="p">(</span><span class="n">MapEntry</span> <span class="n">entry:</span> <span class="n">mapEntries</span><span class="p">)</span> <span class="p">{</span>
+    <span class="n">Matcher</span> <span class="n">matcher</span> <span class="o">=</span> <span class="n">entry</span><span class="o">.</span><span class="n">pattern</span><span class="o">.</span><span class="n">matcher</span><span class="p">(</span><span class="n">path</span><span class="p">);</span>
+    <span class="k">if</span> <span class="p">(</span><span class="n">matcher</span><span class="o">.</span><span class="n">find</span><span class="p">())</span> <span class="p">{</span>
+        <span class="n">StringBuffer</span> <span class="n">buf</span> <span class="o">=</span> <span class="k">new</span> <span class="n">StringBuffer</span><span class="p">();</span>
+        <span class="n">matcher</span><span class="o">.</span><span class="n">appendReplacement</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span> <span class="n">entry</span><span class="o">.</span><span class="n">getRedirect</span><span class="p">());</span>
+        <span class="n">matcher</span><span class="o">.</span><span class="n">appendTail</span><span class="p">(</span><span class="n">buf</span><span class="p">);</span>
+        <span class="n">result</span> <span class="o">=</span> <span class="n">buf</span><span class="o">.</span><span class="n">toString</span><span class="p">();</span>
+        <span class="n">break</span><span class="p">;</span>
+    <span class="p">}</span>
+<span class="p">}</span>
 </pre></div>
 
 
-<p>request.getServerPort() + "/" + request.getPathInfo();
-    String result = null;
-    for (MapEntry entry: mapEntries) {
-        Matcher matcher = entry.pattern.matcher(path);
-        if (matcher.find()) {
-        StringBuffer buf = new StringBuffer();
-        matcher.appendReplacement(buf, entry.getRedirect());
-        matcher.appendTail(buf);
-        result = buf.toString();
-        break;
-        }
-    }</p>
-<p>At the end of the loop, <em>result</em> contains the mapped path or <em>null</em> if
-no entry matches the request <em>path</em>.</p>
-<p><em>NOTE:</em> Since the entries in the <em>/etc/map</em> 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>
-<p><a name="MappingsforResourceResolution-RedirectionValues"></a></p>
+<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><em>NOTE:</em> 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>
-<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 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>
 <div class="codehilite"><pre><span class="n">String</span> <span class="n">path</span> <span class="o">=</span> <span class="o">....</span><span class="p">;</span>
 <span class="n">String</span> <span class="n">result</span> <span class="o">=</span> <span class="n">path</span><span class="p">;</span>
@@ -283,70 +172,43 @@ path into the resource tree results.</p>
 </pre></div>
 
 
-<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>
-<p><a name="MappingsforResourceResolution-ResourceTreeAccess"></a></p>
+<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>
-<p>The result of Root Level Mapping is an absolute or relative path to a
-resource. If the path is relative -- e.g. <em>myproject/docroot/sample.gif</em>
--- the resource resolver search path (<em>ResourceResolver.getSearchPath()</em>
-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:
-<em> Check whether the path addresses a so called Star Resource. A Star
-Resource is a resource whose path ends with or contains </em>/*<em>. Such
-resources are used by the </em>SlingPostServlet<em> to create new content below
-an existing resource. If the path after Root Level Mapping is absolute, it
-is made absolute by prepending the first search path entry.
-</em> Check whether the path exists in the repository. if the path is absolute,
-it is tried directly. Otherwise the search path entries are prepended  to
-the path until a resource is found or the search path is exhausted without
-finding a resource.
-<em> Drill down the resource tree starting from the root, optionally using the
-search path until a resource is found.
+<p>The result of Root Level Mapping is an absolute or relative path to a resource. If the path is relative -- e.g. <code>myproject/docroot/sample.gif</code> -- 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:
+<em> Check whether the path addresses a so called Star Resource. A Star Resource is a resource whose path ends with or contains <code>/\*</code>. Such resources are used by the <code>SlingPostServlet</code> to create new content below an existing resource. If the path after Root Level Mapping is absolute, it is made absolute by prepending the first search path entry.
+</em> Check whether the path exists in the repository. if the path is absolute, it is tried directly. Otherwise the search path entries are prepended  to the path until a resource is found or the search path is exhausted without finding a resource.
+<em> Drill down the resource tree starting from the root, optionally using the search path until a resource is found.
 </em> If no resource can be resolved, a Missing Resource is returned.</p>
-<p><a name="MappingsforResourceResolution-DrillingDowntheResourceTree"></a></p>
 <h3 id="drilling-down-the-resource-tree">Drilling Down the Resource Tree</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 <em>sling:alias</em> 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>
+<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>
 <div class="codehilite"><pre><span class="n">String</span> <span class="n">path</span> <span class="o">=</span> <span class="o">...</span><span class="p">;</span> <span class="sr">//</span> <span class="n">the</span> <span class="n">absolute</span> <span class="n">path</span>
 <span class="n">Resource</span> <span class="n">current</span> <span class="o">=</span> <span class="n">getResource</span><span class="p">(</span><span class="s">&quot;/&quot;</span><span class="p">);</span>
-<span class="n">String</span><span class="o">[]</span>
+<span class="n">String</span><span class="o">[]</span> <span class="n">segments</span> <span class="o">=</span> <span class="n">path</span><span class="o">.</span><span class="nb">split</span><span class="p">(</span><span class="s">&quot;/&quot;</span><span class="p">);</span>
+<span class="k">for</span> <span class="p">(</span><span class="n">String</span> <span class="n">segment:</span> <span class="n">segments</span><span class="p">)</span> <span class="p">{</span>
+    <span class="n">Resource</span> <span class="n">child</span> <span class="o">=</span> <span class="n">getResource</span><span class="p">(</span><span class="n">current</span><span class="p">,</span> <span class="n">segment</span><span class="p">);</span>
+    <span class="k">if</span> <span class="p">(</span><span class="n">child</span> <span class="o">==</span> <span class="n">null</span><span class="p">)</span> <span class="p">{</span>
+        <span class="n">Iterator</span><span class="sr">&lt;Resource&gt;</span> <span class="n">children</span> <span class="o">=</span> <span class="n">listChildren</span><span class="p">(</span><span class="n">current</span><span class="p">);</span>
+        <span class="n">current</span> <span class="o">=</span> <span class="n">null</span><span class="p">;</span>
+        <span class="k">while</span> <span class="p">(</span><span class="n">children</span><span class="o">.</span><span class="n">hasNext</span><span class="p">())</span> <span class="p">{</span>
+            <span class="n">child</span> <span class="o">=</span> <span class="n">children</span><span class="o">.</span><span class="k">next</span><span class="p">();</span>
+            <span class="k">if</span> <span class="p">(</span><span class="n">segment</span><span class="o">.</span><span class="n">equals</span><span class="p">(</span><span class="n">getSlingAlias</span><span class="p">(</span><span class="n">child</span><span class="p">)))</span> <span class="p">{</span>
+                <span class="n">current</span> <span class="o">=</span> <span class="n">child</span><span class="p">;</span>
+                <span class="n">break</span><span class="p">;</span>
+            <span class="p">}</span>
+        <span class="p">}</span>
+        <span class="k">if</span> <span class="p">(</span><span class="n">current</span> <span class="o">==</span> <span class="n">null</span><span class="p">)</span> <span class="p">{</span>
+            <span class="sr">//</span> <span class="n">fail</span>
+            <span class="n">break</span><span class="p">;</span>
+        <span class="p">}</span>
+    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
+        <span class="n">current</span> <span class="o">=</span> <span class="n">child</span><span class="p">;</span>
+    <span class="p">}</span>
+<span class="p">}</span>
 </pre></div>
-
-
-<p>segments = path.split("/");
-    for (String segment: segments) {
-        Resource child = getResource(current, segment);
-        if (child == null) {
-        Iterator<Resource> children = listChildren(current);
-        current = null;
-        while (children.hasNext()) {
-            child = children.next();
-            if (segment.equals(getSlingAlias(child))) {
-            current = child;
-            break;
-            }
-        }
-        if (current == null) {
-            // fail
-            break;
-        }
-        } else {
-        current = child;
-        }
-    }</p>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1328899 by fmeschbe on Sun, 22 Apr 2012 16:52:13 +0000
+        Rev. 1341347 by fmeschbe on Tue, 22 May 2012 08:25:18 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project

Modified: websites/staging/sling/trunk/content/maven-archetypes.html
==============================================================================
--- websites/staging/sling/trunk/content/maven-archetypes.html (original)
+++ websites/staging/sling/trunk/content/maven-archetypes.html Tue May 22 08:25:32 2012
@@ -82,48 +82,21 @@
         <a href="/">Home</a>
       </div>
       <h1>Maven Archetypes</h1>
-      <p>Sling includes four Maven archetypes to quick start development. See <a href="http://maven.apache.org/archetype/maven-archetype-plugin/">http://maven.apache.org/archetype/maven-archetype-plugin/</a>
- for general information on using Maven archetypes. The Maven groupId for
-all Sling archetypes is <em>org.apache.sling</em>.</p>
-<p><a name="MavenArchetypes-sling-launchpad-standalone-archetype"></a></p>
+      <p>Sling includes four Maven archetypes to quick start development. See <a href="">http://maven.apache.org/archetype/maven-archetype-plugin/</a> for general information on using Maven archetypes. The Maven groupId for all Sling archetypes is <code>org.apache.sling</code>.</p>
 <h3 id="sling-launchpad-standalone-archetype">sling-launchpad-standalone-archetype</h3>
-<p>This archetype generates a Maven project which will build a standalone
-Launchpad JAR file using the default bundle set. For demonstration
-purposes, the generated project includes an extra bundle list file
-(<em>src/main/bundles/list</em>) which includes Apache Felix FileInstall as well
-as a test configuration file (<em>src/test/config/sling.properties</em>).</p>
-<p><a name="MavenArchetypes-sling-launchpad-webapp-archetype"></a></p>
+<p>This archetype generates a Maven project which will build a standalone Launchpad JAR file using the default bundle set. For demonstration purposes, the generated project includes an extra bundle list file (<code>src/main/bundles/list</code>) which includes Apache Felix FileInstall as well as a test configuration file (<code>src/test/config/sling.properties</code>).</p>
 <h3 id="sling-launchpad-webapp-archetype">sling-launchpad-webapp-archetype</h3>
-<p>This archetype generates a Maven project which will build a Launchpad WAR
-file using the default bundle set. For demonstration purposes, the
-generated project includes an extra bundle list file
-(<em>src/main/bundles/list</em>) which includes Apache Felix FileInstall as well
-as a test configuration file (<em>src/test/config/sling.properties</em>).</p>
-<p><a name="MavenArchetypes-sling-intitial-content-archetype"></a></p>
+<p>This archetype generates a Maven project which will build a Launchpad WAR file using the default bundle set. For demonstration purposes, the generated project includes an extra bundle list file (<code>src/main/bundles/list</code>) which includes Apache Felix FileInstall as well as a test configuration file (<code>src/test/config/sling.properties</code>).</p>
 <h3 id="sling-intitial-content-archetype">sling-intitial-content-archetype</h3>
-<p>This archetype generates a Maven project which will build an OSGi bundle
-that supports JCR NodeType registration (in
-<em>SLING-INF/nodetypes/nodetypes.cnd</em>) and initial content loading (in
-<em>SLING-INF/scripts</em> and <em>SLING-INF/content</em>).</p>
-<p><a name="MavenArchetypes-sling-servlet-archetype"></a></p>
+<p>This archetype generates a Maven project which will build an OSGi bundle that supports JCR NodeType registration (in <code>SLING-INF/nodetypes/nodetypes.cnd</code>) and initial content loading (in <code>SLING-INF/scripts</code> and <code>SLING-INF/content</code>).</p>
 <h3 id="sling-servlet-archetype">sling-servlet-archetype</h3>
-<p>This archetype generates a Maven project which will build an OSGi bundle
-containing two Servlets registered with Sling, one registered by path and
-one registered by resource type.</p>
-<p><a name="MavenArchetypes-sling-bundle-archetype"></a></p>
+<p>This archetype generates a Maven project which will build an OSGi bundle containing two Servlets registered with Sling, one registered by path and one registered by resource type.</p>
 <h3 id="sling-bundle-archetype">sling-bundle-archetype</h3>
-<p>This archetype generates a Maven project which will build a basic OSGi
-bundle including support for the Felix SCR Annotations. It is
-pre-configured to install using the Felix Web Console when the profile
-<em>autoInstallBundle</em> is activated.</p>
-<p><a name="MavenArchetypes-sling-jcrinstall-bundle-archetype"></a></p>
+<p>This archetype generates a Maven project which will build a basic OSGi bundle including support for the Felix SCR Annotations. It is pre-configured to install using the Felix Web Console when the profile <code>autoInstallBundle</code> is activated.</p>
 <h3 id="sling-jcrinstall-bundle-archetype">sling-jcrinstall-bundle-archetype</h3>
-<p>This archetype generates a Maven project which will build a basic OSGi
-bundle including support for the Felix SCR Annotations. It is
-pre-configured to install using a WebDAV PUT into the JCR when the profile
-<em>autoInstallBundle</em> is activated.</p>
+<p>This archetype generates a Maven project which will build a basic OSGi bundle including support for the Felix SCR Annotations. It is pre-configured to install using a WebDAV PUT into the JCR when the profile <code>autoInstallBundle</code> is activated.</p>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1328899 by fmeschbe on Sun, 22 Apr 2012 16:52:13 +0000
+        Rev. 1341347 by fmeschbe on Tue, 22 May 2012 08:25:18 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project

Modified: websites/staging/sling/trunk/content/maven-launchpad-plugin.html
==============================================================================
--- websites/staging/sling/trunk/content/maven-launchpad-plugin.html (original)
+++ websites/staging/sling/trunk/content/maven-launchpad-plugin.html Tue May 22 08:25:32 2012
@@ -82,123 +82,80 @@
         <a href="/">Home</a>
       </div>
       <h1>Maven Launchpad Plugin</h1>
-      <p><a name="MavenLaunchpadPlugin-MavenLaunchpadPlugin"></a></p>
-<h1 id="maven-launchpad-plugin">Maven Launchpad Plugin</h1>
-<p>The Maven Launchpad Plugin provides goals which facilitate the creation of
-OSGi applications. It supports the following runtime scenarios:
+      <h1 id="maven-launchpad-plugin">Maven Launchpad Plugin</h1>
+<p>The Maven Launchpad Plugin provides goals which facilitate the creation of OSGi applications. It supports the following runtime scenarios:
 <em> A WAR file suitable for running in a JavaEE servlet container.
-</em> A standalone Java application, with HTTP support from the Felix
-HttpService implementation
+</em> A standalone Java application, with HTTP support from the Felix HttpService implementation
 * Inside Apache Karaf</p>
-<p>In addition, the Maven Launchpad Plugin supports the publishing of an
-application descriptor, in the form of a <em>bundle list</em>, as a Maven
-artifact. This descriptor can then be used by downstream application
-builders as the basis for other applications. In Sling, this is embodied by
-two Maven projects:
-<em> <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/builder">org.apache.sling.launchpad</a>
- - produces an application descriptor.
-</em> <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/builder/testing">org.apache.sling.launchpad.testing</a>
- - uses the application descriptor from <em>org.apache.sling.launchpad</em> and
-adds two bundles.</p>
+<p>In addition, the Maven Launchpad Plugin supports the publishing of an application descriptor, in the form of a <em>bundle list</em>, as a Maven artifact. This descriptor can then be used by downstream application builders as the basis for other applications. In Sling, this is embodied by two Maven projects:
+<em> <a href="">org.apache.sling.launchpad</a> - produces an application descriptor.
+</em> <a href="">org.apache.sling.launchpad.testing</a> - uses the application descriptor from <code>org.apache.sling.launchpad</code> and adds two bundles.</p>
 <p>Maven Launchpad Plugin provides the following goals: 
-<table>
-<tr><th> Goals </th><th> Description </th></tr>
-<tr><td> launchpad:prepare-package </td><td> Create the file system structure required by
-Sling's Launchpad framework. </td></tr>
-<tr><td> launchpad:attach-bundle-list </td><td> Attach the bundle list descriptor to the
-current project as a Maven artifact. </td></tr>
-<tr><td> launchpad:create-karaf-descriptor </td><td> Create an Apache Karaf Feature
-descriptor. </td></tr>
-<tr><td> launchpad:create-bundle-jar </td><td> Create a JAR file containing the bundles in
-a Launchpad-structured JAR file. </td></tr>
-<tr><td> launchpad:check-bundle-list-for-snapshots </td><td> Validate that the bundle list
-does not contain any SNAPSHOT versions. </td></tr>
-<tr><td> launchpad:run </td><td> Run a Launchpad application. </td></tr>
-<tr><td> launchpad:start </td><td> Start a Launchpad application. </td></tr>
-<tr><td> launchpad:stop </td><td> Stop a Launchpad application. </td></tr>
-<tr><td> launchpad:output-bundle-list </td><td> Output the bundle list to the console as
-XML. (added in version 2.0.8) </td></tr>
-</table></p>
-<p><a name="MavenLaunchpadPlugin-GeneralConfiguration"></a></p>
+| Goals | Description | 
+|--|--|
+| launchpad:prepare-package | Create the file system structure required by Sling's Launchpad framework. | 
+| launchpad:attach-bundle-list | Attach the bundle list descriptor to the current project as a Maven artifact. | 
+| launchpad:create-karaf-descriptor | Create an Apache Karaf Feature descriptor. | 
+| launchpad:create-bundle-jar | Create a JAR file containing the bundles in a Launchpad-structured JAR file. | 
+| launchpad:check-bundle-list-for-snapshots | Validate that the bundle list does not contain any SNAPSHOT versions. | 
+| launchpad:run | Run a Launchpad application. |
+| launchpad:start | Start a Launchpad application. |
+| launchpad:stop | Stop a Launchpad application. |
+| launchpad:output-bundle-list | Output the bundle list to the console as XML. (added in version 2.0.8) |</p>
 <h3 id="general-configuration">General Configuration</h3>
-<p>In general, the bulk of the configuration of the Maven Launchpad Plugin is
-concerned with setting up the bundle list which all of the goals will use.
-This bundle list is created using the following steps:
-1. If <em>includeDefaultBundles</em> is <em>true</em> (the default), the default
-bundle list is loaded. By default, this is
-<em>org.apache.sling.launchpad:org.apache.sling.launchpad:RELEASE:xml:bundlelist</em>,
-but can be overridden by setting the <em>defaultBundleList</em> plugin
-parameter.
-1. If <em>includeDefaultBundles</em> is <em>false</em>, an empty list is created.
-1. If the bundle list file exists (by default, at
-<em>src/main/bundles/list.xml</em>), the bundles defined in it are added to the
-bundle list.
-1. If the <em>additionalBundles</em> plugin parameter is defined, those bundles
-are added to the bundle list.
-1. If the <em>bundleExclusions</em> plugin parameter is defined, those bundles
-are removed from the bundle list.</p>
-<p>When a bundle is added to the bundle list, if a bundle with the same
-groupId, artifactId, type, and classifier is already in the bundle list,
-the version of the existing bundle is modified. However, the start level of
-a bundle is never changed once that bundle is added to the bundle list.</p>
-<p>The plugin may also contribute bundles to (or remove bundles from) the
-bundle list as it sees fit.</p>
-<p><a name="MavenLaunchpadPlugin-FrameworkConfiguration"></a></p>
+<p>In general, the bulk of the configuration of the Maven Launchpad Plugin is concerned with setting up the bundle list which all of the goals will use. This bundle list is created using the following steps:
+1. If <code>includeDefaultBundles</code> is <code>true</code> (the default), the default bundle list is loaded. By default, this is <code>org.apache.sling.launchpad:org.apache.sling.launchpad:RELEASE:xml:bundlelist</code>, but can be overridden by setting the <code>defaultBundleList</code> plugin parameter.
+1. If <code>includeDefaultBundles</code> is <code>false</code>, an empty list is created.
+1. If the bundle list file exists (by default, at <code>src/main/bundles/list.xml</code>), the bundles defined in it are added to the bundle list.
+1. If the <code>additionalBundles</code> plugin parameter is defined, those bundles are added to the bundle list.
+1. If the <code>bundleExclusions</code> plugin parameter is defined, those bundles are removed from the bundle list.</p>
+<p>When a bundle is added to the bundle list, if a bundle with the same groupId, artifactId, type, and classifier is already in the bundle list, the version of the existing bundle is modified. However, the start level of a bundle is never changed once that bundle is added to the bundle list.</p>
+<p>The plugin may also contribute bundles to (or remove bundles from) the bundle list as it sees fit.</p>
 <h3 id="framework-configuration">Framework Configuration</h3>
-<p>For the <em>run</em> and <em>start</em> goals, the plugin will look for a file named
-<em>src/test/config/sling.properties</em>. If this file is present, it will be
-filtered using standard Maven filtering and used to populate the OSGi
-framework properties. This can be used, for example, to specify a
-<em>repository.xml</em> file to be used during development:</p>
+<p>For the <code>run</code> and <code>start</code> goals, the plugin will look for a file named <code>src/test/config/sling.properties</code>. If this file is present, it will be filtered using standard Maven filtering and used to populate the OSGi framework properties. This can be used, for example, to specify a <code>repository.xml</code> file to be used during development:</p>
 <div class="codehilite"><pre>sling.repository.config.file.url=<span class="cp">${</span><span class="n">basedir</span><span class="cp">}</span>/src/test/config/repository.xml
 </pre></div>
 
 
-<p><a name="MavenLaunchpadPlugin-BundleListFiles"></a></p>
 <h2 id="bundle-list-files">Bundle List Files</h2>
-<p>The bundle list file uses a simple XML syntax representing a list of
-bundles organized into start levels:</p>
+<p>The bundle list file uses a simple XML syntax representing a list of bundles organized into start levels:</p>
 <div class="codehilite"><pre><span class="cp">&lt;?xml version=&quot;1.0&quot;?&gt;</span>
 <span class="nt">&lt;bundles&gt;</span>
     <span class="nt">&lt;startLevel</span> <span class="na">level=</span><span class="s">&quot;0&quot;</span><span class="nt">&gt;</span>
-    <span class="nt">&lt;bundle&gt;</span>
-        <span class="nt">&lt;groupId&gt;</span>commons-io<span class="nt">&lt;/groupId&gt;</span>
-        <span class="nt">&lt;artifactId&gt;</span>commons-io<span class="nt">&lt;/artifactId&gt;</span>
-        <span class="nt">&lt;version&gt;</span>1.4<span class="nt">&lt;/version&gt;</span>
-    <span class="nt">&lt;/bundle&gt;</span>
-    <span class="nt">&lt;bundle&gt;</span>
-        <span class="nt">&lt;groupId&gt;</span>commons-collections<span class="nt">&lt;/groupId&gt;</span>
-        <span class="nt">&lt;artifactId&gt;</span>commons-collections<span class="nt">&lt;/artifactId&gt;</span>
-        <span class="nt">&lt;version&gt;</span>3.2.1<span class="nt">&lt;/version&gt;</span>
-    <span class="nt">&lt;/bundle&gt;</span>
+        <span class="nt">&lt;bundle&gt;</span>
+            <span class="nt">&lt;groupId&gt;</span>commons-io<span class="nt">&lt;/groupId&gt;</span>
+            <span class="nt">&lt;artifactId&gt;</span>commons-io<span class="nt">&lt;/artifactId&gt;</span>
+            <span class="nt">&lt;version&gt;</span>1.4<span class="nt">&lt;/version&gt;</span>
+        <span class="nt">&lt;/bundle&gt;</span>
+        <span class="nt">&lt;bundle&gt;</span>
+            <span class="nt">&lt;groupId&gt;</span>commons-collections<span class="nt">&lt;/groupId&gt;</span>
+            <span class="nt">&lt;artifactId&gt;</span>commons-collections<span class="nt">&lt;/artifactId&gt;</span>
+            <span class="nt">&lt;version&gt;</span>3.2.1<span class="nt">&lt;/version&gt;</span>
+        <span class="nt">&lt;/bundle&gt;</span>
     <span class="nt">&lt;/startLevel&gt;</span>
 
     <span class="nt">&lt;startLevel</span> <span class="na">level=</span><span class="s">&quot;10&quot;</span><span class="nt">&gt;</span>
-    <span class="nt">&lt;bundle&gt;</span>
-        <span class="nt">&lt;groupId&gt;</span>org.apache.felix<span class="nt">&lt;/groupId&gt;</span>
-        <span class="nt">&lt;artifactId&gt;</span>org.apache.felix.eventadmin<span class="nt">&lt;/artifactId&gt;</span>
-        <span class="nt">&lt;version&gt;</span>1.0.0<span class="nt">&lt;/version&gt;</span>
-    <span class="nt">&lt;/bundle&gt;</span>
+        <span class="nt">&lt;bundle&gt;</span>
+            <span class="nt">&lt;groupId&gt;</span>org.apache.felix<span class="nt">&lt;/groupId&gt;</span>
+            <span class="nt">&lt;artifactId&gt;</span>org.apache.felix.eventadmin<span class="nt">&lt;/artifactId&gt;</span>
+            <span class="nt">&lt;version&gt;</span>1.0.0<span class="nt">&lt;/version&gt;</span>
+        <span class="nt">&lt;/bundle&gt;</span>
     <span class="nt">&lt;/startLevel&gt;</span>
 
     <span class="nt">&lt;startLevel</span> <span class="na">level=</span><span class="s">&quot;15&quot;</span><span class="nt">&gt;</span>
-    <span class="nt">&lt;bundle&gt;</span>
-        <span class="nt">&lt;groupId&gt;</span>org.apache.sling<span class="nt">&lt;/groupId&gt;</span>
-        <span class="nt">&lt;artifactId&gt;</span>org.apache.sling.jcr.api<span class="nt">&lt;/artifactId&gt;</span>
-        <span class="nt">&lt;version&gt;</span>2.0.2-incubator<span class="nt">&lt;/version&gt;</span>
-    <span class="nt">&lt;/bundle&gt;</span>
+        <span class="nt">&lt;bundle&gt;</span>
+            <span class="nt">&lt;groupId&gt;</span>org.apache.sling<span class="nt">&lt;/groupId&gt;</span>
+            <span class="nt">&lt;artifactId&gt;</span>org.apache.sling.jcr.api<span class="nt">&lt;/artifactId&gt;</span>
+            <span class="nt">&lt;version&gt;</span>2.0.2-incubator<span class="nt">&lt;/version&gt;</span>
+        <span class="nt">&lt;/bundle&gt;</span>
     <span class="nt">&lt;/startLevel&gt;</span>
 <span class="nt">&lt;/bundles&gt;</span>
 </pre></div>
 
 
-<p>Within each <em>bundle</em> element, <em>type</em> and <em>classifier</em> are also
-supported.</p>
-<p><a name="MavenLaunchpadPlugin-ArtifactDefinition"></a></p>
+<p>Within each <code>bundle</code> element, <code>type</code> and <code>classifier</code> are also supported.</p>
 <h2 id="artifact-definition">Artifact Definition</h2>
-<p>The <em>defaultBundleList</em>, <em>jarWebSupport</em>, <em>additionalBundles</em>, and
-<em>bundleExclusions</em> parameters are configured with artifact definitions.
-This is done using a syntax similar to Maven dependency elements:</p>
+<p>The <code>defaultBundleList</code>, <code>jarWebSupport</code>, <code>additionalBundles</code>, and <code>bundleExclusions</code> parameters are configured with artifact definitions. This is done using a syntax similar to Maven dependency elements:</p>
 <div class="codehilite"><pre><span class="nt">&lt;configuration&gt;</span>
 ...
   <span class="nt">&lt;jarWebSupport&gt;</span>
@@ -212,8 +169,7 @@ This is done using a syntax similar to M
 </pre></div>
 
 
-<p>For example, to use Pax Web instead of Felix HttpService as the HttpService
-provider, use the following:</p>
+<p>For example, to use Pax Web instead of Felix HttpService as the HttpService provider, use the following:</p>
 <div class="codehilite"><pre><span class="nt">&lt;configuration&gt;</span>
 ...
   <span class="nt">&lt;jarWebSupport&gt;</span>
@@ -227,8 +183,7 @@ provider, use the following:</p>
 </pre></div>
 
 
-<p>In the case of <em>additionalBundles</em> and <em>bundleExclusions</em>, these are
-arrays of definitions, so an intermediate <em>bundle</em> element is necessary:</p>
+<p>In the case of <code>additionalBundles</code> and <code>bundleExclusions</code>, these are arrays of definitions, so an intermediate <code>bundle</code> element is necessary:</p>
 <div class="codehilite"><pre><span class="nt">&lt;configuration&gt;</span>
 ...
   <span class="nt">&lt;additionalBundles&gt;</span>
@@ -244,31 +199,18 @@ arrays of definitions, so an intermediat
 </pre></div>
 
 
-<p>By default, bundles are added to start level 0. To change, this use the
-<em>startLevel</em> element within each additional bundle definition.</p>
-<p><a name="MavenLaunchpadPlugin-IntegrationTesting"></a></p>
+<p>By default, bundles are added to start level 0. To change, this use the <code>startLevel</code> element within each additional bundle definition.</p>
 <h2 id="integration-testing">Integration Testing</h2>
-<p>For integration testing examples, see <em>/samples/inplace-integration-test</em>
-and <em>launchpad/testing</em> in the Sling source tree.</p>
-<p><a name="MavenLaunchpadPlugin-BundleListRewriting"></a></p>
+<p>For integration testing examples, see <code>/samples/inplace-integration-test</code> and <code>launchpad/testing</code> in the Sling source tree.</p>
 <h2 id="bundle-list-rewriting">Bundle List Rewriting</h2>
-<p>The Maven Launchpad Plugin supports the use of rules to rewrite the bundle
-list. These rules are executed by the <a href="http://www.jboss.org/drools">Drools</a>
- rule engine. Typically, this is used along with Maven profiles. For
-example, Sling's testing project includes a profile called
-<em>test-reactor-sling-bundles</em>. When activated, this profile runs a Drools
-rule file which scans the project list from the Maven reactor and modifies
-the version number for bundles which were contained within the reactor.</p>
-<p>In order for rules to interact with the Maven build, the following global
-variables are made available:</p>
+<p>The Maven Launchpad Plugin supports the use of rules to rewrite the bundle list. These rules are executed by the <a href="">Drools</a> rule engine. Typically, this is used along with Maven profiles. For example, Sling's testing project includes a profile called <code>test-reactor-sling-bundles</code>. When activated, this profile runs a Drools rule file which scans the project list from the Maven reactor and modifies the version number for bundles which were contained within the reactor.</p>
+<p>In order for rules to interact with the Maven build, the following global variables are made available:</p>
 <ul>
-<li><em>mavenSession</em> - an instance of
-<em>org.apache.maven.execution.MavenSession</em>.</li>
-<li><em>mavenProject</em> - an instance of
-<em>org.apache.maven.project.MavenProject</em>.</li>
+<li><code>mavenSession</code> - an instance of <code>org.apache.maven.execution.MavenSession</code>.</li>
+<li><code>mavenProject</code> - an instance of <code>org.apache.maven.project.MavenProject</code>.</li>
 </ul>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1328899 by fmeschbe on Sun, 22 Apr 2012 16:52:13 +0000
+        Rev. 1341347 by fmeschbe on Tue, 22 May 2012 08:25:18 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project

Modified: websites/staging/sling/trunk/content/maventipsandtricks.html
==============================================================================
--- websites/staging/sling/trunk/content/maventipsandtricks.html (original)
+++ websites/staging/sling/trunk/content/maventipsandtricks.html Tue May 22 08:25:32 2012
@@ -82,30 +82,15 @@
         <a href="/">Home</a>
       </div>
       <h1>MavenTipsAndTricks</h1>
-      <p>Here's our collection of tips and tricks for building Sling with <a href="http://maven.apache.org">Maven</a>
-.</p>
-<p><a name="MavenTipsAndTricks-Mavenlocalrepository"></a></p>
+      <p>Here's our collection of tips and tricks for building Sling with <a href="">Maven</a>.</p>
 <h1 id="maven-local-repository">Maven local repository</h1>
-<p>The first time you run a Maven build, or when Maven needs additional build
-components, it downloads plugins and dependencies under its <em>local
-repository</em> folder on your computer. By default, this folder is named
-<em>.m2/repository</em> in your home directory.</p>
-<p>Maven uses this repository as a cache for artifacts that it might need for
-future builds, which means that the first Sling build usually takes much
-longer than usual, as Maven needs to download many tools and dependencies
-into its local repository while the build progresses.</p>
-<p>The build might fail if one of those downloads fails, in that case it might
-be worth retrying the build, to check if that was just a temporary
-connection problem, or if there's a more serious error.</p>
-<p>In some cases, the local Maven repository might get corrupted - if your
-build fails on a computer and works on another one, clearing the local
-repository before restarting the build might be worth trying.</p>
-<p><a name="MavenTipsAndTricks-Mavensettings"></a></p>
+<p>The first time you run a Maven build, or when Maven needs additional build components, it downloads plugins and dependencies under its <em>local repository</em> folder on your computer. By default, this folder is named <em>.m2/repository</em> in your home directory.</p>
+<p>Maven uses this repository as a cache for artifacts that it might need for future builds, which means that the first Sling build usually takes much longer than usual, as Maven needs to download many tools and dependencies into its local repository while the build progresses.</p>
+<p>The build might fail if one of those downloads fails, in that case it might be worth retrying the build, to check if that was just a temporary connection problem, or if there's a more serious error.</p>
+<p>In some cases, the local Maven repository might get corrupted - if your build fails on a computer and works on another one, clearing the local repository before restarting the build might be worth trying.</p>
 <h1 id="maven-settings">Maven settings</h1>
-<p><a name="MavenTipsAndTricks-Ignoreyourlocalsettings"></a></p>
 <h2 id="ignore-your-local-settings">Ignore your local settings</h2>
-<p>To make sure you're getting the same results as we are when building Sling,
-it is recommend to ignore any local settings.</p>
+<p>To make sure you're getting the same results as we are when building Sling, it is recommend to ignore any local settings.</p>
 <p>On unixish platforms, using</p>
 <div class="codehilite"><pre><span class="n">mvn</span> <span class="o">-</span><span class="n">s</span> <span class="sr">/dev/</span><span class="n">null</span> <span class="o">...</span>
 </pre></div>
@@ -115,15 +100,10 @@ it is recommend to ignore any local sett
 <p>{note}
 Does anyone have a similar command-line option that works under Windows?
 {note}</p>
-<p><a name="MavenTipsAndTricks-"></a></p>
 <h1></h1>
-<p><a name="MavenTipsAndTricks-MAVEN_OPTS"></a></p>
 <h1 id="maven_opts">MAVEN_OPTS</h1>
-<p>The MAVEN_OPTS environment variable defines options for the JVM that
-executes Maven.</p>
-<p>Set it according to your platform, i.e. <em>export MAVEN_OPTS=...</em> on
-unixish systems or <em>set MAVEN_OPTS=...</em> on Windows.</p>
-<p><a name="MavenTipsAndTricks-IncreaseJVMmemoryifneeded"></a></p>
+<p>The MAVEN_OPTS environment variable defines options for the JVM that executes Maven.</p>
+<p>Set it according to your platform, i.e. <code>export MAVEN*OPTS=...</code> on unixish systems or <code>set MAVEN*OPTS=...</code> on Windows.</p>
 <h2 id="increase-jvm-memory-if-needed">Increase JVM memory if needed</h2>
 <p>If getting an OutOfMemoryException when running mvn, try setting</p>
 <div class="codehilite"><pre><span class="n">MAVEN_OPTS</span><span class="o">=</span><span class="s">&quot;-Xmx256M -XX:MaxPermSize=256m&quot;</span>
@@ -131,23 +111,17 @@ unixish systems or <em>set MAVEN_OPTS=..
 
 
 <p>to allocate 256MB of RAM to Maven.</p>
-<p><a name="MavenTipsAndTricks-DebuggingcodelaunchedbyMaven"></a></p>
 <h2 id="debugging-code-launched-by-maven">Debugging code launched by Maven</h2>
-<p>To run the Sling launchpad webapp in debug mode from Maven, for example,
-use something like</p>
+<p>To run the Sling launchpad webapp in debug mode from Maven, for example, use something like</p>
 <div class="codehilite"><pre><span class="n">MAVEN_OPTS</span><span class="o">=</span><span class="s">&quot;-agentlib:jdwp=transport=dt_socket,address=30303,server=y,suspend=n&quot;</span>
 </pre></div>
 
 
-<p>And then connect to port 30303 with a remote JVM debugger (most IDEs do
-this).</p>
-<p><a name="MavenTipsAndTricks-AvoidspacesinMavenrepositoryandworkspacepaths"></a></p>
+<p>And then connect to port 30303 with a remote JVM debugger (most IDEs do this).</p>
 <h2 id="avoid-spaces-in-maven-repository-and-workspace-paths">Avoid spaces in Maven repository and workspace paths</h2>
-<p>Some Maven plugins do not like spaces in paths. It is better to avoid
-putting your Maven repository, or your code, under paths like <em>Documents
-and Settings</em>, for example.</p>
+<p>Some Maven plugins do not like spaces in paths. It is better to avoid putting your Maven repository, or your code, under paths like <em>Documents and Settings</em>, for example.</p>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1328899 by fmeschbe on Sun, 22 Apr 2012 16:52:13 +0000
+        Rev. 1341347 by fmeschbe on Tue, 22 May 2012 08:25:18 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project

Modified: websites/staging/sling/trunk/content/media.html
==============================================================================
--- websites/staging/sling/trunk/content/media.html (original)
+++ websites/staging/sling/trunk/content/media.html Tue May 22 08:25:32 2012
@@ -82,15 +82,11 @@
         <a href="/">Home</a>
       </div>
       <h1>Media</h1>
-      <p>This page holds all media required for the Apache Sling website. The media
-are attachments and can be addressed using the following URL:
-http://cwiki.apache.org/SLINGxSITE/media.data/ (followed by the actual name
-of the attachment).</p>
-<p>Currently, some of these attachments are used by the overall site template
-(only visible/editable by Confluence administrators).</p>
+      <p>This page holds all media required for the Apache Sling website. The media are attachments and can be addressed using the following URL: http://cwiki.apache.org/SLINGxSITE/media.data/ (followed by the actual name of the attachment).</p>
+<p>Currently, some of these attachments are used by the overall site template (only visible/editable by Confluence administrators).</p>
 <p>{attachments}</p>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1328899 by fmeschbe on Sun, 22 Apr 2012 16:52:13 +0000
+        Rev. 1341347 by fmeschbe on Tue, 22 May 2012 08:25:18 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project

Added: websites/staging/sling/trunk/content/mime-type-support-commons-mime.html
==============================================================================
--- websites/staging/sling/trunk/content/mime-type-support-commons-mime.html (added)
+++ websites/staging/sling/trunk/content/mime-type-support-commons-mime.html Tue May 22 08:25:32 2012
@@ -0,0 +1,96 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+  <head>
+    <title>Apache Sling - MIME Type Support (commons.mime)</title>
+    <link rel="stylesheet" href="/css/site.css" type="text/css" media="all">
+    <link rel="icon" href="http://sling.apache.org/site/media.data/favicon.ico">
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+  </head>
+  <body>
+    <div class="title">
+      <div class="logo">
+        <a href="http://sling.apache.org/site/index.html">
+          <img border="0" alt="Apache Sling" src="http://sling.apache.org/site/media.data/logo.png">
+        </a>
+      </div>
+      <div class="header">
+        <a href="http://www.apache.org/">
+          <img border="0" alt="Apache" src="http://sling.apache.org/site/media.data/apache.png">
+        </a>
+      </div>
+    </div>
+    
+    <div class="menu"> 
+      <p><strong>Documentation</strong> <br />
+<a href="/getting-started.html">Getting Started</a> <br />
+<a href="/the-sling-engine.html">The Sling Engine</a> <br />
+<a href="/development.html">Development</a> <br />
+<a href="/bundles.html">Bundles</a> <br />
+<a href="/tutorials-how-tos.html">Tutorials &amp; How-Tos</a> <br />
+<a href="/configuration.html">Configuration</a> <br />
+<a href="http://s.apache.org/sling.wiki">Wiki</a> <br />
+<a href="http://s.apache.org/sling.faq">FAQ</a> <br />
+<a href="/sitemap.html">Site Map</a></p>
+<p><strong>API Docs</strong>  <br />
+<a href="http://sling.apache.org/apidocs/sling6/index.html">Sling 6</a> <br />
+<a href="http://sling.apache.org/apidocs/sling5/index.html">Sling 5</a> <br />
+</p>
+<p><strong>Project info</strong> <br />
+<a href="http://sling.apache.org/site/downloads.cgi">Downloads</a> <br />
+<a href="http://www.apache.org/licenses/">License</a> <br />
+<a href="/contributing.html">Contributing</a> <br />
+<a href="/news.html">News</a> <br />
+<a href="/links.html">Links</a> <br />
+<a href="/project-information.html">Project Information</a> <br />
+<a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a> <br />
+<a href="http://svn.apache.org/viewvc/sling/trunk">Browse Source Repository</a> <br />
+<a href="/security.html">Security</a> <br />
+</p>
+<p><strong>Sponsorship</strong> <br />
+<a href="http://www.apache.org/foundation/thanks.html">Thanks</a> <br />
+<a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a> <br />
+<a href="http://www.apache.org/foundation/buy_stuff.html">Buy Stuff</a> <br />
+</p>
+<iframe 
+    src="http://www.apache.org/ads/button.html"
+    style="border-width:0; float: left" frameborder="0" 
+    scrolling="no"
+    width="135" 
+    height="135">
+</iframe>
+    </div>
+    
+    <div class="main">
+      <div class="breadcrump" style="font-size: 80%;">
+        <a href="/">Home</a>
+      </div>
+      <h1>MIME Type Support (commons.mime)</h1>
+      
+      <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+        Rev. 1341347 by fmeschbe on Tue, 22 May 2012 08:25:18 +0000
+      </div>
+      <div class="trademarkFooter"> 
+        Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project
+        logo are trademarks of The Apache Software Foundation. All other marks mentioned
+        may be trademarks or registered trademarks of their respective owners.
+      </div>
+    </div>
+  </body>
+</html>

Modified: websites/staging/sling/trunk/content/monitoring-requests.html
==============================================================================
--- websites/staging/sling/trunk/content/monitoring-requests.html (original)
+++ websites/staging/sling/trunk/content/monitoring-requests.html Tue May 22 08:25:32 2012
@@ -82,23 +82,14 @@
         <a href="/">Home</a>
       </div>
       <h1>Monitoring Requests</h1>
-      <p><a name="MonitoringRequests-MonitoringRequests"></a></p>
-<h1 id="monitoring-requests">Monitoring Requests</h1>
-<p>Sling provides a simple OSGi console plugin to monitor recent requests.
-This is quite useful when debugging and to understand how things work,
-though it's obviously not a replacement for full-blown HTTP trafic
-monitoring tools.</p>
-<p>The console plugin is available at /system/console/requests, listed as
-<em>Recent Requests</em> in the console menu.</p>
-<p>The plugin keeps track of the latest 20 requests processed by Sling, and
-displays the information provided by the RequestProgressTracker, for the
-selected request. The screenshot below shows an example.</p>
-<p>Any information that's added to the RequestProgressTracker (which is
-available from the SlingHttpServletRequest object) during request
-processing will be displayed by this plugin.</p>
+      <h1 id="monitoring-requests">Monitoring Requests</h1>
+<p>Sling provides a simple OSGi console plugin to monitor recent requests. This is quite useful when debugging and to understand how things work, though it's obviously not a replacement for full-blown HTTP trafic monitoring tools.</p>
+<p>The console plugin is available at /system/console/requests, listed as <em>Recent Requests</em> in the console menu.</p>
+<p>The plugin keeps track of the latest 20 requests processed by Sling, and displays the information provided by the RequestProgressTracker, for the selected request. The screenshot below shows an example.</p>
+<p>Any information that's added to the RequestProgressTracker (which is available from the SlingHttpServletRequest object) during request processing will be displayed by this plugin.</p>
 <p>!sling-requests-plugin.jpg|align=left, alt=Recent Requests plugin!</p>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1328899 by fmeschbe on Sun, 22 Apr 2012 16:52:13 +0000
+        Rev. 1341347 by fmeschbe on Tue, 22 May 2012 08:25:18 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project

Modified: websites/staging/sling/trunk/content/navigation.html
==============================================================================
--- websites/staging/sling/trunk/content/navigation.html (original)
+++ websites/staging/sling/trunk/content/navigation.html Tue May 22 08:25:32 2012
@@ -82,16 +82,14 @@
         <a href="/">Home</a>
       </div>
       <h1>Navigation</h1>
-      <p><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a>
-<a href="http://www.apache.org/foundation/buy_stuff.html">Buy Stuff</a></p>
+      <p><a href="">Become a Sponsor</a>
+<a href="">Buy Stuff</a></p>
 <p>{html}
-  <iframe src="http://www.apache.org/ads/button.html"
-style="border-width:0; float: left" frameborder="0" scrolling="no"
-width="135" height="135"></iframe>
+  <iframe src="http://www.apache.org/ads/button.html" style="border-width:0; float: left" frameborder="0" scrolling="no" width="135" height="135"></iframe>
   <p style="height: 135px"></p>
 {html}</p>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1328899 by fmeschbe on Sun, 22 Apr 2012 16:52:13 +0000
+        Rev. 1341347 by fmeschbe on Tue, 22 May 2012 08:25:18 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project



Mime
View raw message