Author: buildbot
Date: Sun Apr 22 16:52:28 2012
New Revision: 813967

Log:
Staging update by buildbot for sling

Added:
    websites/staging/sling/trunk/content/46-line-blog.html
    websites/staging/sling/trunk/content/adapters.html
    websites/staging/sling/trunk/content/apache-sling-commons-thread-pool.html
    
websites/staging/sling/trunk/content/apache-sling-community-roles-and-processes.html
    
websites/staging/sling/trunk/content/apache-sling-eventing-and-job-handling.html
    websites/staging/sling/trunk/content/apache-sling.html
    websites/staging/sling/trunk/content/architecture.html
    websites/staging/sling/trunk/content/assembly.html
    websites/staging/sling/trunk/content/authentication---actors.html
    
websites/staging/sling/trunk/content/authentication---authenticationhandler.html
    websites/staging/sling/trunk/content/authentication---framework.html
    websites/staging/sling/trunk/content/authentication---tasks.html
    websites/staging/sling/trunk/content/authentication.html
    websites/staging/sling/trunk/content/bundles.html
    websites/staging/sling/trunk/content/client-request-logging.html
    websites/staging/sling/trunk/content/commons-html-utilities.html
    websites/staging/sling/trunk/content/configuration.html
    websites/staging/sling/trunk/content/contributing.html
    websites/staging/sling/trunk/content/default-mapping-and-rendering.html
    websites/staging/sling/trunk/content/dependency-management.html
    websites/staging/sling/trunk/content/development.html
    websites/staging/sling/trunk/content/discover-sling-in-15-minutes.html
    websites/staging/sling/trunk/content/dispatching-requests.html
    websites/staging/sling/trunk/content/documentation.html
    websites/staging/sling/trunk/content/downloads.html
    websites/staging/sling/trunk/content/embedding-sling.html
    websites/staging/sling/trunk/content/errorhandling.html
    websites/staging/sling/trunk/content/eventing-and-jobs.html
    websites/staging/sling/trunk/content/filters.html
    websites/staging/sling/trunk/content/form-based-authenticationhandler.html
    websites/staging/sling/trunk/content/getting-and-building-sling.html
    
websites/staging/sling/trunk/content/getting-resources-and-properties-in-sling.html
    websites/staging/sling/trunk/content/getting-started.html
    websites/staging/sling/trunk/content/groovy-support.html
    websites/staging/sling/trunk/content/guides.html
    websites/staging/sling/trunk/content/how-to-manage-events-in-sling.html
    websites/staging/sling/trunk/content/installing-and-upgrading-bundles.html
    websites/staging/sling/trunk/content/issue-tracker.html
    websites/staging/sling/trunk/content/jackrabbit-persistence.html
    websites/staging/sling/trunk/content/jcr-installer-provider.html
    websites/staging/sling/trunk/content/jspc.html
    websites/staging/sling/trunk/content/launch-sling.html
    websites/staging/sling/trunk/content/links.html
    websites/staging/sling/trunk/content/logging.html
    websites/staging/sling/trunk/content/mappings-for-resource-resolution.html
    websites/staging/sling/trunk/content/maven-archetypes.html
    websites/staging/sling/trunk/content/maven-launchpad-plugin.html
    websites/staging/sling/trunk/content/maventipsandtricks.html
    websites/staging/sling/trunk/content/media.html
    websites/staging/sling/trunk/content/monitoring-requests.html
    websites/staging/sling/trunk/content/navigation.html
    websites/staging/sling/trunk/content/news.html
    websites/staging/sling/trunk/content/old-stuff.html
    websites/staging/sling/trunk/content/openid-authenticationhandler.html
    websites/staging/sling/trunk/content/osgi-installer.html
    websites/staging/sling/trunk/content/plugins.html
    websites/staging/sling/trunk/content/project-information.html
    websites/staging/sling/trunk/content/project-license.html
    websites/staging/sling/trunk/content/project-team.html
    websites/staging/sling/trunk/content/release-management.html
    websites/staging/sling/trunk/content/repository-based-development.html
    websites/staging/sling/trunk/content/request-listeners.html
    websites/staging/sling/trunk/content/request-parameters.html
    websites/staging/sling/trunk/content/request-processing.html
    websites/staging/sling/trunk/content/resources.html
    websites/staging/sling/trunk/content/scriptengineintegration.html
    websites/staging/sling/trunk/content/security.html
    websites/staging/sling/trunk/content/servlet-resolution.html
    websites/staging/sling/trunk/content/servlets.html
    websites/staging/sling/trunk/content/sling-api.html
    websites/staging/sling/trunk/content/sling-testing-tools.html
    websites/staging/sling/trunk/content/sling.html
    websites/staging/sling/trunk/content/the-sling-engine.html
    websites/staging/sling/trunk/content/the-sling-launchpad.html
    websites/staging/sling/trunk/content/url-decomposition.html
    websites/staging/sling/trunk/content/version-policy.html
    websites/staging/sling/trunk/content/web-console-extensions.html
    websites/staging/sling/trunk/content/wiki.html
    websites/staging/sling/trunk/content/wrap-or-decorate-resources.html
    websites/staging/sling/trunk/content/xslt-processing-pipeline.html
Modified:
    websites/staging/sling/trunk/content/   (props changed)

Propchange: websites/staging/sling/trunk/content/
------------------------------------------------------------------------------
    cms:source-revision = 1328899

