You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bu...@apache.org on 2012/05/22 10:25:36 UTC

svn commit: r818658 [14/23] - in /websites/staging/sling/trunk/content: ./ tutorials-how-tos/

Modified: websites/staging/sling/trunk/content/news.html
==============================================================================
--- websites/staging/sling/trunk/content/news.html (original)
+++ websites/staging/sling/trunk/content/news.html Tue May 22 08:25:32 2012
@@ -82,175 +82,80 @@
         <a href="/">Home</a>
       </div>
       <h1>News</h1>
-      <p><a name="News-News"></a></p>
-<h1 id="news">News</h1>
-<p>{excerpt}
-<em> New Releases: Apache Sling Commons Testing 2.0.10, Apache Sling Commons
-Scheduler 2.3.4, Apache Sling Commons Log 3.0.0, Apache Sling Commons Log
-Service 1.0.0, Apache Sling Adapter 2.0.12, Apache Sling Installer Core
-3.3.4, Apache Sling Launchpad API 1.1.0, Apache Sling Launchpad Installer
-1.1.0, and Apache Sling Maven JSPC Plugin 2.0.6 (February 7th, 2012)
-</em> New Releases: Apache Sling API 2.2.4, Apache Sling Adapter 2.0.10, Apache
-Sling Scripting JSP Taglib 2.1.6, Apache Sling Rewriter 1.0.2, Apache Sling
-JCR ContentLoader 2.1.4, Apache Sling JCR Base 2.1.2, Apache Sling Servlet
-Resolver 2.1.2, and Apache Sling Security 1.0.0 (January 30th, 2012)
-<em> New Releases: Apache Sling Scripting API 2.1.4, Apache Sling Scripting
-Core 2.0.20, Apache Sling i18n 2.2.0, Apache Sling Installer Core 3.3.2,
-Apache Sling Scripting Java 2.0.2, and Apache Sling Scripting JSP 2.0.20
-(January 16th, 2012)
-</em> New Releases: Apache Adapter Annotations 1.0.0 and Apache Sling Maven
-Sling Plugin 2.1.0 (January 14th, 2012)
-<em> New Releases: Apache Sling Settings 1.1.0, Apache Sling Commons
-ClassLoader 1.2.4, Apache Sling Commons Scheduler 2.3.2, Apache Sling Event
-3.1.2, Apache Sling Installer Core 3.3.0, Apache Sling Installer
-Configuration Factory 1.0.4, Apache Sling Launchpad Installer 1.0.6, Apache
-Sling JCR Installer 3.1.2, and Apache Sling Thread Dumper 0.2.2 (January
-6th, 2012)
-</em> New Release: Apache Sling Jackrabbit User Manager 2.2.0 (November 15th,
-2011)
-<em> New Release: Apache Sling Maven Sling Plugin 2.0.6 (October 21st, 2011)
-</em> New Release: Apache Sling Maven Launchpad Plugin 2.1.0 (September 9th,
-20111)
-<em> New Releases: Apache Sling Resource Bundle 1.0.0 and Parent POM 12
-</em> New Releases: Apache Sling API 2.2.2, Apache Sling Commons Scheduler
-2.3.0, Apache Sling Commons OSGi 2.1.0, Apache Sling Scripting Core 2.0.18,
-Apache Sling Installer Core 3.2.2, Apache Sling Installer Configuration
-Factory 1.0.2, Apache Sling Launchpad Installer 1.0.4, Apache Sling File
-Installer 1.0.2 (August 16th, 2011)
-<em> New Release: Apache Sling Scripting JSP Support 2.0.18 (August 15th,
-2011)
-</em> Released new Apache Sling Parent POM 11 (August 8, 2011)
-<em> New Release: Apache Sling Internationalization 2.1.2 (July 15, 2011)
-</em> New Releases: Apache Sling Event 3.1.0, Apache Sling OSGi Installer
-3.2.0, Apache Sling JCR Installer 3.1.0, Apache Sling Installer
-Configuration Factory 1.0.0, Apache Sling Launchpad Installer 1.0.2 (July
-13th, 2011)
-<em> New Release: Apache Sling Engine 2.2.4 (June 22nd, 2011)
-</em> New Releases: Apache Sling Launchpad Standalone Archetype 1.0.0,
-Launchpad Webapp Archetype 1.0.0 (May 13th, 2011)
-<em> New Releases: Apache Sling Scripting JSP Support 2.0.16, JSP Taglib 2.1.2
-(May 3rd, 2011)
-</em> New releases: Apache Sling Test Tools 1.0.2, JUnit Core 1.0.6, JUnit
-Remote Tests Runners 1.0.6, JUnit Scriptable Tests Provider 1.0.6, Sample
-Integration Tests 1.0.6, Sample Server-Side Tests 1.0.6, Failing
-Server-Side Tests 1.0.6 (April 26th, 2011)
-<em> New releases: Apache Sling I18N 2.1.0 (April 12, 2011)
-</em> New releases: <a href="http://markmail.org/thread/hv5vd5774ofwqu6j">Apache Sling 6</a>
-, Apache Sling Launchpad Content 2.0.6 (March 28, 2011)
-<em> New releases: Apache Sling Launchpad Integration Tests 1.0.0, Apache
-Sling Launchpad Testing Services 2.0.8, Apache Sling Launchpad Testing
-Services WAR 2.0.8 (March 04, 2011)
-</em> New releases: Apache Sling Javascript 2.0.12 (February 26, 2011)
-<em> New releases: Apache Sling Explorer 1.0.2, Apache Sling JCR Resource
-2.0.10, Apache Sling Engine 2.2.2, Apache Sling Installer IT Testing 3.1.2
-(February 24, 2011)
-</em> New releases: Apache Sling Launchpad API 1.0.0, Launchpad Installer 1.0.0
-Launchpad Base 2.3.0, Maven Launchpad Plugin 2.0.10, Apache Sling Commons
-Testing 2.0.8 (February 20, 2011)
-<em> New release: Apache Sling Servlets Get 2.1.2 (February 18, 2011)
-{excerpt}
-</em> Carl Hall added as a committer (February 18, 2011)
-<em> New releases: Apache Sling Installer Core 3.1.2, Apache Sling JCR
-Installer 3.0.4, and Apache Sling Event 3.0.2 (February 4, 2011)
-</em> New release: Apache Sling Scripting Core 2.0.16 (January 29, 2011)
-<em> New releases: Apache Sling JCR Resource 2.0.8, Apache Sling Engine 2.2.0,
-Apache Sling Bundle Resource Provider 2.0.6, Apache Sling File Resource
-Provider 1.0.2, Apache Sling Auth Core 1.0.6, Apache Sling Auth Selector
-1.0.4 (January 28, 2011)
-</em> New releases: Apache Sling Commons Compiler 2.0.2, Apache Sling JCR
-Compiler 2.0.2, Apache Sling Commons Log 2.1.2, Apache Sling Event 3.0.0,
-Apache Sling Scripting JSP 2.0.14, Apache Sling Installer Core 3.1.0,
-Apache Sling JCR Installer 3.0.2 (January 21, 2011)
-<em> New release: Apache Sling Maven Launchpad Plugin 2.0.8 (December 20,
-2010)
-</em> New releases: Apache Sling Commons Compiler 2.0.0, Apache Sling i18n
-2.0.4, Apache Sling Commons Json 2.0.6, Apache Sling Commons Log 2.1.0,
-Apache Sling Scripting Java 2.0.0, Apache Sling Scripting JST 2.0.4, Apache
-Sling Scripting API 2.1.2, Apache Sling Scripting JSP 2.0.12, Apache Sling
-Scripting Javascript 2.0.10, Apache Sling JCR Compiler 2.0.0, Apache Sling
-Auth Core 1.0.4, Apache Sling Auth Selector 1.0.2, Apache Sling Auth Form
-1.0.2, Apache Sling Auth OpenId 1.0.2, Apache Sling JCR ContentLoader 2.1.2
-(December 20, 2010)
-<em> New releases: Apache Sling API 2.20, Apache Sling Adapter 2.0.8, Apache
-Sling Commons ClassLoader 1.2.2, Apache Sling JCR ClassLoader 3.1.4, Apache
-Sling Parent POM 10 (December 13, 2010)
-</em> New release: Apache Sling JCR Web Console Plugin 1.0.0 (November 16,
-2010)
-<em> New releases:  Apache Sling JCR Access Manager 2.1.0, JCR User Manager
-2.1.0, JCR WebDAV support 2.1.0, and JCR DavEX support 1.0.0 (November 8,
-2010)
-</em> New release: Apache Sling Explorer 1.0.0 (November 1, 2010)
-<em> New release: Apache Sling Scripting Core 2.0.14 (October 25, 2010)
-</em> New releases: Apache Sling Commons Threads 3.1.0, Apache Sling Event
-2.4.2, Apache Sling I18N 2.0.2, Apache Sling Rewriter 1.0.0, and Apache
-Sling Settings 1.0.2 (October 15, 2010)
-<em> New releases: Apache Sling Installer Core 3.0.0, Apache Sling Installer
-File Provider 1.0.0, and Apache Sling Installer JCR Provider 3.0.0
-(September 24, 2010)
-</em> New release: Apache Sling Commons Testing 2.0.6 (September 20, 2010)
-<em> New releases: Apache Sling JCR API 2.1.0, Apache Sling JCR Base 2.1.0,
-Apache Sling JCR Content Loader 2.1.0, Apache Sling Jackrabbit Server 2.1.0
-(September 10, 2010)
-</em> New releases: Apache Sling Commons Threads 3.0.2, Apache Sling Event
-2.4.0 (September 06, 2010)
-<em> New releases: Apache Sling Commons ClassLoader 1.2.0, Apache Sling JCR
-ClassLoader 3.1.2 (August 30, 2010)
-</em> New release: Apache Sling Web Console Branding 1.0.0, Apache Sling Web
-Console Security Provider 1.0.0 (August 25, 2010)
-<em> New release: Apache Sling API 2.1.0 (August 21, 2010)
-</em> New release: Apache Sling GWT Integration 3.0.0 (July 30, 2010)
-<em> New releases: Apache Sling Commons OSGi 2.0.6, Launchpad Base 2.2.0 and
-Maven Launchpad Plugin 2.0.6 (April 27, 2010)
-</em> New releases: Apache Sling Event 2.3.0, Apache Sling Scripting Core
-2.1.0, Apache Commons MIME 2.1.4, and Apache Sling FileResource Provider
-1.0.0 (March 1, 2010)
-<em> Eric Norman added as a committer (February 17, 2010)
-</em> New release: Apache Sling Sample Path Based Resource Type Provider 2.0.4
-(February 22, 2010)
-<em> New releases: Apache Sling Event 2.2.0, Apache Sling Scripting API 2.1.0,
-and Apache Sling Thread Dumper 0.2.0 (Feburary 19, 2010)
-</em> New releases: Apache Sling JCR WebDav 2.0.8, Apache Sling JCR
-ContentLoader 2.0.6, Apache Sling JCR UserManager 2.0.4, Apache Sling JCR
-Server 2.0.6, Apache Sling JCR AccessManager 2.0.4, Apache Sling JCR Base
-2.0.6 (February 17, 2010)
-<em> New releases: Apache Sling Commons ClassLoader 1.1.4, and Apache Sling
-JCR ClassLoader 3.1.0 (February 8, 2010)
-</em> New release: Apache Sling JCR API 2.0.6 (January 29, 2010)
-<em> New releases: Apache Sling Commons ClassLoader 1.1.2, Apache Sling
-Commons Scheduler 2.2.0, Apache Sling Commons Threads 3.0.0, Apache Sling
-Event 2.1.0, and Apache Sling Servlets Get 2.0.8 (December 21, 2009)
-</em> Apache Sling MIME type mapping support, Version 2.1.2, is released
-(December 15, 2009)
-<em> Justin Edelson added as a committer (December 7, 2009)
-</em> New releases: Apache Sling Commons HTML 1.0.0, Apache Sling Commons
-Compiler 1.0.0, Apache Sling JCR Compiler 1.0.0, Apache Sling JCR Prefs
-1.0.0, and Apache Sling Scripting Java 1.0.0 (December 2, 2009)
-<em> New releases: Apache Sling Parent POM 8, Apache Sling Launchpad Base
-2.1.0, Apache Sling Commons ClassLoader 1.1.0, Apache Sling JCR ClassLoader
-3.0.0, Apache Sling Scripting Core 2.0.8, Apache Sling Scripting JSP 2.0.8,
-Apache Sling Scripting JSP Taglib 2.0.6, and Apache Sling Scripting
-JavaScript 2.0.6 (November 28, 2009)
-</em> New releases: Apache Sling Engine 2.0.6, Apache Sling Adapter 2.0.4,
-Apache Sling JCR Resource 2.0.6, Apache Sling Commons ClassLoader 1.0.0,
-Apache Sling Event 2.0.6, Apache Sling JCR ClassLoader 2.0.6, Apache Sling
-Scripting Core 2.0.6, Apache Sling Servlets Resolver 2.0.8 (October 13,
-2009)
-<em> New releases: Apache Sling API 2.0.8, Apache Sling Commons HTML 0.9.0,
-Apache Sling Commons ClassLoader 0.9.0, Apache Sling Commons Scheduler
-2.1.0, and Apache Sling Servlets Get 2.0.6 (October 02, 2009)
-</em> New releases: Apache Sling API 2.0.6 and Apache Sling JCR API 2.0.4
-(August 17, 2009)
-<em> Apache Sling OSGi LogService Implementation, Version 2.0.6, is released
-(August 5, 2009)
-</em> Ian Boston added as a member of the PMC (July 25, 2009)
-<em> Ian Boston added as a committer (July 9, 2009)
-</em> Sling site at http://sling.apache.org live (June 29, 2009)
-<em> Mailing lists moved to dev(a)sling.apache.org and
-commits(a)sling.apache.org (June 29, 2009)
-</em> SVN moved to http://svn.apache.org/repos/asf/sling (June 18, 2009)
-* Apache Sling has graduated into a top level project! (June 17, 2009)</p>
+      <h1 id="news">News</h1>
+<ul>
+<li>New Releases: Apache Sling Commons Testing 2.0.10, Apache Sling Commons Scheduler 2.3.4, Apache Sling Commons Log 3.0.0, Apache Sling Commons Log Service 1.0.0, Apache Sling Adapter 2.0.12, Apache Sling Installer Core 3.3.4, Apache Sling Launchpad API 1.1.0, Apache Sling Launchpad Installer 1.1.0, and Apache Sling Maven JSPC Plugin 2.0.6 (February 7th, 2012)</li>
+<li>New Releases: Apache Sling API 2.2.4, Apache Sling Adapter 2.0.10, Apache Sling Scripting JSP Taglib 2.1.6, Apache Sling Rewriter 1.0.2, Apache Sling JCR ContentLoader 2.1.4, Apache Sling JCR Base 2.1.2, Apache Sling Servlet Resolver 2.1.2, and Apache Sling Security 1.0.0 (January 30th, 2012)</li>
+<li>New Releases: Apache Sling Scripting API 2.1.4, Apache Sling Scripting Core 2.0.20, Apache Sling i18n 2.2.0, Apache Sling Installer Core 3.3.2, Apache Sling Scripting Java 2.0.2, and Apache Sling Scripting JSP 2.0.20 (January 16th, 2012)</li>
+<li>New Releases: Apache Adapter Annotations 1.0.0 and Apache Sling Maven Sling Plugin 2.1.0 (January 14th, 2012)</li>
+<li>New Releases: Apache Sling Settings 1.1.0, Apache Sling Commons ClassLoader 1.2.4, Apache Sling Commons Scheduler 2.3.2, Apache Sling Event 3.1.2, Apache Sling Installer Core 3.3.0, Apache Sling Installer Configuration Factory 1.0.4, Apache Sling Launchpad Installer 1.0.6, Apache Sling JCR Installer 3.1.2, and Apache Sling Thread Dumper 0.2.2 (January 6th, 2012)</li>
+<li>New Release: Apache Sling Jackrabbit User Manager 2.2.0 (November 15th, 2011)</li>
+<li>New Release: Apache Sling Maven Sling Plugin 2.0.6 (October 21st, 2011)</li>
+<li>New Release: Apache Sling Maven Launchpad Plugin 2.1.0 (September 9th, 20111)</li>
+<li>New Releases: Apache Sling Resource Bundle 1.0.0 and Parent POM 12</li>
+<li>New Releases: Apache Sling API 2.2.2, Apache Sling Commons Scheduler 2.3.0, Apache Sling Commons OSGi 2.1.0, Apache Sling Scripting Core 2.0.18, Apache Sling Installer Core 3.2.2, Apache Sling Installer Configuration Factory 1.0.2, Apache Sling Launchpad Installer 1.0.4, Apache Sling File Installer 1.0.2 (August 16th, 2011)</li>
+<li>New Release: Apache Sling Scripting JSP Support 2.0.18 (August 15th, 2011)</li>
+<li>Released new Apache Sling Parent POM 11 (August 8, 2011)</li>
+<li>New Release: Apache Sling Internationalization 2.1.2 (July 15, 2011)</li>
+<li>New Releases: Apache Sling Event 3.1.0, Apache Sling OSGi Installer 3.2.0, Apache Sling JCR Installer 3.1.0, Apache Sling Installer Configuration Factory 1.0.0, Apache Sling Launchpad Installer 1.0.2 (July 13th, 2011)</li>
+<li>New Release: Apache Sling Engine 2.2.4 (June 22nd, 2011)</li>
+<li>New Releases: Apache Sling Launchpad Standalone Archetype 1.0.0, Launchpad Webapp Archetype 1.0.0 (May 13th, 2011)</li>
+<li>New Releases: Apache Sling Scripting JSP Support 2.0.16, JSP Taglib 2.1.2 (May 3rd, 2011)</li>
+<li>New releases: Apache Sling Test Tools 1.0.2, JUnit Core 1.0.6, JUnit Remote Tests Runners 1.0.6, JUnit Scriptable Tests Provider 1.0.6, Sample Integration Tests 1.0.6, Sample Server-Side Tests 1.0.6, Failing Server-Side Tests 1.0.6 (April 26th, 2011)</li>
+<li>New releases: Apache Sling I18N 2.1.0 (April 12, 2011)</li>
+<li>New releases: <a href="">Apache Sling 6</a>, Apache Sling Launchpad Content 2.0.6 (March 28, 2011)</li>
+<li>New releases: Apache Sling Launchpad Integration Tests 1.0.0, Apache Sling Launchpad Testing Services 2.0.8, Apache Sling Launchpad Testing Services WAR 2.0.8 (March 04, 2011)</li>
+<li>New releases: Apache Sling Javascript 2.0.12 (February 26, 2011)</li>
+<li>New releases: Apache Sling Explorer 1.0.2, Apache Sling JCR Resource 2.0.10, Apache Sling Engine 2.2.2, Apache Sling Installer IT Testing 3.1.2 (February 24, 2011)</li>
+<li>New releases: Apache Sling Launchpad API 1.0.0, Launchpad Installer 1.0.0 Launchpad Base 2.3.0, Maven Launchpad Plugin 2.0.10, Apache Sling Commons Testing 2.0.8 (February 20, 2011)</li>
+<li>New release: Apache Sling Servlets Get 2.1.2 (February 18, 2011)</li>
+<li>Carl Hall added as a committer (February 18, 2011)</li>
+<li>New releases: Apache Sling Installer Core 3.1.2, Apache Sling JCR Installer 3.0.4, and Apache Sling Event 3.0.2 (February 4, 2011)</li>
+<li>New release: Apache Sling Scripting Core 2.0.16 (January 29, 2011)</li>
+<li>New releases: Apache Sling JCR Resource 2.0.8, Apache Sling Engine 2.2.0, Apache Sling Bundle Resource Provider 2.0.6, Apache Sling File Resource Provider 1.0.2, Apache Sling Auth Core 1.0.6, Apache Sling Auth Selector 1.0.4 (January 28, 2011)</li>
+<li>New releases: Apache Sling Commons Compiler 2.0.2, Apache Sling JCR Compiler 2.0.2, Apache Sling Commons Log 2.1.2, Apache Sling Event 3.0.0, Apache Sling Scripting JSP 2.0.14, Apache Sling Installer Core 3.1.0, Apache Sling JCR Installer 3.0.2 (January 21, 2011)</li>
+<li>New release: Apache Sling Maven Launchpad Plugin 2.0.8 (December 20, 2010)</li>
+<li>New releases: Apache Sling Commons Compiler 2.0.0, Apache Sling i18n 2.0.4, Apache Sling Commons Json 2.0.6, Apache Sling Commons Log 2.1.0, Apache Sling Scripting Java 2.0.0, Apache Sling Scripting JST 2.0.4, Apache Sling Scripting API 2.1.2, Apache Sling Scripting JSP 2.0.12, Apache Sling Scripting Javascript 2.0.10, Apache Sling JCR Compiler 2.0.0, Apache Sling Auth Core 1.0.4, Apache Sling Auth Selector 1.0.2, Apache Sling Auth Form 1.0.2, Apache Sling Auth OpenId 1.0.2, Apache Sling JCR ContentLoader 2.1.2 (December 20, 2010)</li>
+<li>New releases: Apache Sling API 2.20, Apache Sling Adapter 2.0.8, Apache Sling Commons ClassLoader 1.2.2, Apache Sling JCR ClassLoader 3.1.4, Apache Sling Parent POM 10 (December 13, 2010)</li>
+<li>New release: Apache Sling JCR Web Console Plugin 1.0.0 (November 16, 2010)</li>
+<li>New releases:  Apache Sling JCR Access Manager 2.1.0, JCR User Manager 2.1.0, JCR WebDAV support 2.1.0, and JCR DavEX support 1.0.0 (November 8, 2010)</li>
+<li>New release: Apache Sling Explorer 1.0.0 (November 1, 2010)</li>
+<li>New release: Apache Sling Scripting Core 2.0.14 (October 25, 2010)</li>
+<li>New releases: Apache Sling Commons Threads 3.1.0, Apache Sling Event 2.4.2, Apache Sling I18N 2.0.2, Apache Sling Rewriter 1.0.0, and Apache Sling Settings 1.0.2 (October 15, 2010)</li>
+<li>New releases: Apache Sling Installer Core 3.0.0, Apache Sling Installer File Provider 1.0.0, and Apache Sling Installer JCR Provider 3.0.0 (September 24, 2010)</li>
+<li>New release: Apache Sling Commons Testing 2.0.6 (September 20, 2010)</li>
+<li>New releases: Apache Sling JCR API 2.1.0, Apache Sling JCR Base 2.1.0, Apache Sling JCR Content Loader 2.1.0, Apache Sling Jackrabbit Server 2.1.0 (September 10, 2010)</li>
+<li>New releases: Apache Sling Commons Threads 3.0.2, Apache Sling Event 2.4.0 (September 06, 2010)</li>
+<li>New releases: Apache Sling Commons ClassLoader 1.2.0, Apache Sling JCR ClassLoader 3.1.2 (August 30, 2010)</li>
+<li>New release: Apache Sling Web Console Branding 1.0.0, Apache Sling Web Console Security Provider 1.0.0 (August 25, 2010)</li>
+<li>New release: Apache Sling API 2.1.0 (August 21, 2010)</li>
+<li>New release: Apache Sling GWT Integration 3.0.0 (July 30, 2010)</li>
+<li>New releases: Apache Sling Commons OSGi 2.0.6, Launchpad Base 2.2.0 and Maven Launchpad Plugin 2.0.6 (April 27, 2010)</li>
+<li>New releases: Apache Sling Event 2.3.0, Apache Sling Scripting Core 2.1.0, Apache Commons MIME 2.1.4, and Apache Sling FileResource Provider 1.0.0 (March 1, 2010)</li>
+<li>Eric Norman added as a committer (February 17, 2010)</li>
+<li>New release: Apache Sling Sample Path Based Resource Type Provider 2.0.4 (February 22, 2010)</li>
+<li>New releases: Apache Sling Event 2.2.0, Apache Sling Scripting API 2.1.0, and Apache Sling Thread Dumper 0.2.0 (Feburary 19, 2010)</li>
+<li>New releases: Apache Sling JCR WebDav 2.0.8, Apache Sling JCR ContentLoader 2.0.6, Apache Sling JCR UserManager 2.0.4, Apache Sling JCR Server 2.0.6, Apache Sling JCR AccessManager 2.0.4, Apache Sling JCR Base 2.0.6 (February 17, 2010)</li>
+<li>New releases: Apache Sling Commons ClassLoader 1.1.4, and Apache Sling JCR ClassLoader 3.1.0 (February 8, 2010)</li>
+<li>New release: Apache Sling JCR API 2.0.6 (January 29, 2010)</li>
+<li>New releases: Apache Sling Commons ClassLoader 1.1.2, Apache Sling Commons Scheduler 2.2.0, Apache Sling Commons Threads 3.0.0, Apache Sling Event 2.1.0, and Apache Sling Servlets Get 2.0.8 (December 21, 2009)</li>
+<li>Apache Sling MIME type mapping support, Version 2.1.2, is released (December 15, 2009)</li>
+<li>Justin Edelson added as a committer (December 7, 2009)</li>
+<li>New releases: Apache Sling Commons HTML 1.0.0, Apache Sling Commons Compiler 1.0.0, Apache Sling JCR Compiler 1.0.0, Apache Sling JCR Prefs 1.0.0, and Apache Sling Scripting Java 1.0.0 (December 2, 2009)</li>
+<li>New releases: Apache Sling Parent POM 8, Apache Sling Launchpad Base 2.1.0, Apache Sling Commons ClassLoader 1.1.0, Apache Sling JCR ClassLoader 3.0.0, Apache Sling Scripting Core 2.0.8, Apache Sling Scripting JSP 2.0.8, Apache Sling Scripting JSP Taglib 2.0.6, and Apache Sling Scripting JavaScript 2.0.6 (November 28, 2009)</li>
+<li>New releases: Apache Sling Engine 2.0.6, Apache Sling Adapter 2.0.4, Apache Sling JCR Resource 2.0.6, Apache Sling Commons ClassLoader 1.0.0, Apache Sling Event 2.0.6, Apache Sling JCR ClassLoader 2.0.6, Apache Sling Scripting Core 2.0.6, Apache Sling Servlets Resolver 2.0.8 (October 13, 2009)</li>
+<li>New releases: Apache Sling API 2.0.8, Apache Sling Commons HTML 0.9.0, Apache Sling Commons ClassLoader 0.9.0, Apache Sling Commons Scheduler 2.1.0, and Apache Sling Servlets Get 2.0.6 (October 02, 2009)</li>
+<li>New releases: Apache Sling API 2.0.6 and Apache Sling JCR API 2.0.4 (August 17, 2009)</li>
+<li>Apache Sling OSGi LogService Implementation, Version 2.0.6, is released (August 5, 2009)</li>
+<li>Ian Boston added as a member of the PMC (July 25, 2009)</li>
+<li>Ian Boston added as a committer (July 9, 2009)</li>
+<li>Sling site at http://sling.apache.org live (June 29, 2009)</li>
+<li>Mailing lists moved to dev(a)sling.apache.org and commits(a)sling.apache.org (June 29, 2009)</li>
+<li>SVN moved to http://svn.apache.org/repos/asf/sling (June 18, 2009)</li>
+<li>Apache Sling has graduated into a top level project! (June 17, 2009)</li>
+</ul>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1328899 by fmeschbe on Sun, 22 Apr 2012 16:52:13 +0000
+        Rev. 1341347 by fmeschbe on Tue, 22 May 2012 08:25:18 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project

