Repository: sling-site
Updated Branches:
  refs/heads/asf-site 37a29a31e -> f542b22ea


http://git-wip-us.apache.org/repos/asf/sling-site/blob/f542b22e/old-stuff/sling-api.html
----------------------------------------------------------------------
diff --git a/old-stuff/sling-api.html b/old-stuff/sling-api.html
index 3e23ccc..7c5e8c1 100644
--- a/old-stuff/sling-api.html
+++ b/old-stuff/sling-api.html
@@ -75,7 +75,7 @@
             </h1><div class="row"><div class="small-12 columns"><section 
class="wrap"><div class="note">
 The contents of this page is being created at the moment. It contains 
incomplete and partially wrong information as the text is adapted from the 
contents of the [Component API]({{ refs.component-api.path }}) documentation 
page.
 </div>
-<h2>Introduction</h2>
+<h2><a href="#introduction" name="introduction">Introduction</a></h2>
 <p>The <em>Sling API</em> defines a presentation framework to build Web 
Applications. As such the Sling API builds upon the Servlet API but extends the 
latter with new functionality:</p>
 <ul>
   <li>A web page may be built from many different pieces. This aggregation of 
different pieces is comparable to the functionality provided by the Portlet 
API. In contrast to the latter, though, the pieces may themselves be aggregates 
of yet more pieces. So a single web page response may consist of a tree of 
pieces.</li>
@@ -83,24 +83,24 @@ The contents of this page is being created at the moment. 
It contains incomplete
   <li>In contrast to the Servlet API and the Portlet API, the Sling API is 
resource centric. That is, the request URL does not address a servlet or a 
portlet but a resource represented by an instance of the 
<code>org.apache.sling.api.resource.Resource</code> interface. From this 
resource the implementation of the Sling API will derive a 
<code>javax.servlet.Servlet</code> or 
<code>org.apache.sling.api.scripting.SlingScript</code> instance, which is used 
to handle the request.</li>
 </ul>
 <p>An implementation of the presentation framework defined by the Sling API is 
called a <em>Sling Framework</em>. The Apache Sling project actually contains 
two implementations of this API: <em>microsling</em> and <em>Sling</em>. 
microsling (note the lowercase <em>m</em>) implements the same request 
processing mechanisms as <em>Sling</em> but is very hardcoded. It serves well 
as a rapid development environment as it is quickly set up, easy to handle and 
shows results very easily. Sling on the other hand is based on an OSGi 
framework and very flexible, allowing the extension of the system in various 
ways.</p>
-<h2>Going Resource Centric</h2>
+<h2><a href="#going-resource-centric" name="going-resource-centric">Going 
Resource Centric</a></h2>
 <p>Traditional web applications are built around the notion of a traditional 
application which is converted into an application which may be used using a 
Web Browser. Web applications consist of a series of servlets and JSP scripts, 
which are called based on configuration in the web application deployment 
descriptor. Such applications are generally based on some internal database or 
some static filesystem content.</p>
 <p>The Sling API on the other hand looks more like a traditional web server 
from the outside, which delivers more or less static content. Thus, while the 
traditional web application uses the request URL to select a piece of code to 
execute, the Sling API uses the URL to select a resource to be delivered.</p>
-<h3>Comparsion to the Servlet API</h3>
+<h3><a href="#comparsion-to-the-servlet-api" 
name="comparsion-to-the-servlet-api">Comparsion to the Servlet API</a></h3>
 <p>The Sling API builds upon the Servlet API. Generally a Sling Framework will 
run inside a Servlet Container and be manifested towards the Servlet Container 
as a single Servlet, which dispatches requests to the Servlets and Scripts 
depending on the request URLs.</p>
 <p>Response rendering may itself be a multi-step operation. Depending on the 
Servlets and Scripts, the rendering may include dispatching for child (or even 
foreign) Resources.</p>
-<h3>Comparision to the Portlet API</h3>
+<h3><a href="#comparision-to-the-portlet-api" 
name="comparision-to-the-portlet-api">Comparision to the Portlet API</a></h3>
 <p>Unlike the Portlet API, which defines one single level of portlet hierarchy 
- portlets are just pieces residing besides each other - the Sling API allows 
for hierarchic structuring of Resources and hence Servlet and Script 
renderings. To support this structuring, the Sling Framework does not control 
the rendering process of all elements on the page like the Portlet Container 
does for the portlets. Instead only the Resource addressed by the request URL 
is processed and it is left to the Servlet or Script rendering that Resource to 
dispatch other Resource/Servlet/Script tupels to add more data to the 
response.</p>
-<h3>To Iterator or To Enumeration</h3>
+<h3><a href="#to-iterator-or-to-enumeration" 
name="to-iterator-or-to-enumeration">To Iterator or To Enumeration</a></h3>
 <p>With the advent of the Java Collection framework in Java 2, the 
<code>Enumeration</code> has been superceded by the <code>Iterator</code>. So 
the natural choice for the Sling API for methods to return enumeratable 
collection of objects would have be to declare the use of <code>Iterator</code> 
instances. But because the Servlet API defines to use <code>Enumeration</code> 
instances, the Sling API will also declare the use of <code>Enumeration</code> 
instances for consistency with the Servlet API extended by the Sling API.</p>
-<h2>Request Processing</h2>
+<h2><a href="#request-processing" name="request-processing">Request 
Processing</a></h2>
 <p>Unlike traditional Servlet API request processing, a Sling API request is 
processed by the Sling Framework in three basic steps:</p>
 <ol>
   <li><em>Resource Resolution</em> - The Sling Framework derives a Resource 