Added: websites/staging/sling/trunk/content/46-line-blog.html
==============================================================================
--- websites/staging/sling/trunk/content/46-line-blog.html (added)
+++ websites/staging/sling/trunk/content/46-line-blog.html Sun Apr 22 16:52:28 
2012
@@ -0,0 +1,317 @@
+<!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 - 46 Line Blog</title>
+    <link rel="stylesheet" 
href="http://sling.apache.org/site/media.data/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"> 
+      <h1 id="documentation">Documentation</h1>
+<ul>
+<li><a href="getting-started.html">Getting Started</a></li>
+<li><a href="the-sling-engine.html">The Sling Engine</a></li>
+<li><a href="development.html">Development</a></li>
+<li><a href="bundles.html">Bundles</a></li>
+<li><a href="tutorials-&amp;-how-tos.html">Tutorials &amp; How-Tos</a></li>
+<li><a href="configuration.html">Configuration</a></li>
+<li><a href="http://sling.apache.org/apidocs/sling5/index.html";>API 
docs</a></li>
+<li><a href="http://s.apache.org/sling.wiki";>Wiki</a></li>
+<li><a href="http://s.apache.org/sling.faq";>FAQ</a></li>
+</ul>
+<h1 id="project-info">Project info</h1>
+<ul>
+<li><a href="http://sling.apache.org/site/downloads.cgi";>Downloads</a></li>
+<li><a href="http://www.apache.org/licenses/";>License</a></li>
+<li><a href="contributing.html">Contributing</a></li>
+<li><a href="news.html">News</a></li>
+<li><a href="links.html">Links</a></li>
+<li><a href="project-information.html">Project Information</a></li>
+<li><a href="https://issues.apache.org/jira/browse/SLING";>Issue 
Tracker</a></li>
+<li><a href="http://svn.apache.org/viewvc/sling/trunk";>Browse Source 
Repository</a></li>
+<li><a href="http://www.apache.org/security/";>Security</a></li>
+</ul>
+<h1 id="sponsorship">Sponsorship</h1>
+<ul>
+<li><a href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html";>Become a 
Sponsor</a></li>
+<li><a href="http://www.apache.org/foundation/buy_stuff.html";>Buy 
Stuff</a></li>
+</ul>
+<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%;">
+               (TODO: breadcrumb here)
+      </div>
+      <h1 class="title">46 Line Blog</h1>
+      <div>
+           <p>This tutorial is based on the first <em>Sling Gems</em> on 
dev.day.com: The <a 
href="http://dev.day.com/microsling/content/blogs/main/sling-46-lines-blog.html";>Sling
 gems: a blog in 46 lines of code</a>