Modified: websites/staging/sling/trunk/content/old-stuff.html
==============================================================================
--- websites/staging/sling/trunk/content/old-stuff.html (original)
+++ websites/staging/sling/trunk/content/old-stuff.html Tue May 22 08:25:32 2012
@@ -85,7 +85,7 @@
       <p>Should either be deleted or reviewed and updated to match the current code:</p>
 <p>{children:all=true}</p>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1328899 by fmeschbe on Sun, 22 Apr 2012 16:52:13 +0000
+        Rev. 1341347 by fmeschbe on Tue, 22 May 2012 08:25:18 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project

Modified: websites/staging/sling/trunk/content/openid-authenticationhandler.html
==============================================================================
--- websites/staging/sling/trunk/content/openid-authenticationhandler.html (original)
+++ websites/staging/sling/trunk/content/openid-authenticationhandler.html Tue May 22 08:25:32 2012
@@ -82,255 +82,193 @@
         <a href="/">Home</a>
       </div>
       <h1>OpenID AuthenticationHandler</h1>
-      <p><a name="OpenIDAuthenticationHandler-OpenIDAuthenticationHandler"></a></p>
-<h1 id="openid-authenticationhandler">OpenID AuthenticationHandler</h1>
-<p>{toc:type=flat|separator=pipe|minLevel=2|maxLevel=3}</p>
-<p>The OpenID Authentication Handler supports authentication of request users
-using the <a href="http://www.openid.net">OpenID</a>
- authentication protocol. If the user has successfully authenticated with
-his OpenID provider a signed OpenID identity is further used to identify
-the user.</p>
-<p>Since generally an OpenID identity is an URL and URLs may not be used as
-JCR user names, an association mechanism is used by the OpenID
-authentication handler to associate an OpenID identity with an existing JCR
-user: The OpenID identity URL is set as the value of a JCR user property.
-When a user authenticates with his OpenID identity the matching user
-searched for by looking for a match in this property.</p>
-<p><em>NOTE:</em> This association currently only works with Jackrabbit (or
-Jackrabbit based repositories) because user management is not part of the
-JCR 2 specification and the OpenID authentication handler uses the
-Jackrabbit <em>UserManager</em> to find users by a user property value.</p>
-<p>The OpenID Authentication Handler is maintained in the <a href="http://svn.apache.org/repos/asf/sling/trunk/bundles/auth/openid/">Sling SVN</a></p>
-<p><a name="OpenIDAuthenticationHandler-CredentialsExtraction"></a></p>
+      <h1 id="openid-authenticationhandler">OpenID AuthenticationHandler</h1>
+<div class="toc">
+<ul>
+<li><a href="#openid-authenticationhandler">OpenID AuthenticationHandler</a><ul>
+<li><a href="#credentials-extraction">Credentials Extraction</a><ul>
+<li><a href="#phase-1-form-submission">Phase 1: Form Submission</a></li>
+<li><a href="#configuration">Configuration</a></li>
+<li><a href="#authenticationhandler-implementation">AuthenticationHandler implementation</a><ul>
+<li><a href="#extractcredentials">extractCredentials</a></li>
+<li><a href="#requestcredentials">requestCredentials</a></li>
+<li><a href="#dropcredentials">dropCredentials</a></li>
+</ul>
+</li>
+<li><a href="#authenticationfeedbackhandler-implementation">AuthenticationFeedbackHandler implementation</a><ul>
+<li><a href="#authenticationfailed">authenticationFailed</a></li>
+<li><a href="#authenticationsucceeded">authenticationSucceeded</a></li>
+</ul>
+</li>
+<li><a href="#integration-with-jackrabbit">Integration with Jackrabbit</a></li>
+<li><a href="#security-considerations">Security Considerations</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<p>The OpenID Authentication Handler supports authentication of request users using the <a href="">OpenID</a> authentication protocol. If the user has successfully authenticated with his OpenID provider a signed OpenID identity is further used to identify the user.</p>
+<p>Since generally an OpenID identity is an URL and URLs may not be used as JCR user names, an association mechanism is used by the OpenID authentication handler to associate an OpenID identity with an existing JCR user: The OpenID identity URL is set as the value of a JCR user property. When a user authenticates with his OpenID identity the matching user searched for by looking for a match in this property.</p>
+<p><em>NOTE:</em> This association currently only works with Jackrabbit (or Jackrabbit based repositories) because user management is not part of the JCR 2 specification and the OpenID authentication handler uses the Jackrabbit <code>UserManager</code> to find users by a user property value.</p>
+<p>The OpenID Authentication Handler is maintained in the <a href="">Sling SVN</a></p>
 <h3 id="credentials-extraction">Credentials Extraction</h3>