instance from the client request URL. The details of how to resolve the 
Resource. One possible solution would be to map the request URL to a [Java 
Content Repository]({{ refs.http://www.jcp.org/en/jsr/detail?id=170.path }}) 
Node and return a Resource representing that Node.</li>
   <li><em>Servlet and Script Resolution</em> - From the Resource created in 
the first step, the Servlet or Script is resolved based on the type of the 
Resource. The resource type is a simple string, whose semantics is defined by 
the Sling Framework. One possible definition could be for the resource type to 
be the primary node type of the Node underlying the Resource.</li>
   <li><em>Input Processing and Response Generation</em> - After getting the 
Resource and the Servlet or Script, the <code>service()</code> method is called 
or the script is evaluated to process any user supplied input and send the 
response to the client. To structure the rendered response page, this method is 
responsible to include other resources. See <em>Dispatching Requests</em> below 
for details. See <em>Error Handling</em> below for a discussion on how 
exceptions and HTTP stati are handled.</li>
 </ol>
-<h3>URL decomposition</h3>
+<h3><a href="#url-decomposition" name="url-decomposition">URL 
decomposition</a></h3>
 <p>During the <em>Resource Resolution</em> step, the client request URL is 
decomposed into the following parts:</p>
 <ol>
   <li><em>Resource Path</em> - The longest substring of the request URL 
resolving to a Resource such that the resource path is either the complete 
request URL or the next character in the request URL after the resource path is 
either a dot (<code>.</code>) or a slash (<code>/</code>).</li>
@@ -209,7 +209,7 @@ The contents of this page is being created at the moment. 
It contains incomplete
 <div class="info">
 The [SlingRequestPathInfoTest]({{ 
refs.http://svn.apache.org/repos/asf/sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/request/SlingRequestPathInfoTest.java.path
 }}) demonstrates and tests this decomposition. Feel free to suggest additional 
tests that help clarify how this works!
 </div>
-<h2>The SlingHttpServletRequest</h2>
+<h2><a href="#the-slinghttpservletrequest" 
name="the-slinghttpservletrequest">The SlingHttpServletRequest</a></h2>
 <p>The <code>org.apache.sling.api.SlingHttpServletRequest</code> interface 
defines the basic data available from the client request to both action 
processing and response rendering. The <code>SlingHttpServletRequest</code> 
extends the <code>javax.servlet.http.HTTPServletRequest</code>.</p>
 <p>This section describes the data available from the 
<code>SlingHttpServletRequest</code>. For a complete and normative description 
of the methods, refer to the Sling API JavaDoc. The following information is 
represented for reference. In the case of differences between the following 
descriptions and the Sling API JavaDoc, the latter takes precedence.</p>
 <ol>
@@ -221,9 +221,9 @@ The [SlingRequestPathInfoTest]({{ 
refs.http://svn.apache.org/repos/asf/sling/tru
 </ol>
 <p>The <code>SlingHttpServletRequest</code> objects are only valid during the 
time of request processing. Servlets and Scripts must not keep references for 
later use. As such, the <code>SlingHttpServletRequest</code> interface and its 
extensions are defined to not be thread safe.</p>
 <p><em>A note on HTTP Sessions</em>: The <code>SlingHttpServletRequest</code> 
extends the <code>HttpSerlvetRequest</code> and thus supports standard HTTP 
sessions. Be aware, though that Sessions are server side sessions and hence 
violate the sessionless principle of REST and therefore should be used with 
care. It is almost always possible to not use sessions.</p>
-<h2>The SlingHttpServletResponse</h2>
+<h2><a href="#the-slinghttpservletresponse" 
name="the-slinghttpservletresponse">The SlingHttpServletResponse</a></h2>
 <p>The <code>org.apache.sling.api.SlingHttpServletResponse</code> interface 
extends the <code>javax.servet.http.HttpServletResponse</code> interface and is 
currently empty. It merely exists for symmetry with the 
<code>SlingHttpServletRequest</code>.</p>
-<h2>The Resource</h2>
+<h2><a href="#the-resource" name="the-resource">The Resource</a></h2>
 <p>The <code>org.apache.sling.resource.Resource</code> represents the data 
addressed by the request URL. Resources may also be retrieved through the 
<code>org.apache.sling.api.resource.ResourceResolver</code>. Usually this 
interface is not implemented by clients. In certain use cases we call 
<em>synthetic Resource</em> if may be usefull to define a simple object 
implementing the <code>Resource</code> interface. The Sling Framework does not 
care about the concrete implementation of the <code>Resource</code> interface 
and rather uses the defined methods to access required information. The 
interface defines the following methods:</p>
 <ol>
   <li><em>getResourceType()</em> - Returns the type of the resource. This 
resource type is used to resolve the Servlet or Script used to handle the 
request for the resource.</li>
@@ -232,34 +232,34 @@ The [SlingRequestPathInfoTest]({{ 
refs.http://svn.apache.org/repos/asf/sling/tru
   <li><em>adaptTo(Class<AdapterType> type)</em> - Returns alternative 
representations of the Resource. The concrete supported classes to which the 
Resource may be adapted depends on the implementation. For example a Resource 
based on a JCR Node may support being adapted to the underlying Node, an 
<code>InputStream</code>, an <code>URL</code> or even to a mapped object 
through JCR Object Content Mapping.</li>
 </ol>
 <hr/>
-<h2>The Component</h2>
+<h2><a href="#the-component" name="the-component">The Component</a></h2>
 <p>The <code>org.apache.sling.component.Component</code> interface defines the 
API implemented to actually handle requests. As such the Component interface is 
comparable to the =javax.servlet.Servlet= interface. Like those other 
interfaces, the Component interface provides methods for life cycle management: 
<code>init(ComponentContext context)</code>, <code>destroy()</code>.</p>
-<h3>Processing the Request</h3>
+<h3><a href="#processing-the-request" name="processing-the-request">Processing 
the Request</a></h3>
 <p>The Component Framework calls the <code>service(ComponentRequest request, 
ComponentResponse response)</code> method of the Component to have the 
component process the request optionally processing user input, rendering the 
response and optionally dispatch to other Content/Component tuples to provide 
more response data.</p>
-<h3>Content and its Component</h3>
+<h3><a href="#content-and-its-component" 
name="content-and-its-component">Content and its Component</a></h3>
 <p>The Content object and a Component form a pair, in which the Content object 
takes the passive part of providing data to the Component and the Component 
takes the active part of acting upon the Content object. As a consequence, 
there always exists a link between a given implementation of the Content 
interface and a given implementation of the Component interface.</p>
 <p>This link is manifested by the Component identifier available from the 
Content object through the <code>Content.getComponentId()</code> method on the 
one hand. On the other hand, the link is manifested by the 
<code>getContentClassName()</code> and <code>createContentInstance()</code> 
methods of the Component interface.</p>
-<h3>Component Lifecylce</h3>
+<h3><a href="#component-lifecylce" name="component-lifecylce">Component 
Lifecylce</a></h3>
 <p>When a Component instance is created and added to the Component framework, 
the <code>init(ComponentContext)</code> method is called to prepare and 
initialize the Component. If this method terminates abnormally by throwing an 
exception, the Component is not used. The Component Framework implementation 
may try at a later time to recreate the Component, intialize it and use it. If 
the Component Framework tries to recreate the Component a new instance of the 
Component must be created to be initialized and used.</p>
 <p>When the Component has successfully been initialized, it may be referred to 
by Content objects. When a client request is to be processed, the Content 
object is resolved and the <code>service</code> method on the Component to 
which the Content object refers is called. The <code>service</code> method may 
- and generally will - be called simultaneously to handle different requests in 
different threads. As such, implementations of these methods must be thread 
safe.</p>
 <p>When the Component Framework decides to take a Component out of service, 
the <code>destroy()</code> method is called to give the Component a chance to 
cleanup any held resources. The destroy method must only be called by the 
Component Framework when no more request processing is using the Component, 
that is no thread may be in the <code>service</code> method of a Component to 
be destroyed. Irrespective of whether the destroy method terminated normally or 
abnormally, the Component will not be used again.</p>
 <p>The addition and removal of Components is at the discretion of the 
Component Framework. A Component may be loaded at framework start time or on 
demand and my be removed at any time. But only one single Component instance 
with the same Component identifier may be active at the same time within a 
single Component Framework instance.</p>
-<h3>The ComponentExtension</h3>
+<h3><a href="#the-componentextension" name="the-componentextension">The 
ComponentExtension</a></h3>
 <p>To enhance the core functionality of Components, each Component may have 
zero, one ore more Component Extensions attached. A Component Extensions is a 
Java object implementing the 
<code>org.apache.sling.component.ComponentExtension</code> interface. This 
interface just defines a <code>getName()</code> method to identify 
extensions.</p>
 <p>The concrete implementation as well as instantiation and management of 
Component Extensions is left to the Component Framework implementation with one 
restriction though: The extensions must be available to the Component at the 
time the <code>init(ComponentContext)</code> method is called may only be 
dropped after the <code>destroy()</code> method terminates.</p>
 <p>The Component interface defines two methods to access Extensions: The 
<code>getExtensions()</code> method returns a 
<code>java.util.Enumeration</code> of all ComponentExtension objects attached 
to the component. If no Component Extension are attached to the Component, an 
empty enumeration is returned. The <code>getExtension(String name)</code> 
returns the named Component Extension attached to the Component or 
<code>null</code> if no such Component Extension is attached to the 
Component.</p>
 <p>Component Frameworks are allowed to share Component Extension instances of 
the same name between different Component instances. Regardless of whether 
Component Extensions are shared or not, they must be thread safe, as any 
Component Extension may be used within the <code>service</code> method, which 
themselves may be called concurrently.</p>
-<h2>Request Processing Filters</h2>
+<h2><a href="#request-processing-filters" 
name="request-processing-filters">Request Processing Filters</a></h2>
 <p>Similar to the Servlet API providing filters for filtering requests and/or 
responses the Component API provides the 
<code>org.apache.sling.component.ComponentFilter</code> interface. The filters 
are called by a <code>ComponentFilterChain</code> and either handle the 
request, manipulate the request and/or response object and finally forward the 
request and response optionally wrapped to the 
<code>ComponentFilterChain.doFilter(ComponentRequest, ComponentResponse)</code> 
method.</p>
 <p>Like the <code>Component</code>s filters have a defined lifecycle 
manifested by <code>init</code> and <code>destroy</code> methods. When the 
filter enters the system, the Component Framework calls the 
<code>ComponentFilter.init(ComponentContext)</code> method. Only when this 
method completes successfully will the filter be put into action and be used 
during request processing. When the filter leaves the system, the Component 
Framework removes the filter from being used in filter chains and calls the 
<code>ComponentFilter.destroy()</code> method. This method is not expected to 
throw any exceptions. The filter may be removed from the Component Framework at 
the discretion of the Component Framework or because the filter is being 
unregistered from the Component Framework by some means outside this 
specification.</p>
 <p>This specification does not define how <code>ComponentFilter</code> objects 
are registered with the Component Framework nor is it specified how the order 
in which the filters are called is defined. Likewise it is outside this 
specification how the filter instances registered with the Component Framework 
are configured.</p>
-<h2>Sessions</h2>
+<h2><a href="#sessions" name="sessions">Sessions</a></h2>
 <p>The <code>org.apache.sling.component.ComponentSession</code> interface 
provides a way to identify a user across more than one request and to store 
transient information about that user.</p>
 <p>A component can bind an object attribute into a 
<code>ComponentSession</code> by name. The <code>ComponentSession</code> 
interface defines two scopes for storing objects: 
<code>APPLICATION*SCOPE</code>, <code>COMPONENT*SCOPE</code>. All objects 
stored in the session using the <code>APPLICATION*SCOPE</code> must be 
available to all the components, servlets and JSPs that belong to the same 
component application and that handle a request identified as being a part of 
the same session. Objects stored in the session using the 
<code>COMPONENT*SCOPE</code> must be available to the component during requests 
for the same content that the objects where stored from. Attributes stored in 
the <code>COMPONENT_SCOPE</code> are not protected from other web components of 
the component application. They are just conveniently namespaced.</p>
 <p>The component session extends the Servlet API <code>HttpSession</code>. 
Therefore all <code>HttpSession</code> listeners do apply to the component 
session and attributes set in the component session are visible in the 
<code>HttpSession</code> and vice versa.</p>
 <p>The attribute accessor methods without the <em>scope</em> parameter always 
refer to <code>COMPONENT*SCOPE</code> attributes. To access 
<code>APPLICATION*SCOPE</code> attributes use the accessors taking an explicit 
<code>scope</code> parameter.</p>
 <p><em>A final note on Sessions</em>: Sessions are server side sessions and 
hence violate the sessionless principle of REST and therefore should be used 
with care. It is almost always possible to not use sessions.</p>
-<h2>Dispatching Requests</h2>
+<h2><a href="#dispatching-requests" name="dispatching-requests">Dispatching 
Requests</a></h2>
 <p>To include renderings of child Content objects, a 
<code>org.apache.sling.component.ComponentRequestDispatcher</code> object may 
be retrieved from the ComponentContext with which the Component has been 
initialized or from the ComponentRequest provided to the service method. Using 
this dispatcher the reponse of rendering the Content may be included by calling 
the <code>ComponentRequestDispatcher.include(ComponentRequest, 
ComponentResponse)</code> method.</p>
 <p>This method is comparable to the 
<code>RequestDispatcher.include(ServletRequest, ServletResponse</code> method 
of the Servlet API but dispatching by the 
<code>ComponentRequestDispatcher</code> does not go through the servlet 
container and stays within the Component Framework.</p>
 <p>The <code>service</code> method of included Components are called with an 
instance of the <code>ComponentRequest</code> interface whose 
<code>getContent()</code> returns the Content object for the included 
Content.</p>
@@ -285,7 +285,7 @@ The [SlingRequestPathInfoTest]({{ 
refs.http://svn.apache.org/repos/asf/sling/tru
     </tr>
   </tbody>
 </table>
-<h3>Error Handling</h3>
+<h3><a href="#error-handling" name="error-handling">Error Handling</a></h3>
 <p>While processing requests, the <code>service</code> methods called may have 
problems. Components have multiple options of reporting issues during 
processing to the client:</p>
 <ul>
   <li>Set the status of the HTTP response calling the 
<code>ComponentResponse.setStatus</code> method</li>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/f542b22e/project-information.html
----------------------------------------------------------------------
diff --git a/project-information.html b/project-information.html
index 84a450a..9afc017 100644
--- a/project-information.html
+++ b/project-information.html
@@ -83,7 +83,7 @@
   <li><a href="/project-information/project-license.html">Project 
License</a></li>
   <li><a href="#documentation-repository">Documentation Repository</a></li>
 </ul>
-<h2>Mailing Lists</h2>
+<h2><a href="#mailing-lists" name="mailing-lists">Mailing Lists</a></h2>
 <p>These are the mailing lists that have been established for this project. 
For each list, there is a subscribe, unsubscribe, and an archive link.</p>
 <p>The Sling Users List is the preferred way of getting help with Sling. 
However, you can also <a 
href="http://stackoverflow.com/questions/ask?tags=sling";>Ask a Sling question 
on StackOverflow</a> if you prefer.</p>
 <table>
@@ -124,31 +124,31 @@
     </tr>
   </tbody>
 </table>
-<h2>Issue Tracking</h2>
+<h2><a href="#issue-tracking" name="issue-tracking">Issue Tracking</a></h2>
 <p>This project uses JIRA a J2EE-based, issue tracking and project management 
application. Issues, bugs, and feature requests should be submitted to the 
following issue tracking system for this project.</p>
 <p>The issue tracker can be found at <a 
href="http://issues.apache.org/jira/browse/SLING";>http://issues.apache.org/jira/browse/SLING</a></p>
-<h2>Source Repository</h2>
+<h2><a href="#source-repository" name="source-repository">Source 
Repository</a></h2>
 <p>This project uses Subversion to manage its source code. Instructions on 
Subversion use can be found at <a 
href="http://svnbook.red-bean.com/";>http://svnbook.red-bean.com/</a>.</p>
-<h3>Web Access</h3>
+<h3><a href="#web-access" name="web-access">Web Access</a></h3>
 <p>The following is a link to the online source repository.</p>
 <pre><code>http://svn.apache.org/viewvc/sling/trunk
 </code></pre>
-<h3>Anonymous access</h3>
+<h3><a href="#anonymous-access" name="anonymous-access">Anonymous 
access</a></h3>
 <p>The source can be checked out anonymously from SVN with this command:</p>
 <pre><code>$ svn checkout http://svn.apache.org/repos/asf/sling/trunk sling
 </code></pre>
-<h3>Developer access</h3>
+<h3><a href="#developer-access" name="developer-access">Developer 
access</a></h3>
 <p>Everyone can access the Subversion repository via HTTPS, but Committers 
must checkout the Subversion repository via HTTPS.</p>
 <pre><code>$ svn checkout https://svn.apache.org/repos/asf/sling/trunk sling
 </code></pre>
 <p>To commit changes to the repository, execute the following command to 
commit your changes (svn will prompt you for your password)</p>
 <pre><code>$ svn commit --username your-username -m &quot;A message&quot;
 </code></pre>
-<h3>Access from behind a firewall</h3>
+<h3><a href="#access-from-behind-a-firewall" 
name="access-from-behind-a-firewall">Access from behind a firewall</a></h3>
 <p>For those users who are stuck behind a corporate firewall which is blocking 
http access to the Subversion repository, you can try to access it via the 
developer connection:</p>
 <pre><code>$ svn checkout https://svn.apache.org/repos/asf/sling/trunk sling
 </code></pre>
-<h3>Access through a proxy</h3>
+<h3><a href="#access-through-a-proxy" name="access-through-a-proxy">Access 
through a proxy</a></h3>
 <p>The Subversion client can go through a proxy, if you configure it to do so. 
First, edit your "servers" configuration file to indicate which proxy to use. 
The files location depends on your operating system. On Linux or Unix it is 
located in the directory "~/.subversion". On Windows it is in 
"%APPDATA%\Subversion". (Try "echo %APPDATA%", note this is a hidden 
directory.)</p>
 <p>There are comments in the file explaining what to do. If you don't have 
that file, get the latest Subversion client and run any command; this will 
cause the configuration directory and template files to be created.</p>
 <p>Example : Edit the 'servers' file and add something like :</p>
@@ -156,7 +156,7 @@
 http-proxy-host = your.proxy.name
 http-proxy-port = 3128
 </code></pre>
-<h2>Continuous Integration</h2>
+<h2><a href="#continuous-integration" name="continuous-integration">Continuous 
Integration</a></h2>
 <p>Sling builds run automatically on the <a 
href="https://builds.apache.org/";>ASF's Jenkins instance</a>, triggered by 
commits.</p>
 <p>We maintain multiple build jobs, typically one or two per module. These are 
grouped into two views:</p>
 <ul>
@@ -164,9 +164,9 @@ http-proxy-port = 3128
   <li><a 
href="https://builds.apache.org/view/S-Z/view/Sling-Dashboard/";>Sling-Dashboard</a>,
 which holds all Sling jobs needing attention, such as failed jobs.</li>
 </ul>
 <p>More documentation regarding the Jenkins setup is available as wiki links 
from the views mentioned above.</p>
-<h2>Documentation Repository</h2>
+<h2><a href="#documentation-repository" 
name="documentation-repository">Documentation Repository</a></h2>
 <p>The documentation website, in fact the very page that you are reading right 
now, is located at <a href="https://cms.apache.org/sling/";>The ASF Content 
Management System’s Sling project</a>. You can contribute without being an 
official project committer.</p>
-<h3>Save your changes as an SVN patch:</h3>
+<h3><a href="#save-your-changes-as-an-svn-patch-" 
name="save-your-changes-as-an-svn-patch-">Save your changes as an SVN 
patch:</a></h3>
 <ol>
   <li>Log in as username <em>anonymous</em> and leave the password blank.</li>
   <li>Click <em>Get sling Working Copy</em> to check out a local branch 
through the browser.</li>
@@ -176,14 +176,14 @@ http-proxy-port = 3128
   <li>Click <em>submit</em>.</li>
   <li>Click <em>Diff</em>, then <em>Download Diff</em> and save the SVN patch 
to your computer.</li>
 </ol>
-<h3>Submit your changes:</h3>
+<h3><a href="#submit-your-changes-" name="submit-your-changes-">Submit your 
changes:</a></h3>
 <ol>
   <li>Navigate to the <a 
href="https://issues.apache.org/jira/browse/SLING";>Jira issue tracker</a>.</li>
   <li>Create an account and/or login.</li>
   <li>Create a ticket, enter a description and choose <em>Documentation</em> 
for <em>Components</em>.</li>
   <li>Select the ticket, click <em>more</em>, select <em>attach files</em> and 
attach your SVN patch.</li>
 </ol>
-<h3>Further resources:</h3>
+<h3><a href="#further-resources-" name="further-resources-">Further 
resources:</a></h3>
 <ol>
   <li>Read the <a href="http://www.apache.org/dev/cmsref#non-committer";>ASF 
CMS reference for non-committers</a>.</li>
   <li>Watch a <a href="http://s.apache.org/cms-anonymous-tutorial";>video 
tutorial by Rob Weir for anonymous users</a>.</li>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/f542b22e/project-information/apache-sling-community-roles-and-processes.html
----------------------------------------------------------------------
diff --git 
a/project-information/apache-sling-community-roles-and-processes.html 
b/project-information/apache-sling-community-roles-and-processes.html
index 74de523..cbe6750 100644
--- a/project-information/apache-sling-community-roles-and-processes.html
+++ b/project-information/apache-sling-community-roles-and-processes.html
@@ -73,26 +73,26 @@
 <div class="breadcrumbs"><a href="/ng/">Home</a>&nbsp;&raquo;&nbsp;<a 
href="/ng/project-information.html">Project 
Information</a>&nbsp;&raquo;&nbsp;</div>            <h1>
                 Apache Sling Community Roles and Processes
             </h1><div class="row"><div class="small-12 columns"><section 
class="wrap"><p>The Community Roles and Processes are put in effect as of 
13/May/2009. Updated 7/December/2009 to reflect Sling being a top level 
project.</p>
-<h2>Roles</h2>
+<h2><a href="#roles" name="roles">Roles</a></h2>
 <p>There are different roles with which Sling community members may be 
associated: User, Contributor, Committer, and PMC (Project Management 
Committee) Member. These roles are assigned and assumed based on merit. </p>
 <p>The User and Contributor roles are acquired by using the software and 
participating in the community, but the Committer and PMC member roles can only 
be granted by a PMC vote.</p>
 <p>The roles defined here conform to the ASF's <a 
href="http://www.apache.org/foundation/how-it-works.html#roles";>definition of 
roles</a>.</p>
-<h3>Users</h3>
+<h3><a href="#users" name="users">Users</a></h3>
 <p>Users are the people who use any of the products of the Sling project. 
People in this role are not contributing code, but they are using the products, 
reporting bugs, making feature requests, testing code, and such. This is by far 
the most important category of people, since without users there is no reason 
for Sling. When a user starts to contribute code or documentation patches, they 
become a <em>Contributor</em>.</p>
-<h3>Contributors</h3>
+<h3><a href="#contributors" name="contributors">Contributors</a></h3>
 <p>Contributors are the people who write code or documentation patches or 
contribute positively to the project in other ways. A volunteer's contribution 
is always recognized.</p>
-<h3>Committers</h3>
+<h3><a href="#committers" name="committers">Committers</a></h3>
 <p>Contributors who give frequent and valuable contributions to a subproject 
of Sling can have their status promoted to that of a <em><a 
href="http://www.apache.org/dev/committers.html";>Committer</a></em>. A 
Committer has write access to Sling's source code repository. Contributors of 
documentation are eligible as committers in the same way as contributors of 
pure code.</p>
-<h3>PMC Members</h3>
+<h3><a href="#pmc-members" name="pmc-members">PMC Members</a></h3>
 <p>Committers showing continued interest in the project and taking an active 
part in the evolution of the project may be elected as <em><a 
href="http://www.apache.org/dev/pmc.html";>PMC</a> members</em>. The PMC 
(Project Management Committee) is the official managing body of project and is 
responsible for setting its overall direction.</p>
-<h2>Processes</h2>
-<h3>Becoming a User or Contributor</h3>
+<h2><a href="#processes" name="processes">Processes</a></h2>
+<h3><a href="#becoming-a-user-or-contributor" 
name="becoming-a-user-or-contributor">Becoming a User or Contributor</a></h3>
 <p>There is no requirement for becoming a User or Contributor; these roles are 
open to everyone.</p>
-<h3>Becoming a Committer</h3>
+<h3><a href="#becoming-a-committer" name="becoming-a-committer">Becoming a 
Committer</a></h3>
 <p>In order for a Contributor to become a Committer, a member of the PMC can 
nominate that Contributor to the PMC. Once a Contributor is nominated, the PMC 
calls a vote on the PMC private mailing list.</p>
 <p>If there are at least three positive votes and no negative votes after 
three days (72 hours), the results are posted to the PMC private mailing 
list.</p>
 <p>Upon a positive vote result, the Contributor will be emailed by the PMC to 
invite him/her to become a Committer. If the invitation is accepted, an 
announcement about the new Committer is made to the developer mailing list and 
he/she is given write access to the source code repository. A Contributor will 
not officially become a Committer member until the appropriate legal paperwork 
is submitted.</p>
-<h3>Becoming a PMC Member</h3>
+<h3><a href="#becoming-a-pmc-member" name="becoming-a-pmc-member">Becoming a 
PMC Member</a></h3>
 <p>In order for a Committer to become a member of the PMC, a member of the PMC 
can nominate that Committer to the PMC. Once a Committer is nominated, the PMC 
calls a vote on the PMC private mailing list.</p>
 <p>If there are at least three positive votes and no negative votes after 
three days (72 hours), the results are posted to the PMC private mailing 
list.</p>
 <p>To have the Committer being accepted as a PMC member, the ASF Board has 
acknowledge the addition to the PMC. The Committer should not be consulted 
about his/her desire to become a PMC member before the board acknowledgement, 
or be informed that they are being considered, since this could create hard 
feelings if the vote does not pass.</p>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/f542b22e/project-information/project-team.html
----------------------------------------------------------------------
diff --git a/project-information/project-team.html 
b/project-information/project-team.html
index bd8979a..795b085 100644
--- a/project-information/project-team.html
+++ b/project-information/project-team.html
@@ -74,7 +74,7 @@
                 Project Team
             </h1><div class="row"><div class="small-12 columns"><section 
class="wrap"><p>A successful project requires many people to play many roles. 
Some members write code or documentation, while others are valuable as testers, 
submitting patches and suggestions.</p>
 <p>The team is comprised of Committers and Contributors. Committers have 
direct access to the source of a project and actively evolve the code-base. 
Contributors improve the project through submission of patches and suggestions 
to the Members. The number of Contributors to the project is unbounded. Get 
involved today. All contributions to the project are greatly appreciated.</p>
-<h2>Committers and PMC members</h2>
+<h2><a href="#committers-and-pmc-members" 
name="committers-and-pmc-members">Committers and PMC members</a></h2>
 <p>The following is a list of developers with commit privileges that have 
directly contributed to the project in one way or another.</p>
 <p>Committers marked with an asterisk (*) are also members of the Sling 
Project Management Commitee (<a 
href="http://www.apache.org/dev/pmc.html";>PMC</a>) as defined in <a 
href="/project-information/apache-sling-community-roles-and-processes.html">Apache
 Sling Community Roles and Processes</a></p>
 <p>This page is currently maintained manually, the ASF's LDAP information is 
the ultimate reference.</p>
@@ -318,7 +318,7 @@
     </tr>
   </tbody>
 </table>
-<h2>Emeritus Committers and PMC members</h2>
+<h2><a href="#emeritus-committers-and-pmc-members" 
name="emeritus-committers-and-pmc-members">Emeritus Committers and PMC 
members</a></h2>
 <p>The following list of former committers and PMC members have chosen to go 
emeritus. We are still thankful for their help and guidance during earlier 
phases of the Sling project.</p>
 <table>
   <thead>
@@ -345,7 +345,7 @@
   </tbody>
 </table>
 <p>Committers with their names printed in bold face have also been members of 
the PMC (or PPMC during Sling incubation) as defined in <a 
href="/project-information/apache-sling-community-roles-and-processes.html">Apache
 Sling Community Roles and Processes</a></p>
-<h2>Emeritus PMC members</h2>
+<h2><a href="#emeritus-pmc-members" name="emeritus-pmc-members">Emeritus PMC 
members</a></h2>
 <p>The following list of former PMC members have chosen to go emeritus as a 
PMC member but stay active as a committer. We are still thankful for their help 
and guidance.</p>
 <table>
   <thead>
@@ -365,10 +365,10 @@
     </tr>
   </tbody>
 </table>
-<h2>Special Thanks</h2>
+<h2><a href="#special-thanks" name="special-thanks">Special Thanks</a></h2>
 <p>Special thanks go to <strong>Chris Millar</strong> who provided the new 
Apache Sling Logo in 2017.</p>
 <p>The original Sling logo was created by Paul Walker in 2008 as part of the 
Google Highly Open Participation contest.</p>
-<h2>Contributors</h2>
+<h2><a href="#contributors" name="contributors">Contributors</a></h2>
 <p>There are no contributors listed for this project.</p></section></div></div>
 <div class="footer">
                 <div class="trademarkFooter">

http://git-wip-us.apache.org/repos/asf/sling-site/blob/f542b22e/project-information/security.html
----------------------------------------------------------------------
diff --git a/project-information/security.html 
b/project-information/security.html
index fa9e2c3..66fc93b 100644
--- a/project-information/security.html
+++ b/project-information/security.html
@@ -72,7 +72,7 @@
         </div>        <div class="main">
 <div class="breadcrumbs"><a href="/ng/">Home</a>&nbsp;&raquo;&nbsp;<a 
href="/ng/project-information.html">Project 
Information</a>&nbsp;&raquo;&nbsp;</div>            <h1>
                 Security
-            </h1><div class="row"><div class="small-12 columns"><section 
class="wrap"><h1>Reporting New Security Problems with Apache Sling</h1>
+            </h1><div class="row"><div class="small-12 columns"><section 
class="wrap"><h1><a href="#reporting-new-security-problems-with-apache-sling" 
name="reporting-new-security-problems-with-apache-sling">Reporting New Security 
Problems with Apache Sling</a></h1>
 <p>The Apache Software Foundation takes a very active stance in eliminating 
security problems and denial of service attacks against Apache Sling.</p>
 <p>We strongly encourage folks to report such problems to our private security 
mailing list first, before disclosing them in a public forum.</p>
 <p><em>Please note that the security mailing list should only be used for 
reporting undisclosed security vulnerabilities in Apache Sling and managing the 
process of fixing such vulnerabilities. We cannot accept regular bug reports or 
other queries at this address. All mail sent to this address that does not 
relate to an undisclosed security problem in the Apache Sling source code will 
be ignored.</em></p>
@@ -88,7 +88,7 @@
 <p>The private security mailing address is: security(at)sling.apache.org.</p>
 <p>Note that all networked servers are subject to denial of service attacks, 
and we cannot promise magic workarounds to generic problems (such as a client 
streaming lots of data to your server, or re-requesting the same URL 
repeatedly). In general our philosophy is to avoid any attacks which can cause 
the server to consume resources in a non-linear relationship to the size of 
inputs.</p>
 <p>For more information on handling security issues at the Apache Software 
Foundation please refer to the <a href="http://www.apache.org/security/";>ASF 
Security Team</a> page and to the <a 
href="http://www.apache.org/security/committers.html";>security process 
description for committers</a>.</p>
-<h1>Errors and omissions</h1>
+<h1><a href="#errors-and-omissions" name="errors-and-omissions">Errors and 
omissions</a></h1>
 <p>Please report any errors or omissions to 
security(at)sling.apache.org.</p></section></div></div>
 <div class="footer">
                 <div class="trademarkFooter">

http://git-wip-us.apache.org/repos/asf/sling-site/blob/f542b22e/res/css/site.css
----------------------------------------------------------------------
diff --git a/res/css/site.css b/res/css/site.css
index 3960df4..71d3f69 100644
--- a/res/css/site.css
+++ b/res/css/site.css
@@ -29,6 +29,11 @@ h2 {
     padding-top: 0.45em;
 }
 
+h1 a, h1 a:visited, h2 a, h2 a:visited, h3 a, h3 a:visited, h4 a, h4 a:visited 
{
+       color:black;
+       text-decoration:none;
+}
+
 h3 {
     font-size: 150%
 }

http://git-wip-us.apache.org/repos/asf/sling-site/blob/f542b22e/sitemap.html
----------------------------------------------------------------------
diff --git a/sitemap.html b/sitemap.html
index a072feb..2ddfede 100644
--- a/sitemap.html
+++ b/sitemap.html
@@ -72,7 +72,9 @@
         </div>        <div class="main">
             <breadcrumbs/><h1>
                 Sitemap
-            </h1><div class="sitemap"><section class="wrap"><ul><li><a 
href="/ng/contributing.html">Contributing</a></li>
+            </h1><div class="sitemap"><section class="wrap"><ul><li><a 
href="/ng/documentation/bundles/context-aware-configuration/context-aware-configuration.html">Apache
 Sling Context-Aware Configuration</a></li>
+                        <li><a 
href="/ng/documentation/bundles/models.html">Sling Models</a></li>
+                        <li><a 
href="/ng/contributing.html">Contributing</a></li>
                         <li><a 
href="/ng/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.html">Accessing
 File System Resources (org.apache.sling.fsresource)</a></li>
                         <li><a 
href="/ng/documentation/bundles/apache-sling-commons-thread-pool.html">Apache 
Sling Commons Thread Pool</a></li>
                         <li><a 
href="/ng/documentation/bundles/apache-sling-eventing-and-job-handling.html">Apache
 Sling Eventing and Job Handling</a></li>
@@ -85,7 +87,6 @@
                         <li><a 
href="/ng/documentation/bundles/context-aware-configuration/context-aware-configuration-default-implementation.html">Apache
 Sling Context-Aware Configuration - Default Implementation</a></li>
                         <li><a 
href="/ng/documentation/bundles/context-aware-configuration/context-aware-configuration-override.html">Apache
 Sling Context-Aware Configuration - Override</a></li>
                         <li><a 
href="/ng/documentation/bundles/context-aware-configuration/context-aware-configuration-spi.html">Apache
 Sling Context-Aware Configuration - SPI</a></li>
-                        <li><a 
href="/ng/documentation/bundles/context-aware-configuration/context-aware-configuration.html">Apache
 Sling Context-Aware Configuration</a></li>
                         <li><a 
href="/ng/documentation/bundles/datasource-providers.html">DataSource 
Provider</a></li>
                         <li><a 
href="/ng/documentation/bundles/discovery-api-and-impl.html">Discovery API and 
its implementations</a></li>
                         <li><a 
href="/ng/documentation/bundles/dynamic-includes.html">Apache Sling Dynamic 
Include</a></li>
@@ -98,7 +99,6 @@
                         <li><a 
href="/ng/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html">Manipulating
 Content - The SlingPostServlet (servlets.post)</a></li>
                         <li><a 
href="/ng/documentation/bundles/metrics.html">Sling Metrics</a></li>
                         <li><a 
href="/ng/documentation/bundles/mime-type-support-commons-mime.html">MIME Type 
Support (commons.mime and commons.contentdetection)</a></li>
-                        <li><a 
href="/ng/documentation/bundles/models.html">Sling Models</a></li>
                         <li><a 
href="/ng/documentation/bundles/nosql-resource-providers.html">NoSQL Resource 
Providers (org.apache.sling.nosql)</a></li>
                         <li><a 
href="/ng/documentation/bundles/org-apache-sling-junit-bundles.html">JUnit 
server-side testing support bundles</a></li>
                         <li><a 
href="/ng/documentation/bundles/osgi-installer.html">OSGi Installer</a></li>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/f542b22e/sitemap.xml
----------------------------------------------------------------------
diff --git a/sitemap.xml b/sitemap.xml
index cadb0a4..3edadc7 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -72,7 +72,9 @@
         </div>        <div class="main">
             <breadcrumbs/><h1>
                 null
-            </h1><div class="sitemap"><section class="wrap"><ul><li><a 
href="/ng/contributing.html">Contributing</a></li>
+            </h1><div class="sitemap"><section class="wrap"><ul><li><a 
href="/ng/documentation/bundles/context-aware-configuration/context-aware-configuration.html">Apache
 Sling Context-Aware Configuration</a></li>
+                        <li><a 
href="/ng/documentation/bundles/models.html">Sling Models</a></li>
+                        <li><a 
href="/ng/contributing.html">Contributing</a></li>
                         <li><a 
href="/ng/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.html">Accessing
 File System Resources (org.apache.sling.fsresource)</a></li>
                         <li><a 
href="/ng/documentation/bundles/apache-sling-commons-thread-pool.html">Apache 
Sling Commons Thread Pool</a></li>
                         <li><a 
href="/ng/documentation/bundles/apache-sling-eventing-and-job-handling.html">Apache
 Sling Eventing and Job Handling</a></li>
@@ -85,7 +87,6 @@
                         <li><a 
href="/ng/documentation/bundles/context-aware-configuration/context-aware-configuration-default-implementation.html">Apache
 Sling Context-Aware Configuration - Default Implementation</a></li>
                         <li><a 
href="/ng/documentation/bundles/context-aware-configuration/context-aware-configuration-override.html">Apache
 Sling Context-Aware Configuration - Override</a></li>
                         <li><a 
href="/ng/documentation/bundles/context-aware-configuration/context-aware-configuration-spi.html">Apache
 Sling Context-Aware Configuration - SPI</a></li>
-                        <li><a 
href="/ng/documentation/bundles/context-aware-configuration/context-aware-configuration.html">Apache
 Sling Context-Aware Configuration</a></li>
                         <li><a 
href="/ng/documentation/bundles/datasource-providers.html">DataSource 
Provider</a></li>
                         <li><a 
href="/ng/documentation/bundles/discovery-api-and-impl.html">Discovery API and 
its implementations</a></li>
                         <li><a 
href="/ng/documentation/bundles/dynamic-includes.html">Apache Sling Dynamic 
Include</a></li>
@@ -98,7 +99,6 @@
                         <li><a 
href="/ng/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html">Manipulating
 Content - The SlingPostServlet (servlets.post)</a></li>
                         <li><a 
href="/ng/documentation/bundles/metrics.html">Sling Metrics</a></li>
                         <li><a 
href="/ng/documentation/bundles/mime-type-support-commons-mime.html">MIME Type 
Support (commons.mime and commons.contentdetection)</a></li>
-                        <li><a 
href="/ng/documentation/bundles/models.html">Sling Models</a></li>
                         <li><a 
href="/ng/documentation/bundles/nosql-resource-providers.html">NoSQL Resource 
Providers (org.apache.sling.nosql)</a></li>
                         <li><a 
href="/ng/documentation/bundles/org-apache-sling-junit-bundles.html">JUnit 
server-side testing support bundles</a></li>
                         <li><a 
href="/ng/documentation/bundles/osgi-installer.html">OSGi Installer</a></li>

Reply via email to