+. It has slightly been adapted to fit here.</p>
+<p>In this tutorial, the SlingPostServlet and the sling.js library are brought
+together using 46 (no kidding: <em>fourty-six</em>) lines of code to create a
+simple blog (or let's say <em>bloggish</em>) application.</p>
+<p>I used this example in my <a 
href="rapid-jcr-applications-development-with-sling.html">http://us.apachecon.com/c/acus2009/sessions/284</a>
+ presentation at ApacheCon US 09 in Oakland (slides will be available
+soon), and I think it's a good testimony to the power and simplicity of
+Sling.</p>
+<p><a name="46LineBlog-Audience"></a></p>
+<h2 id="audience">Audience</h2>
+<p>Although this is a simple sample, it requires some custom settings to work.
+If you're just starting with Sling, <a 
href="slingxsite:discover-sling-in-15-minutes.html">SLINGxSITE:Discover Sling 
in 15 minutes</a>
+ might be a better choice.</p>
+<p><a name="46LineBlog-Step0:Start,configureandlogintoSling"></a></p>
+<h2 id="step-0-start-configure-and-login-to-sling">Step 0: Start, configure 
and login to Sling</h2>
+<p>See <a href="slingxsite:getting-and-building-sling.html">SLINGxSITE:Getting 
and Building Sling</a>
+ for how to start Sling. Start it on port 8888 for the below links to work.</p>
+<p>For this sample we need the optional
+<em>org.apache.sling.samples.path-based.rtp</em> bundle, if it's not present in
+the <a href="http://localhost:8888/system/console/bundles";>OSGi console</a>
+, install and start it. That bundle is not released yet so you might need
+to build it yourself, from its 
[source|http://svn.apache.org/repos/asf/sling/trunk/samples/path-based-rtp]
+. The bundle must then appear in the [OSGI console's list of 
bundles|http://localhost:8888/system/console/bundles]
+, with name = <em>org.apache.sling.samples.path-based.rtp</em> and status =
+<em>Active</em>.</p>
+<p>Then, login using http://localhost:8888/?sling:authRequestLogin=1 which
+should prompt you for a username and password, use <em>admin</em> and 
<em>admin</em>.
+Once that's done, http://localhost:8888/index.html should say <em>You are
+currently logged in as user <em>admin</em> to workspace 
<em>default</em></em>.</p>
+<p><a name="46LineBlog-Step1:Creatingcontent"></a></p>
+<h2 id="step-1-creating-content">Step 1: Creating content</h2>
+<p>The easiest way to create content in Sling is to use an HTTP POST request,
+let's use a simple HTML form:</p>
+<p>{code:html}
+<html>
+  <body>
+    <h1>Sling microblog</h1></p>
+<div class="codehilite"><pre><span class="nt">&lt;div&gt;</span>
+  <span class="nt">&lt;form</span> <span class="na">method=</span><span 
class="s">&quot;POST&quot;</span><span class="nt">&gt;</span>
+Title:<span class="nt">&lt;br/&gt;</span>
+<span class="nt">&lt;input</span> <span class="na">type=</span><span 
class="s">&quot;text&quot;</span> <span class="na">name=</span><span 
class="s">&quot;title&quot;</span> <span class="na">style=</span><span 
class="s">&quot;width:100%&quot;</span><span class="nt">/&gt;</span>
+
+<span class="nt">&lt;br/&gt;</span>Text:<span class="nt">&lt;br/&gt;</span>
+<span class="nt">&lt;textarea</span> <span class="na">style=</span><span 
class="s">&quot;width:100%&quot;</span> <span class="na">name=</span><span 
class="s">&quot;text&quot;</span><span class="nt">&gt;&lt;/textarea&gt;</span>
+
+<span class="nt">&lt;br/&gt;</span>
+<span class="nt">&lt;input</span> <span class="na">type=</span><span 
class="s">&quot;submit&quot;</span> <span class="na">value=</span><span 
class="s">&quot;save&quot;</span><span class="nt">/&gt;</span>
+<span class="nt">&lt;input</span> <span class="na">type=</span><span 
class="s">&quot;hidden&quot;</span> <span class="na">name=</span><span 
class="s">&quot;:redirect&quot;</span> <span class="na">value=</span><span 
class="s">&quot;*.html&quot;</span><span class="nt">/&gt;</span>
+  <span class="nt">&lt;/form&gt;</span>
+<span class="nt">&lt;/div&gt;</span>
+
+<span class="c">&lt;!-- code of step 2 comes here --&gt;</span>
+</pre></div>
+
+
+<p></body>
+</html></p>
+<div class="codehilite"><pre><span class="n">That</span><span 
class="err">&#39;</span><span class="n">s</span> <span class="n">two</span> 
<span class="n">input</span> <span class="n">fields</span><span 
class="p">,</span> <span class="n">a</span> <span class="n">submit</span> <span 
class="n">button</span> <span class="ow">and</span> <span class="n">a</span> 
<span class="n">hidden</span> <span class="n">field</span> <span 
class="n">that</span> <span class="n">tells</span>
+</pre></div>
+
+
+<p>Sling what to do after the POST (in this case: redirect to the html view of
+the node that was just created).</p>
+<div class="codehilite"><pre><span class="n">To</span> <span 
class="n">test</span> <span class="n">the</span> <span 
class="n">form</span><span class="p">,</span> <span class="n">start</span> 
<span class="n">Sling</span> <span class="ow">and</span> <span 
class="n">save</span> <span class="n">the</span> <span class="n">above</span> 
<span class="n">script</span> <span class="n">as</span>
+</pre></div>
+
+
+<p>{{/apps/blog/blog.esp}} {footnote}ESP is Sling's server-side javascript
+language{footnote} in the Sling repository - a WebDAV mount is the easiest
+way to do that. Browsing to {{http://localhost:8888/content/blog/*.html}}
+{footnote} This assumes your instance of Sling is running on port 8888. If
+that's not the case, adjust the example URLs accordingly. {footnote} should
+display the above form.</p>
+<div class="codehilite"><pre><span class="n">Input</span> <span 
class="n">some</span> <span class="n">data</span> <span class="p">(</span><span 
class="n">using</span> <span class="s">&quot;foo&quot;</span> <span 
class="k">for</span> <span class="n">the</span> <span 
class="n">title</span><span class="p">,</span> <span class="k">for</span> <span 
class="n">the</span> <span class="n">sake</span> <span class="n">of</span> 
<span class="k">our</span> <span class="n">examples</span>
+</pre></div>
+
+
+<p>below), save the form, and Sling
+    should display the form again, using the URL of the node that was just
+created.</p>
+<div class="codehilite"><pre><span class="p">{</span><span 
class="n">note:title</span><span class="o">=</span><span 
class="n">AccessDeniedException</span><span class="p">?}</span>
+<span class="n">If</span> <span class="n">you</span> <span 
class="n">get</span> <span class="n">an</span> <span class="n">error</span> 
<span class="n">saying</span> <span class="n">_javax</span><span 
class="o">.</span><span class="n">jcr</span><span class="o">.</span><span 
class="n">AccessDeniedException:</span> <span class="o">...</span><span 
class="ow">not</span> <span class="n">allowed</span>
+</pre></div>
+
+
+<p>to add or modify item_ it means that you are not logged in as user 
<em>admin</em>.
+See instructions above for logging in.
+    {note}</p>
+<div class="codehilite"><pre><span class="n">At</span> <span 
class="n">this</span> <span class="n">point</span> <span 
class="n">you</span><span class="err">&#39;</span><span class="n">re</span> 
<span class="n">probably</span> <span class="n">looking</span> <span 
class="n">at</span> <span class="n">an</span> <span class="n">empty</span> 
<span class="n">form</span> <span class="n">with</span> <span 
class="n">an</span> <span class="n">URL</span> <span class="n">ending</span>
+</pre></div>
+
+
+<p>in <em>foo</em>, if you used that for the title. Or <em>foo_0</em> or 
<em>foo_1</em> if other
+_foo_s already existed. Don't worry about not seeing your content, we'll
+fix that right away.</p>
+<div class="codehilite"><pre><span class="n">h2</span><span class="o">.</span> 
<span class="n">Step</span> <span class="mi">2</span><span class="p">:</span> 
<span class="n">Where</span><span class="err">&#39;</span><span 
class="n">s</span> <span class="k">my</span> <span 
class="n">content</span><span class="p">?</span>
+
+<span class="n">To</span> <span class="n">verify</span> <span 
class="n">that</span> <span class="k">our</span> <span class="n">content</span> 
<span class="n">has</span> <span class="n">been</span> <span 
class="n">created</span><span class="p">,</span> <span class="n">we</span> 
<span class="n">can</span> <span class="n">have</span> <span class="n">a</span> 
<span class="n">look</span> <span class="n">at</span> <span 
class="n">the</span> <span class="n">JSON</span>
+</pre></div>
+
+
+<p>data at {{http://localhost:8888/content/blog/foo.tidy.json}}, which should
+display our new node's values:</p>
+<div class="codehilite"><pre><span class="p">{</span><span 
class="n">code:javascript</span><span class="p">}</span>
+<span class="p">{</span>
+  <span class="s">&quot;jcr:primaryType&quot;</span><span class="p">:</span> 
<span class="s">&quot;nt:unstructured&quot;</span><span class="p">,</span>
+  <span class="s">&quot;text&quot;</span><span class="p">:</span> <span 
class="s">&quot;This is the foo text&quot;</span><span class="p">,</span>
+  <span class="s">&quot;title&quot;</span><span class="p">:</span> <span 
class="s">&quot;foo&quot;</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<p>That's reassuring, but what we really want is for these values to be
+displayed on the editing form for our post.</p>
+<p>Thanks to the <em>sling.js</em> client library, we just need to add a
+<em>Sling.wizard()</em> call to our form to display those values. Let's first
+add a <em><head></em> element to our form to load the <em>sling.js</em> 
library, before
+the existing <em><body></em> of course:</p>
+<p>{code:html}
+<head>
+  <script src="/system/sling.js"></script>
+</head></p>
+<div class="codehilite"><pre><span class="n">And</span> <span 
class="n">add</span> <span class="n">the</span> <span class="p">{{</span><span 
class="n">Sling</span><span class="o">.</span><span 
class="n">wizard</span><span class="p">()}}</span> <span class="n">after</span> 
<span class="n">the</span> <span class="n">form</span><span class="p">,</span> 
<span class="n">where</span> <span class="n">we</span> <span 
class="n">had</span> <span class="n">the</span> <span class="n">_code</span> 
<span class="n">of</span>
+</pre></div>
+
+
+<p>step 2 comes here_ comment:</p>
+<div class="codehilite"><pre>{code:html}
+<span class="c">&lt;!-- code of step 2 comes here --&gt;</span>
+<span class="nt">&lt;script&gt;</span>Sling.wizard();<span 
class="nt">&lt;/script&gt;</span>
+</pre></div>
+
+
+<p>Reloading the form at <em>http://localhost:8888/content/blog/</em>.html* and
+creating a new post should now redirect to an editable version of the post,
+with the form fields correctly initialized.</p>
+<p>We can now create and edit posts; let's add some navigation, using more of
+the <em>sling.js</em> functionality. </p>
+<p><a name="46LineBlog-Step3:Navigation"></a></p>
+<h2 id="step-3-navigation">Step 3: Navigation</h2>
+<p>The <em>sling.js</em> library provides utilities to access and manipulate 
content.
+For our blog, we'll use the <em>getContent(path)</em> method to list the
+siblings of the current node.</p>
+<p>Add the following code to your script, after the <em>Sling.wizard()</em> 
call
+that was added in step 2:</p>
+<p>{code:html}
+<h3>Navigation</h3>
+<ul>
+    <li><em><a href="/content/blog/*.html"><a 
href="create-new-post.html">Create new post</a>
+</a></em></li>
+    <script>
+      var posts = Sling.getContent("/content/blog", 2);
+      for(var i in posts) {
+    document.write("<li>"
+      + "<a href='/content/blog/" + i + ".html'>"  <br />
+          + posts<a href="i.html">i</a>
+.title
+      + "</a></li>");
+      }
+    </script>
+</ul></p>
+<div class="codehilite"><pre><span class="n">The</span> <span 
class="n">first</span> <span class="nb">link</span> <span class="n">to</span> 
<span class="p">{{</span><span class="sr">/content/</span><span 
class="n">blog</span><span class="o">/*</span><span class="p">}}</span> <span 
class="n">brings</span> <span class="n">us</span> <span class="n">back</span> 
<span class="n">to</span> <span class="k">our</span> <span 
class="n">content</span>
+</pre></div>
+
+
+<p>creating form, which is nothing else than the editing form reading empty
+values and posting to the "magic star" URL. </p>
+<div class="codehilite"><pre><span class="n">The</span> <span 
class="n">rest</span> <span class="n">of</span> <span class="n">the</span> 
<span class="n">javascript</span> <span class="n">runs</span> <span 
class="n">client</span><span class="o">-</span><span class="n">side</span><span 
class="p">,</span> <span class="n">as</span> <span class="n">it</span> <span 
class="n">is</span> <span class="ow">not</span> <span class="n">embedded</span> 
<span class="n">in</span> <span class="p">{{</span><span 
class="o">&lt;</span><span class="nv">%</span>
+</pre></div>
+
+
+<p>%&gt;}} code markers, calls the {{sling.getContent}} method to get two 
levels
+of node data below {{/content/blog}}, and displays links to nodes that it
+finds.</p>
+<div class="codehilite"><pre><span class="n">That</span><span class="s">&#39;s 
a basic navigation, of course, in a real blog we&#39;</span><span 
class="n">d</span> <span class="n">need</span> <span class="n">some</span> 
<span class="n">paging</span>
+</pre></div>
+
+
+<p>and contextualization to cope with large numbers of posts.</p>
+<div class="codehilite"><pre><span class="n">Nevertheless</span><span 
class="p">,</span> <span class="n">with</span> <span class="n">this</span> 
<span class="n">addition</span> <span class="k">our</span> <span 
class="n">ESP</span> <span class="n">script</span> <span 
class="n">allows</span> <span class="n">us</span> <span class="n">to</span> 
<span class="n">create</span><span class="p">,</span> <span 
class="n">edit</span>
+</pre></div>
+
+
+<p>and navigate blog posts - not bad for 46 lines of code, including comments,
+whitespace and output formatting.</p>
+<div class="codehilite"><pre><span class="n">h2</span><span class="o">.</span> 
<span class="n">Step</span> <span class="mi">4</span><span class="p">:</span> 
<span class="n">Data</span> <span class="n">first</span><span 
class="p">,</span> <span class="n">structure</span> <span class="n">later</span>
+
+<span class="n">You</span> <span class="n">might</span> <span 
class="n">have</span> <span class="n">heard</span> <span class="n">this</span> 
<span class="n">mantra</span><span class="p">,</span> <span 
class="n">which</span> <span class="n">we</span> <span class="n">apply</span> 
<span class="n">in</span> <span class="n">many</span> <span 
class="n">areas</span> <span class="n">of</span> <span 
class="n">Sling</span><span class="o">.</span>
+
+<span class="n">In</span> <span class="n">this</span> <span 
class="k">case</span><span class="p">,</span> <span class="n">adding</span> 
<span class="n">a</span> <span class="k">new</span> <span 
class="n">field</span> <span class="n">to</span> <span class="k">our</span> 
<span class="n">blog</span> <span class="n">posts</span> <span 
class="n">could</span> <span class="ow">not</span> <span class="n">be</span> 
<span class="n">easier:</span>
+</pre></div>
+
+
+<p>just add an input field to the form, and Sling will do the rest.</p>
+<div class="codehilite"><pre><span class="n">Adding</span> <span 
class="n">this</span> <span class="n">inside</span> <span class="k">our</span> 
<span class="n">script</span><span class="err">&#39;</span><span 
class="n">s</span> <span class="p">{{</span><span 
class="sr">&lt;form&gt;</span><span class="p">}}</span> <span 
class="n">element</span><span class="p">,</span> <span class="k">for</span> 
<span class="n">example:</span>
+
+<span class="p">{</span><span class="n">code:html</span><span 
class="p">}</span>
+<span class="sr">&lt;br/&gt;</span><span class="n">Author:</span><span 
class="sr">&lt;br/&gt;</span>
+<span class="o">&lt;</span><span class="n">input</span> <span 
class="n">type</span><span class="o">=</span><span 
class="s">&quot;author&quot;</span> <span class="n">name</span><span 
class="o">=</span><span class="s">&quot;author&quot;</span> <span 
class="n">style</span><span class="o">=</span><span 
class="s">&quot;width:100%&quot;</span><span class="o">/&gt;</span>
+</pre></div>
+
+
+<p>Allows us to add an author name to our blog posts. No need to define
+anything at the repository level, as Sling is using it in unstructured mode
+in this case, and no need to migrate existing data, the author field of
+existing posts will simply be empty.</p>
+<p><a name="46LineBlog-IwantmyESP!"></a></p>
+<h2 id="i-want-my-esp">I want my ESP!</h2>
+<p>Now wait...we said we were going to create an ESP script, but our
+"application" is just static HTML and some client javascript at this point.</p>
+<p>That's correct - as we are using only Sling client-facing features at this
+point (HTTP POST and <em>sling.js</em>), we do not necessarily need to use ESP
+code.</p>
+<p>To keep things simple, we'll refrain from adding ESP-based features at this
+point, but you can of course use any ESP code in the <em>blog.esp</em> 
"script".</p>
+<p><a name="46LineBlog-That'sthepowerofSling"></a></p>
+<h2 id="thats-the-power-of-sling">That's the power of Sling</h2>
+<p>The 46-line blog is a good example of the power of Sling. It leverages the 
<a 
href="slingxsite:manipulating-content---the-slingpostservlet-(servlets.post)|slingpostservlet.html">SlingPostServlet</a>
+, which handles POST requests in a form-friendly way, and the
+<em>[sling.js|http://svn.apache.org/repos/asf/sling/trunk/bundles/servlets/post/src/main/resources/system/sling.js]</em>
+client library, which provides high-level functionality on the client side.</p>
+<hr />
+<p>{display-footnotes}</p>
+      </div>
+    </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>
+  </body>
+</html>

Added: websites/staging/sling/trunk/content/adapters.html
==============================================================================
--- websites/staging/sling/trunk/content/adapters.html (added)
+++ websites/staging/sling/trunk/content/adapters.html Sun Apr 22 16:52:28 2012
@@ -0,0 +1,240 @@
+<!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 - Adapters</title>
+    <link rel="stylesheet" 
href="http://sling.apache.org/site/media.data/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"> 
+      <h1 id="documentation">Documentation</h1>
+<ul>
+<li><a href="getting-started.html">Getting Started</a></li>
+<li><a href="the-sling-engine.html">The Sling Engine</a></li>
+<li><a href="development.html">Development</a></li>
+<li><a href="bundles.html">Bundles</a></li>
+<li><a href="tutorials-&amp;-how-tos.html">Tutorials &amp; How-Tos</a></li>
+<li><a href="configuration.html">Configuration</a></li>
+<li><a href="http://sling.apache.org/apidocs/sling5/index.html";>API 
docs</a></li>
+<li><a href="http://s.apache.org/sling.wiki";>Wiki</a></li>
+<li><a href="http://s.apache.org/sling.faq";>FAQ</a></li>
+</ul>
+<h1 id="project-info">Project info</h1>
+<ul>
+<li><a href="http://sling.apache.org/site/downloads.cgi";>Downloads</a></li>
+<li><a href="http://www.apache.org/licenses/";>License</a></li>
+<li><a href="contributing.html">Contributing</a></li>
+<li><a href="news.html">News</a></li>
+<li><a href="links.html">Links</a></li>
+<li><a href="project-information.html">Project Information</a></li>
+<li><a href="https://issues.apache.org/jira/browse/SLING";>Issue 
Tracker</a></li>
+<li><a href="http://svn.apache.org/viewvc/sling/trunk";>Browse Source 
Repository</a></li>
+<li><a href="http://www.apache.org/security/";>Security</a></li>
+</ul>
+<h1 id="sponsorship">Sponsorship</h1>
+<ul>
+<li><a href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html";>Become a 
Sponsor</a></li>
+<li><a href="http://www.apache.org/foundation/buy_stuff.html";>Buy 
Stuff</a></li>
+</ul>
+<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%;">
+               (TODO: breadcrumb here)
+      </div>
+      <h1 class="title">Adapters</h1>
+      <div>
+           <p><a name="Adapters-Adapters"></a></p>
+<h1 id="adapters">Adapters</h1>
+<p>The <em>Resource</em> and <em>ResourceResolver</em> interfaces are defined 
with a
+method <em>adaptTo</em>, which adapts the object to other classes. Using this
+mechanism the JCR session of the resource resolver calling the <em>adaptTo</em>
+method with the <em>javax.jcr.Session</em> class object. Likewise the JCR node
+on which a resource is based can be retrieved by calling the
+<em>Resource.adaptTo</em> method with the <em>javax.jcr.Node</em> class 
object.</p>
+<p>To use resources as scripts, the <em>Resource.adaptTo</em> method must 
support
+being called with the <em>org.apache.sling.api.script.SlingScript</em> class
+object. But of course, we do not want to integrate the script manager with
+the resource resolver. To enable adapting objects to classes which are not
+foreseen by the original implementation, a factory mechanism is used. This
+way, the script manager can provide an adapter factory to adapt
+<em>Resource</em> to <em>SlingScript</em> objects.</p>
+<p><a name="Adapters-Adaptable"></a></p>
+<h2 id="adaptable">Adaptable</h2>
+<p>The <em>Adaptable</em> interface defines the API to be implemented by a 
class
+providing adaptability to another class. The single method defined by this
+interface is</p>
+<div class="codehilite"><pre><span class="o">/**</span>
+ <span class="o">*</span> <span class="n">Adapts</span> <span 
class="n">the</span> <span class="n">adaptable</span> <span class="n">to</span> 
<span class="n">another</span> <span class="n">type</span><span 
class="o">.</span>
+ <span class="o">*</span> <span class="sr">&lt;p&gt;</span>
+ <span class="o">*</span> <span class="n">Please</span> <span 
class="ow">not</span> <span class="n">that</span> <span class="n">it</span> 
<span class="n">is</span> <span class="n">explicitly</span> <span 
class="n">left</span> <span class="n">as</span> <span class="n">an</span> <span 
class="n">implementation</span> <span class="n">detail</span>
+</pre></div>
+
+
+<p>whether
+     * each call to this method with the same <code>type</code> yields the same
+     * object or a new object on each call.
+     * <p>
+     * Implementations of this method should document their adapted types as
+     * well as their behaviour with respect to returning newly created or not
+     * instance on each call.
+     <em>
+     * @param <AdapterType> The generic type to which this resource is adapted
+     *        to
+     * @param type The Class object of the target type, such as
+     *        <code>javax.jcr.Node.class</code> or
+     *        <code>java.io.File.class</code>
+     * @return The adapter target or <code>null</code> if the resource cannot
+     *     adapt to the requested type
+     </em>/
+    <AdapterType> AdapterType adaptTo(Class<AdapterType> type);</p>
+<p>This method is called to get a view of the same object in terms of another
+class. Examples of implementations of this method is the Sling
+<em>ResourceResolver</em> implementation providing adapting to a JCR session 
and
+the Sling JCR based <em>Resource</em> implementation providing adapting to a 
JCR
+node.</p>
+<p><a name="Adapters-ExtendingAdapters"></a></p>
+<h2 id="extending-adapters">Extending Adapters</h2>
+<p>Sometimes an <em>Adaptable</em> implementation cannot foresee future uses 
and
+requirements. To cope with such extensibility requirements two interfaces
+and an abstract base class are defined:</p>
+<ul>
+<li><em>AdapterManager</em></li>
+<li><em>AdapterFactory</em></li>
+<li><em>SlingAdaptable</em></li>
+</ul>
+<p><a name="Adapters-AdapterFactory"></a></p>
+<h2 id="adapterfactory">AdapterFactory</h2>
+<p>The <em>AdapterFactory</em> interface defines the service interface and API 
for
+factories supporting extensible adapters for <em>SlingAdaptable</em> objects.
+The interface has a single method:</p>
+<div class="codehilite"><pre>/**
+ * Adapt the given object to the adaptable type. The adaptable object is
+ * guaranteed to be an instance of one of the classes listed in the
+ * {@link #ADAPTABLE_CLASSES} services registration property. The type
+ * parameter is one of the classes listed in the {@link #ADAPTER_CLASSES}
+ * service registration properties.
+ * <span class="nt">&lt;p&gt;</span>
+ * This method may return <span class="nt">&lt;code&gt;</span>null<span 
class="nt">&lt;/code&gt;</span> if the adaptable object cannot
+ * be adapted to the adapter (target) type for any reason. In this case,
+</pre></div>
+
+
+<p>the
+     * implementation should log a message to the log facility noting the cause
+     * for not being able to adapt.
+     * <p>
+     * Note that the <code>adaptable</code> object is not required to implement
+     * the <code>Adaptable</code> interface, though most of the time this
+method
+     * is called by means of calling the {@link Adaptable#adaptTo(Class)}
+     * method.
+     <em>
+     * @param <AdapterType> The generic type of the adapter (target) type.
+     * @param adaptable The object to adapt to the adapter type.
+     * @param type The type to which the object is to be adapted.
+     * @return The adapted object or <code>null</code> if this factory instance
+     *     cannot adapt the object.
+     </em>/
+    <AdapterType> AdapterType getAdapter(Object adaptable,
+        Class<AdapterType> type);</p>
+<p>Implementations of this interface are registered as OSGi services providing
+two lists: The list of classes wich may be adapted (property named
+<em>adaptables</em>) and the list of classes to which the adapted class may be
+adapted (property named <em>adapters</em>). A good example of an Class
+implementing <em>AdapterFactory</em> is the 
<em>SlingScriptAdapterFactory</em>.</p>
+<p><em>AdapterFactory</em> services are gathered by a <em>AdapterManager</em>
+implementation for use by consumers. Consumers should not care for
+<em>AdapterFactory</em> services.</p>
+<p><a name="Adapters-AdapterManager"></a></p>
+<h2 id="adaptermanager">AdapterManager</h2>
+<p>The <em>AdapterManager</em> is defines the service interface for the 
genralized
+and extensible use of <em>AdapterFactory</em> services. Thus the adapter 
manager
+may be retrieved from the service registry to try to adapt whatever object
+that needs to be adapted - provided appropriate adapters exist.</p>
+<p>The <em>AdapterManager</em> interface is defined as follows:</p>
+<div class="codehilite"><pre>/**
+ * Returns an adapter object of the requested <span 
class="nt">&lt;code&gt;</span>AdapterType<span class="nt">&lt;/code&gt;</span> 
for
+ * the given <span class="nt">&lt;code&gt;</span>adaptable<span 
class="nt">&lt;/code&gt;</span> object.
+ * <span class="nt">&lt;p&gt;</span>
+ * The <span class="nt">&lt;code&gt;</span>adaptable<span 
class="nt">&lt;/code&gt;</span> object may be any non-<span 
class="nt">&lt;code&gt;</span>null<span class="nt">&lt;/code&gt;</span>
+</pre></div>
+
+
+<p>object
+     * and is not required to implement the <code>Adaptable</code> interface.
+     <em>
+     * @param <AdapterType> The generic type of the adapter (target) type.
+     * @param adaptable The object to adapt to the adapter type.
+     * @param type The type to which the object is to be adapted.
+     * @return The adapted object or <code>null</code> if no factory exists to
+     *     adapt the <code>adaptable</code> to the <code>AdapterType</code>
+     *     or if the <code>adaptable</code> cannot be adapted for any other
+     *     reason.
+     </em>/
+    <AdapterType> AdapterType getAdapter(Object adaptable,
+        Class<AdapterType> type);</p>
+<p>Any object can theoretically be adapted to any class even if it does not
+implement the <em>Adaptable</em> interface, if an <em>AdapterFactory</em> 
service
+delivers a <em>getAdapter()</em> method which adapts an object to another one.
+To check if there's any existing <em>AdapterFactory</em> which can adapt a 
given
+object to another one the <em>AdapterManager</em> service with it's
+<em>getAdapter()</em> method does the job. So the <em>Adaptable</em> interface 
merely
+is an indicator that the object provides built-in support for beeing
+adapted.</p>
+<p><a name="Adapters-SlingAdaptable"></a></p>
+<h2 id="slingadaptable">SlingAdaptable</h2>
+<p>The <em>SlingAdaptable</em> class is an implementation of the 
<em>Adaptable</em>
+interface which provides built-in support to call the <em>AdapterManager</em> 
to
+provide an adapter from the <em>Adaptable</em> object to the requested 
class.</p>
+<p>An example of extending the <em>SlingAdaptable</em> class will be the Sling 
JCR
+based <em>Resource</em> implementation. This way, such a resource may be 
adapted
+to a <em>SlingScript</em> by means of an appropriatley programmed
+<em>AdapterFactory</em> (see below).</p>
+      </div>
+    </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>
+  </body>
+</html>

Added: 
websites/staging/sling/trunk/content/apache-sling-commons-thread-pool.html
==============================================================================
--- websites/staging/sling/trunk/content/apache-sling-commons-thread-pool.html 
(added)
+++ websites/staging/sling/trunk/content/apache-sling-commons-thread-pool.html 
Sun Apr 22 16:52:28 2012
@@ -0,0 +1,106 @@
+<!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 - Apache Sling Commons Thread Pool</title>
+    <link rel="stylesheet" 
href="http://sling.apache.org/site/media.data/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"> 
+      <h1 id="documentation">Documentation</h1>
+<ul>
+<li><a href="getting-started.html">Getting Started</a></li>
+<li><a href="the-sling-engine.html">The Sling Engine</a></li>
+<li><a href="development.html">Development</a></li>
+<li><a href="bundles.html">Bundles</a></li>
+<li><a href="tutorials-&amp;-how-tos.html">Tutorials &amp; How-Tos</a></li>
+<li><a href="configuration.html">Configuration</a></li>
+<li><a href="http://sling.apache.org/apidocs/sling5/index.html";>API 
docs</a></li>
+<li><a href="http://s.apache.org/sling.wiki";>Wiki</a></li>
+<li><a href="http://s.apache.org/sling.faq";>FAQ</a></li>
+</ul>
+<h1 id="project-info">Project info</h1>
+<ul>
+<li><a href="http://sling.apache.org/site/downloads.cgi";>Downloads</a></li>
+<li><a href="http://www.apache.org/licenses/";>License</a></li>
+<li><a href="contributing.html">Contributing</a></li>
+<li><a href="news.html">News</a></li>
+<li><a href="links.html">Links</a></li>
+<li><a href="project-information.html">Project Information</a></li>
+<li><a href="https://issues.apache.org/jira/browse/SLING";>Issue 
Tracker</a></li>
+<li><a href="http://svn.apache.org/viewvc/sling/trunk";>Browse Source 
Repository</a></li>
+<li><a href="http://www.apache.org/security/";>Security</a></li>
+</ul>
+<h1 id="sponsorship">Sponsorship</h1>
+<ul>
+<li><a href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html";>Become a 
Sponsor</a></li>
+<li><a href="http://www.apache.org/foundation/buy_stuff.html";>Buy 
Stuff</a></li>
+</ul>
+<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%;">
+               (TODO: breadcrumb here)
+      </div>
+      <h1 class="title">Apache Sling Commons Thread Pool</h1>
+      <div>
+           <p>The Apache Sling Commons Thread Pool bundle provides a thread 
pool
+services. All thread pools are managed by the
+<em>{nl:org.apache.sling.commons.threads.ThreadPoolManager}</em>. This service 
can
+be used to get a thread pool.</p>
+<p>Thread pools are managed by name - there is a default thread pool and
+custom thread pools can be generated on demand using a unique name.</p>
+<p>The thread pools are actually wrappers around the thread pool support
+(executer) from the Java library. The advantage of using this thread pool
+service is, that the pools can be configured and managed through OSGi
+configurations. In addition the bundle contains a plugin for the Apache
+Felix Web Console.</p>
+<p>When using the {nl:ThreadPoolMananger} it is important to release a thread
+pool using the manager after it has been used.</p>
+      </div>
+    </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>
+  </body>
+</html>

Added: 
websites/staging/sling/trunk/content/apache-sling-community-roles-and-processes.html
==============================================================================
--- 
websites/staging/sling/trunk/content/apache-sling-community-roles-and-processes.html
 (added)
+++ 
websites/staging/sling/trunk/content/apache-sling-community-roles-and-processes.html
 Sun Apr 22 16:52:28 2012
@@ -0,0 +1,168 @@
+<!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 - Apache Sling Community Roles and Processes</title>
+    <link rel="stylesheet" 
href="http://sling.apache.org/site/media.data/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"> 
+      <h1 id="documentation">Documentation</h1>
+<ul>
+<li><a href="getting-started.html">Getting Started</a></li>
+<li><a href="the-sling-engine.html">The Sling Engine</a></li>
+<li><a href="development.html">Development</a></li>
+<li><a href="bundles.html">Bundles</a></li>
+<li><a href="tutorials-&amp;-how-tos.html">Tutorials &amp; How-Tos</a></li>
+<li><a href="configuration.html">Configuration</a></li>
+<li><a href="http://sling.apache.org/apidocs/sling5/index.html";>API 
docs</a></li>
+<li><a href="http://s.apache.org/sling.wiki";>Wiki</a></li>
+<li><a href="http://s.apache.org/sling.faq";>FAQ</a></li>
+</ul>
+<h1 id="project-info">Project info</h1>
+<ul>
+<li><a href="http://sling.apache.org/site/downloads.cgi";>Downloads</a></li>
+<li><a href="http://www.apache.org/licenses/";>License</a></li>
+<li><a href="contributing.html">Contributing</a></li>
+<li><a href="news.html">News</a></li>
+<li><a href="links.html">Links</a></li>
+<li><a href="project-information.html">Project Information</a></li>
+<li><a href="https://issues.apache.org/jira/browse/SLING";>Issue 
Tracker</a></li>
+<li><a href="http://svn.apache.org/viewvc/sling/trunk";>Browse Source 
Repository</a></li>
+<li><a href="http://www.apache.org/security/";>Security</a></li>
+</ul>
+<h1 id="sponsorship">Sponsorship</h1>
+<ul>
+<li><a href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html";>Become a 
Sponsor</a></li>
+<li><a href="http://www.apache.org/foundation/buy_stuff.html";>Buy 
Stuff</a></li>
+</ul>
+<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%;">
+               (TODO: breadcrumb here)
+      </div>
+      <h1 class="title">Apache Sling Community Roles and Processes</h1>
+      <div>
+           <p><a 
name="ApacheSlingCommunityRolesandProcesses-CommunityRolesandProcesses"></a></p>
+<h1 id="community-roles-and-processes">Community Roles and Processes</h1>
+<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>
+<p><a name="ApacheSlingCommunityRolesandProcesses-Roles"></a></p>
+<h2 id="roles">Roles</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>
+<p><a name="ApacheSlingCommunityRolesandProcesses-Users"></a></p>
+<h3 id="users">Users</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>
+<p><a name="ApacheSlingCommunityRolesandProcesses-Contributors"></a></p>
+<h3 id="contributors">Contributors</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>
+<p><a name="ApacheSlingCommunityRolesandProcesses-Committers"></a></p>
+<h3 id="committers">Committers</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>
+<p><a name="ApacheSlingCommunityRolesandProcesses-PMCMembers"></a></p>
+<h3 id="pmc-members">PMC Members</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>
+<p><a name="ApacheSlingCommunityRolesandProcesses-Processes"></a></p>
+<h2 id="processes">Processes</h2>
+<p><a 
name="ApacheSlingCommunityRolesandProcesses-BecomingaUserorContributor"></a></p>
+<h3 id="becoming-a-user-or-contributor">Becoming a User or Contributor</h3>
+<p>There is no requirement for becoming a User or Contributor; these roles are
+open to everyone.</p>
+<p><a name="ApacheSlingCommunityRolesandProcesses-BecomingaCommitter"></a></p>
+<h3 id="becoming-a-committer">Becoming a Committer</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>
+<p><a name="ApacheSlingCommunityRolesandProcesses-BecomingaPMCMember"></a></p>
+<h3 id="becoming-a-pmc-member">Becoming a PMC Member</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>
+<p>Upon a positive vote result, the PMC member will be emailed by the PMC to
+invite him/her to become a PMC member. If the invitation is accepted, an
+announcement about the new PMC member is made to the developer mailing
+list.</p>
+      </div>
+    </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>
+  </body>
+</html>


Reply via email to