-<p>Theoretically each request with the <em>openid_identifier</em> request parameter
-set may initiate an OpenID authentication process which involves resolving
-the OpenID provider for the identifier and subsequently authentication with
-the provider authorizing the Sling instance to use the OpenID identity.</p>
-<p>This initiation, though, is not possible if the request already contains a
-valid and validated OpenID identifier either set as a request attribute or
-set in the HTTP Session or the OpenID cookie. In these situations, the
-current association of a client with an OpenID identity must first be
-removed by logging out, e.g. by requesting <em>/system/sling/logout.html</em>
-which causes the current OpenID user data to be removed by either removing
-it from the HTTP Session or by clearing the OpenID cookie.</p>
-<p><a name="OpenIDAuthenticationHandler-Phase1:FormSubmission"></a></p>
+<p>Theoretically each request with the <code>openid_identifier</code> request parameter set may initiate an OpenID authentication process which involves resolving the OpenID provider for the identifier and subsequently authentication with the provider authorizing the Sling instance to use the OpenID identity.</p>
+<p>This initiation, though, is not possible if the request already contains a valid and validated OpenID identifier either set as a request attribute or set in the HTTP Session or the OpenID cookie. In these situations, the current association of a client with an OpenID identity must first be removed by logging out, e.g. by requesting <code>/system/sling/logout.html</code> which causes the current OpenID user data to be removed by either removing it from the HTTP Session or by clearing the OpenID cookie.</p>
 <h3 id="phase-1-form-submission">Phase 1: Form Submission</h3>
-<p>Requesting an OpenID identifier is initiated by the Sling Authenticator
-deciding, that authentication is actually required to process a request and
-the OpenID Authentication Handler being selected to request credentials
-with.</p>
-<p>In this case the OpenID authenticator causes a form to be rendered by
-redirecting the client to the URL indicated by the <em>form.login.form</em>
-configuration parameter. This redirection request may accompanied by the
-following parameters:</p>
+<p>Requesting an OpenID identifier is initiated by the Sling Authenticator deciding, that authentication is actually required to process a request and the OpenID Authentication Handler being selected to request credentials with.</p>
+<p>In this case the OpenID authenticator causes a form to be rendered by redirecting the client to the URL indicated by the <code>form.login.form</code> configuration parameter. This redirection request may accompanied by the following parameters:</p>
 <table>
-<tr><th> Request Parameter </th><th> Description </th></tr>
-<tr><td> *resource* </td><td> The location to which the user initially requested access
-and that caused the *requestCredentials* method to be called. This may
-not be set (or be set to an empty string). </td></tr>
-<tr><td> *j_reason* </td><td> The reason why an earlier attempt at authentication with
-the OpenID authentication handler failed. This request parameter is only
-set if the same named request attribute has been set by the
-*extractCredentials* or the *authenticationFailed* method. The value of
-the parameter is the name of one of the *OpenIDFailure* constants. </td></tr>
-<tr><td> *j_openid_identity* </td><td> The OpenID identity which could not successfully
-be associated with an existing JCR user. This request parameter is only set
-if the *authenticationFailed* method has been called due to inability to
-associate an existing and validated OpenID identity with an existing JCR
-user. </td></tr>
+<thead>
+<tr>
+<th>Request Parameter</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>resource</code></td>
+<td>The location to which the user initially requested access and that caused the <code>requestCredentials</code> method to be called. This may not be set (or be set to an empty string).</td>
+</tr>
+<tr>
+<td><code>j_reason</code></td>
+<td>The reason why an earlier attempt at authentication with the OpenID authentication handler failed. This request parameter is only set if the same named request attribute has been set by the <code>extractCredentials</code> or the <code>authenticationFailed</code> method. The value of the parameter is the name of one of the <code>OpenIDFailure</code> constants.</td>
+</tr>
+<tr>
+<td><code>j*openid*identity</code></td>
+<td>The OpenID identity which could not successfully be associated with an existing JCR user. This request parameter is only set if the <code>authenticationFailed</code> method has been called due to inability to associate an existing and validated OpenID identity with an existing JCR user.</td>
+</tr>
+</tbody>
 </table>
-
-<p>The OpenID Authentication handlers supports the following request
-parameters submitted by the HTML form:</p>
+<p>The OpenID Authentication handlers supports the following request parameters submitted by the HTML form:</p>
 <ul>
-<li><em>openid_identifier</em> -- OpenID Claimed Identifier. This may be any
-actual OpenID identity URL or the URL of OpenID Provider such as
-https://www.google.com/accounts/o8/id, https://me.yahoo.com, or
-https://www.myopenid.com.</li>
-<li><em>sling:authRequestLogin</em> -- This request parameter is recommended to be
-set with a hidden field to the value <em>OpenID</em> to ensure the request is
-handled by the OpenID Authentication Handler.</li>
-<li><em>resource</em> -- The <em>resource</em> request parameter should be sent back to
-ensure the user is finally redirected to requested target resource after
-successful authentication. If this request parameter is not set, or is set
-to an empty string, it is assumed to be the request context root path.</li>
+<li><code>openid_identifier</code> -- OpenID Claimed Identifier. This may be any actual OpenID identity URL or the URL of OpenID Provider such as https://www.google.com/accounts/o8/id, https://me.yahoo.com, or https://www.myopenid.com.</li>
+<li><code>sling:authRequestLogin</code> -- This request parameter is recommended to be set with a hidden field to the value <em>OpenID</em> to ensure the request is handled by the OpenID Authentication Handler.</li>
+<li><code>resource</code> -- The <code>resource</code> request parameter should be sent back to ensure the user is finally redirected to requested target resource after successful authentication. If this request parameter is not set, or is set to an empty string, it is assumed to be the request context root path.</li>
 </ul>
-<p>The OpenID Authentication Handler provides a default login form registered
-at <em>/system/sling/openid/login</em>.</p>
-<p><a name="OpenIDAuthenticationHandler-Configuration"></a></p>
+<p>The OpenID Authentication Handler provides a default login form registered at <code>/system/sling/openid/login</code>.</p>
 <h3 id="configuration">Configuration</h3>
-<p>The OpenID AuthenticationHandler is configured with configuration provided
-by the OSGi Configuration Admin Service using the
-<em>org.apache.sling.openidauth.OpenIdAuthenticationHandler</em> service PID.</p>
+<p>The OpenID AuthenticationHandler is configured with configuration provided by the OSGi Configuration Admin Service using the <code>org.apache.sling.openidauth.OpenIdAuthenticationHandler</code> service PID.</p>
 <table>
-<tr><th> Parameter </th><th> Default </th><th> Description </th></tr>
-<tr><td> *path* </td><td> -- </td><td> Repository path for which this authentication handler
-should be used by Sling. If this is empty, the authentication handler will
-be disabled. </td></tr>
-<tr><td> *openid.login.form* </td><td> */system/sling/openid/login* </td><td> This should
-provide a way to capture the user's OpenID identifier.  This is not the
-OpenID Provider's login page, however, it does not have to be a local URL.
-If it is a local Sling URL, it must be accessible by the anonymous user.
-The user is HTTP Redirect'ed to this URL.  This page should POST back the
-user's OpenID identifier (as named by the "OpenID identifier form field"
-property) to the originally requested URL set in the "resource" request
-parameter. </td></tr>
-<tr><td> *openid.login.identifier* </td><td> *openid_identifier* </td><td> The name of the
-form parameter that provides the user's OpenID identifier. By convention
-this is *openid_identifier*. Only change this if you have a very good
-reason to do so. </td></tr>
-<tr><td> *openid.external.url.prefix* </td><td> -- </td><td> The prefix of URLs generated for
-the *ReturnTo* and *TrustRoot* properties of the OpenID request to the
-OpenID provider. Thus this URL prefix should bring back the authenticated
-user to this Sling instance. Configuring this property is usually necessary
-when running Sling behind a proxy (like Apache) since proxy mapping is not
-performed on the OpenID ReturnTo and TrustRoot URLs as they are sent to the
-OpenID Provider as form parameters.  If this property is empty, the URLs
-are generated using the hostname found in the original request.</td></tr>
-<tr><td> *openid.use.cookie* </td><td> *true* </td><td>  Whether to use a regular Cookie or an
-HTTP Session to cache the OpenID authentication details. By default a
-regular cookie is used to prevent use of HTTP Sessions. </td></tr>
-<tr><td> *openid.cookie.domain* </td><td> -- </td><td> Domain of cookie used to persist
-authentication. This defaults to the host name of the Sling server but may
-be set to a different value to share the cookie amongst a server farm or if
-the server is running behind a proxy. Only used if 'Use Cookie' is checked.
-</td></tr>
-<tr><td> *openid.cookie.name* </td><td> *sling.openid* </td><td> Name of cookie used to
-persist authentication. Only used if 'Use Cookie' is checked. </td></tr>
-<tr><td> *openid.cookie.secret.key* </td><td> *secret* </td><td> Secret key used to create a
-signature of the cookie value to prevent tampering. Only used if 'Use
-Cookie' is true. </td></tr>
-<tr><td> *openid.user.attr* </td><td> *openid.user* </td><td> Name of the JCR
-SimpleCredentials attribute to to set with the OpenID User data. This
-attribute is used by the OpenID LoginModule to validate the OpenID user
-authentication data. </td></tr>
-<tr><td> *openid.property.identity* </td><td> *openid.identity* </td><td>   The name of the JCR
-User attribute listing one or more OpenID Identity URLs with which a user
-is associated. The property may be a multi- or single-valued. To resolve a
-JCR user ID from an OpenID identity a user is searched who lists the
-identity in this property. </td></tr>
+<thead>
+<tr>
+<th>Parameter</th>
+<th>Default</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>path</code></td>
+<td>--</td>
+<td>Repository path for which this authentication handler should be used by Sling. If this is empty, the authentication handler will be disabled.</td>
+</tr>
+<tr>
+<td><code>openid.login.form</code></td>
+<td><code>/system/sling/openid/login</code></td>
+<td>This should provide a way to capture the user's OpenID identifier.  This is not the OpenID Provider's login page, however, it does not have to be a local URL. If it is a local Sling URL, it must be accessible by the anonymous user. The user is HTTP Redirect'ed to this URL.  This page should POST back the user's OpenID identifier (as named by the "OpenID identifier form field" property) to the originally requested URL set in the "resource" request parameter.</td>
+</tr>
+<tr>
+<td><code>openid.login.identifier</code></td>
+<td><code>openid*identifier</code></td>
+<td>The name of the form parameter that provides the user's OpenID identifier. By convention this is <code>openid*identifier</code>. Only change this if you have a very good reason to do so.</td>
+</tr>
+<tr>
+<td><code>openid.external.url.prefix</code></td>
+<td>--</td>
+<td>The prefix of URLs generated for the <code>ReturnTo</code> and <code>TrustRoot</code> properties of the OpenID request to the OpenID provider. Thus this URL prefix should bring back the authenticated user to this Sling instance. Configuring this property is usually necessary when running Sling behind a proxy (like Apache) since proxy mapping is not performed on the OpenID ReturnTo and TrustRoot URLs as they are sent to the OpenID Provider as form parameters.  If this property is empty, the URLs are generated using the hostname found in the original request.</td>
+</tr>
+<tr>
+<td><code>openid.use.cookie</code></td>
+<td><code>true</code></td>
+<td>Whether to use a regular Cookie or an HTTP Session to cache the OpenID authentication details. By default a regular cookie is used to prevent use of HTTP Sessions.</td>
+</tr>
+<tr>
+<td><code>openid.cookie.domain</code></td>
+<td>--</td>
+<td>Domain of cookie used to persist authentication. This defaults to the host name of the Sling server but may be set to a different value to share the cookie amongst a server farm or if the server is running behind a proxy. Only used if 'Use Cookie' is checked.</td>
+</tr>
+<tr>
+<td><code>openid.cookie.name</code></td>
+<td><code>sling.openid</code></td>
+<td>Name of cookie used to persist authentication. Only used if 'Use Cookie' is checked.</td>
+</tr>
+<tr>
+<td><code>openid.cookie.secret.key</code></td>
+<td><code>secret</code></td>
+<td>Secret key used to create a signature of the cookie value to prevent tampering. Only used if 'Use Cookie' is true.</td>
+</tr>
+<tr>
+<td><code>openid.user.attr</code></td>
+<td><code>openid.user</code></td>
+<td>Name of the JCR SimpleCredentials attribute to to set with the OpenID User data. This attribute is used by the OpenID LoginModule to validate the OpenID user authentication data.</td>
+</tr>
+<tr>
+<td><code>openid.property.identity</code></td>
+<td><code>openid.identity</code></td>
+<td>The name of the JCR User attribute listing one or more OpenID Identity URLs with which a user is associated. The property may be a multi- or single-valued. To resolve a JCR user ID from an OpenID identity a user is searched who lists the identity in this property.</td>
+</tr>
+</tbody>
 </table>
-
-<p><a name="OpenIDAuthenticationHandler-AuthenticationHandlerimplementation"></a></p>
 <h3 id="authenticationhandler-implementation">AuthenticationHandler implementation</h3>
-<p><a name="OpenIDAuthenticationHandler-extractCredentials"></a></p>
 <h4 id="extractcredentials">extractCredentials</h4>
-<p>To extract authentication information from the request, the Sling OpenID
-Authentication handler considers the following information in order:</p>
+<p>To extract authentication information from the request, the Sling OpenID Authentication handler considers the following information in order:</p>
 <ol>
-<li>The OpenID credentials cookie or OpenID User data in the HTTP Session
-(depending on the <em>openid.use.cookie</em> configuration)</li>
-<li>Otherwise the <em>openid_identifier</em> request parameter (or a different
-request parameter depending on the <em>openid.login.identifier</em>
-configuration)</li>
+<li>The OpenID credentials cookie or OpenID User data in the HTTP Session (depending on the <code>openid.use.cookie</code> configuration)</li>
+<li>Otherwise the <code>openid_identifier</code> request parameter (or a different request parameter depending on the <code>openid.login.identifier</code> configuration)</li>
 </ol>
-<p>If the OpenID credentials already exist in the request, they are validated
-and returned if valid</p>
-<p>If the existing credentials fail to validate, authentication failure is
-assumed and the credentials are removed from the request, either by
-clearing the OpenID cookie or by removing the OpenID User data from the
-HTTP Session.</p>
-<p>If no OpenID credentials are found in the request, the request parameter is
-considered and if set is used to resolve the actual OpenID identity of the
-user. This involves redirecting the client to the OpenID provider resolved
-from the OpenID identifier supplied.</p>
-<p>If the supplied OpenID identifier fails to resolve to an OpenID provider or
-if the identifier fails to be resolved to a validated OpenID identity,
-authentication fails.</p>
-<p><a name="OpenIDAuthenticationHandler-requestCredentials"></a></p>
+<p>If the OpenID credentials already exist in the request, they are validated and returned if valid</p>
+<p>If the existing credentials fail to validate, authentication failure is assumed and the credentials are removed from the request, either by clearing the OpenID cookie or by removing the OpenID User data from the HTTP Session.</p>
+<p>If no OpenID credentials are found in the request, the request parameter is considered and if set is used to resolve the actual OpenID identity of the user. This involves redirecting the client to the OpenID provider resolved from the OpenID identifier supplied.</p>
+<p>If the supplied OpenID identifier fails to resolve to an OpenID provider or if the identifier fails to be resolved to a validated OpenID identity, authentication fails.</p>
 <h4 id="requestcredentials">requestCredentials</h4>
-<p>If the <em>sling:authRequestLogin</em> parameter is set to a value other than
-<em>OpenID</em> this method immediately returns <em>false</em>.</p>
-<p>If the parameter is not set or is set to <em>OpenID</em> this method continues
-with first invalidating any cached OpenID credentials (same as
-<em>dropCredentials</em> does) and then redirecting the client to the login form
-configured with the <em>openid.login.form</em> configuration property. The
-redirect is provided with up to three request parameters:</p>
+<p>If the <code>sling:authRequestLogin</code> parameter is set to a value other than <code>OpenID</code> this method immediately returns <code>false</code>.</p>
+<p>If the parameter is not set or is set to <code>OpenID</code> this method continues with first invalidating any cached OpenID credentials (same as <code>dropCredentials</code> does) and then redirecting the client to the login form configured with the <code>openid.login.form</code> configuration property. The redirect is provided with up to three request parameters:</p>
 <table>
-<tr><th> Request Parameter </th><th> Description </th></tr>
-<tr><td> *resource* </td><td> The location to which the user initially requested access
-and that caused the *requestCredentials* method to be called. </td></tr>
-<tr><td> *j_reason* </td><td> The reason why an earlier attempt at authentication with
-the OpenID authentication handler failed. This request parameter is only
-set if the same named request attribute has been set by the
-*extractCredentials* or the *authenticationFailed* method. The value of
-the parameter is the name of one of the *OpenIDFailure* constants. </td></tr>
-<tr><td> *j_openid_identity* </td><td> The OpenID identity which could not successfully
-be associated with an existing JCR user. This request parameter is only set
-if the *authenticationFailed* method has been called due to inability to
-associate an existing and validated OpenID identity with an existing JCR
-user. </td></tr>
+<thead>
+<tr>
+<th>Request Parameter</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>resource</code></td>
+<td>The location to which the user initially requested access and that caused the <code>requestCredentials</code> method to be called.</td>
+</tr>
+<tr>
+<td><code>j_reason</code></td>
+<td>The reason why an earlier attempt at authentication with the OpenID authentication handler failed. This request parameter is only set if the same named request attribute has been set by the <code>extractCredentials</code> or the <code>authenticationFailed</code> method. The value of the parameter is the name of one of the <code>OpenIDFailure</code> constants.</td>
+</tr>
+<tr>
+<td><code>j*openid*identity</code></td>
+<td>The OpenID identity which could not successfully be associated with an existing JCR user. This request parameter is only set if the <code>authenticationFailed</code> method has been called due to inability to associate an existing and validated OpenID identity with an existing JCR user.</td>
+</tr>
+</tbody>
 </table>
-
-<p><a name="OpenIDAuthenticationHandler-dropCredentials"></a></p>
 <h4 id="dropcredentials">dropCredentials</h4>
-<p>Invalidates the OpenID identity currently stored with the request. This
-means to either remove the OpenID cookie or to remove the OpenID
-information from the HTTP Session. This method does not write to the
-response (except setting the <em>Set-Cookie</em> header to remove the OpenID
-cookie if required) and does not commit the response.</p>
-<p><a name="OpenIDAuthenticationHandler-AuthenticationFeedbackHandlerimplementation"></a></p>
+<p>Invalidates the OpenID identity currently stored with the request. This means to either remove the OpenID cookie or to remove the OpenID information from the HTTP Session. This method does not write to the response (except setting the <code>Set-Cookie</code> header to remove the OpenID cookie if required) and does not commit the response.</p>
 <h3 id="authenticationfeedbackhandler-implementation">AuthenticationFeedbackHandler implementation</h3>
-<p><a name="OpenIDAuthenticationHandler-authenticationFailed"></a></p>
 <h4 id="authenticationfailed">authenticationFailed</h4>
-<p>This method is called, if the Credentials provided by the Authentication
-Handler could not be validated by the Jackrabbit authentication
-infrastructure. One cause may be that the integration with Jackrabbit has
-not been completed (see <em>Integration with Jackrabbit</em> below). Another, more
-probably cause, is that the validated OpenID identifier cannot be
-associated with an existing JCR user.</p>
-<p>The OpenID Authentication Handler implementation of the
-<em>authenticationFailed</em> method sets the <em>j_reason</em> request attribute to
-<em>OpenIDFailure.REPOSITORY</em> and sets the <em>j_openid_identity</em> request
-attribute to the OpenID identity of the authenticated user.</p>
-<p>A login form provider may wish to act upon this situation and provide a
-login form to the user to allow to his OpenID identity with an existing JCR
-user.</p>
-<p>In addition, the current OpenID identity is invalidated thus the cached
-OpenID information is removed from the HTTP Session or the OpenID cookie is
-cleaned. This will allow the user to present a different OpenID identifier
-to retry or it will require the OpenID identity to be revalidated with the
-OpenID provider if the identity is associated with a JCR user.</p>
-<p><a name="OpenIDAuthenticationHandler-authenticationSucceeded"></a></p>
+<p>This method is called, if the Credentials provided by the Authentication Handler could not be validated by the Jackrabbit authentication infrastructure. One cause may be that the integration with Jackrabbit has not been completed (see <em>Integration with Jackrabbit</em> below). Another, more probably cause, is that the validated OpenID identifier cannot be associated with an existing JCR user.</p>
+<p>The OpenID Authentication Handler implementation of the <code>authenticationFailed</code> method sets the <code>j*reason</code> request attribute to <code>OpenIDFailure.REPOSITORY</code> and sets the <code>j*openid_identity</code> request attribute to the OpenID identity of the authenticated user.</p>
+<p>A login form provider may wish to act upon this situation and provide a login form to the user to allow to his OpenID identity with an existing JCR user.</p>
+<p>In addition, the current OpenID identity is invalidated thus the cached OpenID information is removed from the HTTP Session or the OpenID cookie is cleaned. This will allow the user to present a different OpenID identifier to retry or it will require the OpenID identity to be revalidated with the OpenID provider if the identity is associated with a JCR user.</p>
 <h4 id="authenticationsucceeded">authenticationSucceeded</h4>
-<p>The OpenID Authentication Handler implementation of the
-<em>authenticationSucceeded</em> method just calls the
-<em>DefaultAuthenticationFeedbackHandler.handleRedirect</em> method to redirect
-the user to the initially requested location.</p>
-<p><a name="OpenIDAuthenticationHandler-IntegrationwithJackrabbit"></a></p>
+<p>The OpenID Authentication Handler implementation of the <code>authenticationSucceeded</code> method just calls the <code>DefaultAuthenticationFeedbackHandler.handleRedirect</code> method to redirect the user to the initially requested location.</p>
 <h3 id="integration-with-jackrabbit">Integration with Jackrabbit</h3>
-<p>The OpenID authentication handler can be integrated in two ways into the
-Jackrabbit authentication mechanism which is based on JAAS <em>LoginModule</em>.
-One integration is by means of a <em>LoginModulePlugin</em> which plugs into the
-extensible <em>LoginModule</em> architecture supported by the Sling Jackrabbit
-Embedded Repository bundle.</p>
-<p>The other integration option is the <em>trusted_credentials_attribute</em>
-mechanism supported by the Jackrabbit <em>DefaultLoginModule</em>. By setting
-the <em>trusted_credentials_attribute</em> parameter of the Jackrabbit
-<em>DefaultLoginModule</em> and the <em>openid.user.attr</em> configuration property
-of the OpenID Authentication Handler to the same value, the existence of an
-attribute of that name in the <em>SimpleCredentials</em> instance provided to
-the <em>Repository.login</em> method signals pre-authenticated credentials,
-which need not be further checked by the <em>DefaultLoginModule</em>.</p>
-<p><a name="OpenIDAuthenticationHandler-SecurityConsiderations"></a></p>
+<p>The OpenID authentication handler can be integrated in two ways into the Jackrabbit authentication mechanism which is based on JAAS <code>LoginModule</code>. One integration is by means of a <code>LoginModulePlugin</code> which plugs into the extensible <code>LoginModule</code> architecture supported by the Sling Jackrabbit Embedded Repository bundle.</p>
+<p>The other integration option is the <code>trusted*credentials*attribute</code> mechanism supported by the Jackrabbit <code>DefaultLoginModule</code>. By setting the <code>trusted*credentials*attribute</code> parameter of the Jackrabbit <code>DefaultLoginModule</code> and the <code>openid.user.attr</code> configuration property of the OpenID Authentication Handler to the same value, the existence of an attribute of that name in the <code>SimpleCredentials</code> instance provided to the <code>Repository.login</code> method signals pre-authenticated credentials, which need not be further checked by the <code>DefaultLoginModule</code>.</p>
 <h3 id="security-considerations">Security Considerations</h3>
 <p>OpenIDAuthentication has some limitations in terms of security:</p>
 <ol>
-<li>User name and password are transmitted in plain text in the initial form
-submission.</li>
-<li>The Cookie used to provide the authentication state or the HTTP Session
-ID may be stolen.</li>
-<li>When using the <em>trusted_credentials_attribute</em> mechanism, any intruder
-knowing the attribute name may log into the repository as any existing JCR
-user. The better option is to be based on the <em>LoginModulePlugin</em>
-mechanism.</li>
+<li>User name and password are transmitted in plain text in the initial form submission.</li>
+<li>The Cookie used to provide the authentication state or the HTTP Session ID may be stolen.</li>
+<li>When using the <code>trusted*credentials*attribute</code> mechanism, any intruder knowing the attribute name may log into the repository as any existing JCR user. The better option is to be based on the <code>LoginModulePlugin</code> mechanism.</li>
 </ol>
-<p>To prevent eavesdroppers from sniffing the credentials or stealing the
-Cookie a secure transport layer should be used such as TLS/SSL, VPN or
-IPSec.</p>
+<p>To prevent eavesdroppers from sniffing the credentials or stealing the Cookie a secure transport layer should be used such as TLS/SSL, VPN or IPSec.</p>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1328899 by fmeschbe on Sun, 22 Apr 2012 16:52:13 +0000
+        Rev. 1341347 by fmeschbe on Tue, 22 May 2012 08:25:18 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project

Modified: websites/staging/sling/trunk/content/osgi-installer.html
==============================================================================
--- websites/staging/sling/trunk/content/osgi-installer.html (original)
+++ websites/staging/sling/trunk/content/osgi-installer.html Tue May 22 08:25:32 2012
@@ -82,92 +82,33 @@
         <a href="/">Home</a>
       </div>
       <h1>OSGi Installer</h1>
-      <p><a name="OSGiInstaller-Overview"></a></p>
-<h1 id="overview">Overview</h1>
-<p>The OSGi installer is a central service for handling installs, updates and
-uninstall of "artifacts". By default, the installer supports bundles and
-has an extension for handling configurations for the OSGi configuration
-admin.</p>
+      <h1 id="overview">Overview</h1>
+<p>The OSGi installer is a central service for handling installs, updates and uninstall of "artifacts". By default, the installer supports bundles and has an extension for handling configurations for the OSGi configuration admin.</p>
 <p>!Slide14.jpg|border=1!</p>
-<p>The OSGi installer itself is "just" the central service managing the tasks
-and states of the artifacts. The artifacts can be provided through various
-providers, e.g. through a file system provider reading artifacts from
-configured directories or the jcr provider reading artifacts from a JCR
-repository.</p>
-<p>A provider is just scanning for artifacts and their removal. It informs the
-OSGi installer about new artifacts and removed artifacts. The provider
-itself has usually no knowledge about the contents of an artifact. It does
-not know about bundles, configurations etc.</p>
-<p>As the OSGi installer itself is not performing the actual install, update
-or removal of an artifact, its possible to install transformers and
-installer factories. A transformer inspects the artifacts and tries to
-detect its type. By default, detecting of bundles and configurations is
-supported. The final service is an installer factory creating the actual
-task, like install this bundle, update that bundle etc.</p>
-<p>It's possible to add own providers, transformers and installer factories to
-support custom scenarios.</p>
-<p><a name="OSGiInstaller-ArtifactHandling"></a></p>
+<p>The OSGi installer itself is "just" the central service managing the tasks and states of the artifacts. The artifacts can be provided through various providers, e.g. through a file system provider reading artifacts from configured directories or the jcr provider reading artifacts from a JCR repository.</p>
+<p>A provider is just scanning for artifacts and their removal. It informs the OSGi installer about new artifacts and removed artifacts. The provider itself has usually no knowledge about the contents of an artifact. It does not know about bundles, configurations etc.</p>
+<p>As the OSGi installer itself is not performing the actual install, update or removal of an artifact, its possible to install transformers and installer factories. A transformer inspects the artifacts and tries to detect its type. By default, detecting of bundles and configurations is supported. The final service is an installer factory creating the actual task, like install this bundle, update that bundle etc.</p>
+<p>It's possible to add own providers, transformers and installer factories to support custom scenarios.</p>
 <h2 id="artifact-handling">Artifact Handling</h2>
-<p>Once an artifact is detected by a transformer, it gets a unique id. By
-default a bundle gets the symbolic name as the unique identifier and a
-configuration the PID.
-In addition to this id, an artifact gets a priority information from the
-provider. The priority is used if an artifact with the same id is provided
-several times from different locations. For example if a file system
-provider is scanning two directories and an artifact with the same id (like
-a configuration) is added to both directories, one should have precedence
-over the other. This is handled by the priority.</p>
-<p>Artifacts with the same unique id are grouped and then sorted by priority
-and maybe other artifact dependent metadata like the bundle version. Only
-the first artifact in this sorted group is tried to be applied!</p>
-<p><a name="OSGiInstaller-BundleHandling"></a></p>
+<p>Once an artifact is detected by a transformer, it gets a unique id. By default a bundle gets the symbolic name as the unique identifier and a configuration the PID.
+In addition to this id, an artifact gets a priority information from the provider. The priority is used if an artifact with the same id is provided several times from different locations. For example if a file system provider is scanning two directories and an artifact with the same id (like a configuration) is added to both directories, one should have precedence over the other. This is handled by the priority.</p>
+<p>Artifacts with the same unique id are grouped and then sorted by priority and maybe other artifact dependent metadata like the bundle version. Only the first artifact in this sorted group is tried to be applied!</p>
 <h2 id="bundle-handling">Bundle Handling</h2>
-<p>In general, the OSGi installer always tries to install the highest version
-of a bundle if several bundles with the same symbolic name are provided. In
-this case higher version wins over priority.
-If an installed bundle is removed by a provider, for example deleted in the
-repository, the OSGi installer uninstall the bundle.
-If a bundle is removed from a provider which is currently not installed,
-this has no effect at all.
-If an installed bundle is removed and another version of this bundle is
-provided (a lower version), than this one is installed instead. This is
-basically a downgrade of the bundle.
-If a bundle is installed and a higher version is provided, an upgrade is
-performed.
-If an installed bundle is managed via any other OSGi tooling, like
-uninstalling it through the web console, the OSGi installer does no action
-at all!</p>
-<p>If a failure occurs during bundle installation or update, the OSGi
-installer will retry this as soon as another bundle has been installed. The
-common use case is an application installation with several bundles where
-one bundle depends on another. As they are installed in arbitrary order,
-this mechanism ensures that in the end all bundles are properly wired and
-installed.</p>
-<p>When all artifacts have been processed (either install, update or delete),
-a package refresh is automatically called.</p>
-<p><a name="OSGiInstaller-VersionsandSnapshots"></a></p>
+<p>In general, the OSGi installer always tries to install the highest version of a bundle if several bundles with the same symbolic name are provided. In this case higher version wins over priority.
+If an installed bundle is removed by a provider, for example deleted in the repository, the OSGi installer uninstall the bundle.
+If a bundle is removed from a provider which is currently not installed, this has no effect at all.
+If an installed bundle is removed and another version of this bundle is provided (a lower version), than this one is installed instead. This is basically a downgrade of the bundle.
+If a bundle is installed and a higher version is provided, an upgrade is performed.
+If an installed bundle is managed via any other OSGi tooling, like uninstalling it through the web console, the OSGi installer does no action at all!</p>
+<p>If a failure occurs during bundle installation or update, the OSGi installer will retry this as soon as another bundle has been installed. The common use case is an application installation with several bundles where one bundle depends on another. As they are installed in arbitrary order, this mechanism ensures that in the end all bundles are properly wired and installed.</p>
+<p>When all artifacts have been processed (either install, update or delete), a package refresh is automatically called.</p>
 <h3 id="versions-and-snapshots">Versions and Snapshots</h3>
-<p>The OSGi installer asumes that a symbolic name and version (not a snapshot
-version) uniquely identifies a bundle. Obviously this is a common
-development requirement that a released version of an artifact never
-changes over time. Therefore, once a bundle with a specific version is
-installed, it will not be reinstalled if the corresponding artifact
-changes. For example, if  bundle A with version 1.0 is put into the JCR
-repository, it gets installed. If now this jar in the repository is
-overwritten either with the same contents or with a different one, and this
-new artifact has again A as the symbolic name and version set to 1.0,
-nothing will happen as this exact bundle is already installed.</p>
-<p>During development, SNAPSHOT versions should be used, like 1.0.0-SNAPSHOT
-(using the Maven convention). If a bundle with a snapshot version is
-changed, it gets updated by the OSGI installer.</p>
-<p><a name="OSGiInstaller-ConfigurationHandling"></a></p>
+<p>The OSGi installer asumes that a symbolic name and version (not a snapshot version) uniquely identifies a bundle. Obviously this is a common development requirement that a released version of an artifact never changes over time. Therefore, once a bundle with a specific version is installed, it will not be reinstalled if the corresponding artifact changes. For example, if  bundle A with version 1.0 is put into the JCR repository, it gets installed. If now this jar in the repository is overwritten either with the same contents or with a different one, and this new artifact has again A as the symbolic name and version set to 1.0, nothing will happen as this exact bundle is already installed.</p>
+<p>During development, SNAPSHOT versions should be used, like 1.0.0-SNAPSHOT (using the Maven convention). If a bundle with a snapshot version is changed, it gets updated by the OSGI installer.</p>
 <h2 id="configuration-handling">Configuration Handling</h2>
-<p>In general the OSGi installer installs the configuration with the highes
-priority. For example in combination with the JCR installer provider, a
-configuration from <em>/apps</em> is preferred over a configuration for the same
-service from <em>/libs</em>.</p>
+<p>In general the OSGi installer installs the configuration with the highes priority. For example in combination with the JCR installer provider, a configuration from <em>/apps</em> is preferred over a configuration for the same service from <em>/libs</em>.</p>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1328899 by fmeschbe on Sun, 22 Apr 2012 16:52:13 +0000
+        Rev. 1341347 by fmeschbe on Tue, 22 May 2012 08:25:18 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project

Added: websites/staging/sling/trunk/content/output-rewriting-pipelines-org-apache-sling-rewriter.html
==============================================================================
--- websites/staging/sling/trunk/content/output-rewriting-pipelines-org-apache-sling-rewriter.html (added)
+++ websites/staging/sling/trunk/content/output-rewriting-pipelines-org-apache-sling-rewriter.html Tue May 22 08:25:32 2012
@@ -0,0 +1,159 @@
+<!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 - Output Rewriting Pipelines (org.apache.sling.rewriter)</title>
+    <link rel="stylesheet" href="/css/site.css" type="text/css" media="all">
+    <link rel="icon" href="http://sling.apache.org/site/media.data/favicon.ico">
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+  </head>
+  <body>
+    <div class="title">
+      <div class="logo">
+        <a href="http://sling.apache.org/site/index.html">
+          <img border="0" alt="Apache Sling" src="http://sling.apache.org/site/media.data/logo.png">
+        </a>
+      </div>
+      <div class="header">
+        <a href="http://www.apache.org/">
+          <img border="0" alt="Apache" src="http://sling.apache.org/site/media.data/apache.png">
+        </a>
+      </div>
+    </div>
+    
+    <div class="menu"> 
+      <p><strong>Documentation</strong> <br />
+<a href="/getting-started.html">Getting Started</a> <br />
+<a href="/the-sling-engine.html">The Sling Engine</a> <br />
+<a href="/development.html">Development</a> <br />
+<a href="/bundles.html">Bundles</a> <br />
+<a href="/tutorials-how-tos.html">Tutorials &amp; How-Tos</a> <br />
+<a href="/configuration.html">Configuration</a> <br />
+<a href="http://s.apache.org/sling.wiki">Wiki</a> <br />
+<a href="http://s.apache.org/sling.faq">FAQ</a> <br />
+<a href="/sitemap.html">Site Map</a></p>
+<p><strong>API Docs</strong>  <br />
+<a href="http://sling.apache.org/apidocs/sling6/index.html">Sling 6</a> <br />
+<a href="http://sling.apache.org/apidocs/sling5/index.html">Sling 5</a> <br />
+</p>
+<p><strong>Project info</strong> <br />
+<a href="http://sling.apache.org/site/downloads.cgi">Downloads</a> <br />
+<a href="http://www.apache.org/licenses/">License</a> <br />
+<a href="/contributing.html">Contributing</a> <br />
+<a href="/news.html">News</a> <br />
+<a href="/links.html">Links</a> <br />
+<a href="/project-information.html">Project Information</a> <br />
+<a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a> <br />
+<a href="http://svn.apache.org/viewvc/sling/trunk">Browse Source Repository</a> <br />
+<a href="/security.html">Security</a> <br />
+</p>
+<p><strong>Sponsorship</strong> <br />
+<a href="http://www.apache.org/foundation/thanks.html">Thanks</a> <br />
+<a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a> <br />
+<a href="http://www.apache.org/foundation/buy_stuff.html">Buy Stuff</a> <br />
+</p>
+<iframe 
+    src="http://www.apache.org/ads/button.html"
+    style="border-width:0; float: left" frameborder="0" 
+    scrolling="no"
+    width="135" 
+    height="135">
+</iframe>
+    </div>
+    
+    <div class="main">
+      <div class="breadcrump" style="font-size: 80%;">
+        <a href="/">Home</a>
+      </div>
+      <h1>Output Rewriting Pipelines (org.apache.sling.rewriter)</h1>
+      <h1 id="apache-sling-rewriter">Apache Sling Rewriter</h1>
+<p>The Apache Sling Rewriter is a module for rewriting the output generated by a usual Sling rendering process. Some possible use cases include rewriting or checking all links in an html page, manipulating the html page, or using the generated output as the base for further transformation. An example of futher transformation is to use XSLT to transform rendered XML to some output format like HTML or XSL:FO for generating PDF.</p>
+<p>For supporting these use cases, the rewriter uses the concept for a processor. The processor is a component that is injected through a servlet filter into the response. By implementing the <em>Processor</em> interface one is able to rewrite the whole response in one go. A more convenient way of processing the output is by using a so called pipeline; the Apache Sling rewriter basically uses the same concept as the famous Apache Cocoon: an XML based pipeline for further post processing of the output. The pipeline is based on SAX events.</p>
+<h2 id="sax-pipelines">SAX Pipelines</h2>
+<p>The rewriter allows to configure a pipeline for post processing of the generated response. Depending on how the pipeline is assembled the rewriting process might buffer the whole output in order to do proper post processing - for example this is required if an HTML response is "transformed" to XHTML or if XSLT is used to process the response.</p>
+<p>As the pipeline is based on SAX events, there needs to be a component that generates these events and sends them through the pipeline. By default the Sling rendering scripts write to an output stream, so there is a need to parse this output and generate the SAX events.</p>
+<p>The first component in the pipeline generating the initial SAX events is called a generator. The generator gets the output from Sling, generates SAX events (XML), and streams these events into the pipeline. The counterpart of the generator is the serializer which builds the end of the pipeline. The serializer collects all incomming SAX events, transforms them into the required response by writing into output stream of the response.</p>
+<p>Between the generator and the serializer so called transformers can be placed in a chain. A transformer receives SAX events from the previous component in the pipeline and sends SAX events to the next component in the pipeline. A transformer can remove events, change events, add events or just pass on the events.</p>
+<p>Sling contains a default pipeline which is executed for all html responses: it starts with an html generator, parsing the html output and sending events into the pipeline. A html serializer collects all events and serializes the output. </p>
+<p>The pipelines can be configured in the repository as a child node of <em>/apps/APPNAME/config/rewriter</em> (or <em>/libs/APPNAME/config/rewriter</em>). (In fact the configured search paths of the resource resolver are observed.) Each node can have the following properties:
+<em> generatorType - the type of the generator (required)
+</em> transformerTypes (multi value string) - the types of the transformers (optional)
+<em> serializerType - the type of the serializer (required)
+</em> paths (multi value string) - the paths this pipeline should run on (content paths)
+<em> contentTypes (multi value string) - the content types this pipeline should be used for (optional)
+</em> extensions (multi value string) - the extensions this pipeline should be used for (optional)
+<em> resourceTypes (multi value string) - the resource types this pipeline should be used for (optional)
+</em> order (long) - the configurations are sorted by this order, order must be higher or equal to 0. The configuration with the highest order is tried first.
+* enabled (boolean) - Is this configuration active? (default yes)</p>
+<p>As you can see from the configuration there are several possibilities to define when a pipeline should be used for a response, like paths, extensions, content types, or resource types. It is possible to specify several of them at once. In this case all conditions must be met.</p>
+<p>If a component needs a configuration, the configuration is stored in a child node which name is <em>{componentType}-{name}</em>, e.g. to configure the html generator (named <em>html-generator</em>), the node should have the name <em>generator-html-generator</em>. In the case that the pipeline contains the same transformer several times, the configuration child node should have the formant <em>{componentType}-{index}</em> where index is the index of the transformer starting with 1. For example if you have a pipeline with the following transformers, xslt, html-cleaner, xslt, link-checker, then the configuration nodes should be named <em>transformer-1</em> (for the first xslt), <em>transformer-html-cleaner</em>, <em>transformer-3</em> (for the second xslt), and <em>transformer-link-checker</em>.</p>
+<h3 id="default-pipeline">Default Pipeline</h3>
+<p>The default pipeline is configured for the <em>text/html</em> mime type and the <em>html</em> extensions and consists of the <em>html-generator</em> as the generator, and the <em>html-serializer</em> for generating the final response.
+As the html generated by Sling is not required to be valid XHTML, the html parser is using an HTML parser to create valid SAX events. In order to perform this, the generator needs to buffer the whole response first.</p>
+<h2 id="implementing-pipeline-components">Implementing Pipeline Components</h2>
+<p>Each pipeline component type has a corresponding Java interface (Generator, Transformer, and Serializer) together with a factory interface (GeneratorFactory, TransformerFactory, and SerializerFactory). When implementing such a component, both interfaces need to be implemented. The factory has only one method which creates a new instance of that type for the current request. The factory has to be registered as a service. For example if you're using the Maven SCR plugin, it looks like this:</p>
+<div class="codehilite"><pre><span class="nv">@scr</span><span class="o">.</span><span class="n">component</span> <span class="n">metatype</span><span class="o">=</span><span class="s">&quot;no&quot;</span> 
+<span class="nv">@scr</span><span class="o">.</span><span class="n">service</span> <span class="n">interface</span><span class="o">=</span><span class="s">&quot;TransformerFactory&quot;</span>
+<span class="nv">@scr</span><span class="o">.</span><span class="n">property</span> <span class="n">value</span><span class="o">=</span><span class="s">&quot;pipeline.type&quot;</span> <span class="n">value</span><span class="o">=</span><span class="s">&quot;validator&quot;</span>
+</pre></div>
+
+
+<p>The factory needs to implement the according interface and should be registered as a service for this factory interface (this is a plain service and not a factory service in the OSGi sense). Each factory gets a unique name through the <em>pipeline.type</em> property. The pipeline configuration in the repository just references this unique name (like validator).</p>
+<h2 id="extending-the-pipeline">Extending the Pipeline</h2>
+<p>With the possibilities from above, it is possible to define new pipelines and add custom components to the pipeline. However, in some cases it is required to just add a custom transformer to the existing pipeline. Therefore the rewriting can be configured with pre and post transformers that are simply added to each configured pipeline. This allows a more flexible way of customizing the pipeline without changing/adding a configuration in the repository.</p>
+<p>The approach here is nearly the same. A transformer factory needs to be implemented, but instead of giving this factory a unique name, this factory is marked as a global factory:</p>
+<div class="codehilite"><pre><span class="nv">@scr</span><span class="o">.</span><span class="n">component</span> <span class="n">metatype</span><span class="o">=</span><span class="s">&quot;no&quot;</span>
+<span class="nv">@scr</span><span class="o">.</span><span class="n">service</span> <span class="n">interface</span><span class="o">=</span><span class="s">&quot;TransformerFactory&quot;</span>
+<span class="nv">@scr</span><span class="o">.</span><span class="n">property</span> <span class="n">name</span><span class="o">=</span><span class="s">&quot;pipeline.mode&quot;</span> <span class="n">value</span><span class="o">=</span><span class="s">&quot;global&quot;</span>
+<span class="nv">@scr</span><span class="o">.</span><span class="n">property</span> <span class="n">name</span><span class="o">=</span><span class="s">&quot;service.ranking&quot;</span> <span class="n">value</span><span class="o">=</span><span class="s">&quot;RANKING&quot;</span> <span class="n">type</span><span class="o">=</span><span class="s">&quot;Integer&quot;</span>
+</pre></div>
+
+
+<p><em>RANKING</em> is an integer value (don't forget the type attribute otherwise the ranking is interpreted as zero!) specifying where to add the transformer in the pipeline. If the value is less than zero the transformer is added at the beginning of the pipeline right after the generator. If the ranking is equal or higher as zero, the transformer is added at the end of the pipeline before the serializer.</p>
+<p>The <em>TransformerFactory</em> interface has just one method which returns a new transformer instance. If you plan to use other services in your transformer you might declare the references on the factory and pass in the instances into the newly created transformer.</p>
+<h2 id="implementing-a-processor">Implementing a Processor</h2>
+<p>A processor must conform to the Java interface <em>org.apache.sling.rewriter.Processor</em>. It gets initializd (method <em>init</em>) with the <em>ProcessingContext</em>. This context contains all necessary information for the current request (especially the output writer to write the rewritten content to).
+The <em>getWriter</em> method should return a writer where the output is written to. When the output is written or an error occured <em>finished</em> is called.</p>
+<p>Like the pipeline components a processor is generated by a factory which has to be registered as a service factory, like this:</p>
+<div class="codehilite"><pre><span class="nv">@scr</span><span class="o">.</span><span class="n">component</span> <span class="n">metatype</span><span class="o">=</span><span class="s">&quot;no&quot;</span> 
+<span class="nv">@scr</span><span class="o">.</span><span class="n">service</span> <span class="n">interface</span><span class="o">=</span><span class="s">&quot;ProcessorFactory&quot;</span>
+<span class="nv">@scr</span><span class="o">.</span><span class="n">property</span> <span class="n">value</span><span class="o">=</span><span class="s">&quot;pipeline.type&quot;</span> <span class="n">value</span><span class="o">=</span><span class="s">&quot;uniqueName&quot;</span>
+</pre></div>
+
+
+<h2 id="configuring-a-processor">Configuring a Processor</h2>
+<p>The processors can be configured in the repository as a child node of <em>/apps/APPNAME/config/rewriter</em> (or libs or any configured search path). Each node can have the following properties:
+<em> processorType - the type of the processor (required) - this is the part from the scr factory information after the slash (in the example above this is </em>uniqueName<em>)
+</em> paths (multi value string) - the paths this processor should run on (content paths)
+<em> contentTypes (multi value string) - the content types this processor should be used for (optional)
+</em> extensions (multi value string) - the extensions this pipeline should be used for (optional)
+<em> resourceTypes (multi value string) - the resource types this pipeline should be used for (optional)
+</em> order (long) - the configurations are sorted by this order, order must be higher or equal to 0. The configuration with the highest order is tried first.
+* enabled (boolean) - Is this configuration active? (default yes)</p>
+      <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+        Rev. 1341347 by fmeschbe on Tue, 22 May 2012 08:25:18 +0000
+      </div>
+      <div class="trademarkFooter"> 
+        Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project
+        logo are trademarks of The Apache Software Foundation. All other marks mentioned
+        may be trademarks or registered trademarks of their respective owners.
+      </div>
+    </div>
+  </body>
+</html>

Modified: websites/staging/sling/trunk/content/plugins.html
==============================================================================
--- websites/staging/sling/trunk/content/plugins.html (original)
+++ websites/staging/sling/trunk/content/plugins.html Tue May 22 08:25:32 2012
@@ -85,7 +85,7 @@
       <p>These pages present the various Maven Plugins of Sling:</p>
 <p>{children:excerpt=true}</p>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1328899 by fmeschbe on Sun, 22 Apr 2012 16:52:13 +0000
+        Rev. 1341347 by fmeschbe on Tue, 22 May 2012 08:25:18 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project