incubator-sling-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cziege...@apache.org
Subject svn commit: r1420577 [29/30] - in /sling/site/trunk/content/site: ./ 46-line-blog.data/ authentication.data/ documentation.data/ first-steps.data/ getting-and-building-sling.data/ how-to-manage-events-in-sling.data/ index.data/ links.data/ manipulating...
Date Wed, 12 Dec 2012 09:14:44 GMT
Added: sling/site/trunk/content/site/version-policy.html
URL: http://svn.apache.org/viewvc/sling/site/trunk/content/site/version-policy.html?rev=1420577&view=auto
==============================================================================
--- sling/site/trunk/content/site/version-policy.html (added)
+++ sling/site/trunk/content/site/version-policy.html Wed Dec 12 09:13:50 2012
@@ -0,0 +1,380 @@
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<HTML>
+  <HEAD>
+    <TITLE>Apache Sling - Version Policy</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">
+<P><B>Documentation</B><BR class="atl-forced-newline">
+<A href="getting-started.html" title="Getting Started">Getting Started</A><BR class="atl-forced-newline">
+<A href="the-sling-engine.html" title="The Sling Engine">The Sling Engine</A><BR class="atl-forced-newline">
+<A href="development.html" title="Development">Development</A><BR class="atl-forced-newline">
+<A href="bundles.html" title="Bundles">Bundles</A><BR class="atl-forced-newline">
+<A href="tutorials-how-tos.html" title="Tutorials & How-Tos">Tutorials &amp; How&#45;Tos</A><BR class="atl-forced-newline">
+<A href="configuration.html" title="Configuration">Configuration</A><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/apidocs/sling6/index.html" class="external-link" rel="nofollow">API docs</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.wiki" class="external-link" rel="nofollow">Wiki</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.faq" class="external-link" rel="nofollow">FAQ</A><BR class="atl-forced-newline"></P>
+
+<P><B>Project info</B><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/site/downloads.cgi" class="external-link" rel="nofollow">Downloads</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/licenses/" class="external-link" rel="nofollow">License</A><BR class="atl-forced-newline">
+<A href="contributing.html" title="Contributing">Contributing</A><BR class="atl-forced-newline">
+<A href="news.html" title="News">News</A><BR class="atl-forced-newline">
+<A href="links.html" title="Links">Links</A><BR class="atl-forced-newline">
+<A href="project-information.html" title="Project Information">Project Information</A><BR class="atl-forced-newline">
+<A href="https://issues.apache.org/jira/browse/SLING" class="external-link" rel="nofollow">Issue Tracker</A><BR class="atl-forced-newline">
+<A href="http://svn.apache.org/viewvc/sling/trunk" class="external-link" rel="nofollow">Browse Source Repository</A><BR class="atl-forced-newline">
+<A href="security.html" title="Security">Security</A><BR class="atl-forced-newline"></P>
+
+<P><B>Sponsorship</B><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/thanks.html" class="external-link" rel="nofollow">Thanks</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/sponsorship.html" class="external-link" rel="nofollow">Become a Sponsor</A><BR>
+<A href="http://www.apache.org/foundation/buy_stuff.html" class="external-link" rel="nofollow">Buy Stuff</A></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>
+  <P style="height: 135px"></P>
+    </DIV>
+    <DIV class="main">
+        <DIV class="breadcrump" style="font-size: 80%;">
+<A href="apache-sling.html" title="Apache Sling Website">Apache Sling Website</A>&nbsp;&gt;&nbsp;<A href="apache-sling.html" title="Apache Sling">Apache Sling</A>&nbsp;&gt;&nbsp;<A href="documentation.html" title="Documentation">Documentation</A>&nbsp;&gt;&nbsp;<A href="development.html" title="Development">Development</A>&nbsp;&gt;&nbsp;<A href="" title="Version Policy">Version Policy</A>
+        </DIV>
+<H1><A name="VersionPolicy-DRAFTVersionPolicy"></A>DRAFT Version Policy</H1>
+
+<P>This page is about how we assign versions to exported packages and bundles and defines when to increase which part of the version number.</P>
+
+<DIV class="panelMacro"><TABLE class="infoMacro"><COLGROUP><COL width="24"><COL></COLGROUP><TR><TD valign="top"><IMG src="https://cwiki.apache.org/confluence/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></TD><TD>Please note that this page is currently in draft stage and still being discussed.</TD></TR></TABLE></DIV>
+
+<DIV>
+<UL>
+    <LI><A href="#VersionPolicy-Introduction">Introduction</A></LI>
+    <LI><A href="#VersionPolicy-VersionNumberSyntax">Version Number Syntax</A></LI>
+    <LI><A href="#VersionPolicy-EvolutionofExportedPackageVersions">Evolution of Exported Package Versions</A></LI>
+    <LI><A href="#VersionPolicy-EvolutionofBundleVersions">Evolution of Bundle Versions</A></LI>
+    <LI><A href="#VersionPolicy-Examples">Examples</A></LI>
+    <LI><A href="#VersionPolicy-ImportingPackages">Importing Packages</A></LI>
+    <LI><A href="#VersionPolicy-References">References</A></LI>
+</UL></DIV>
+
+<H2><A name="VersionPolicy-Introduction"></A>Introduction</H2>
+
+<P>In comments to SLING-1176 Ian Boston wrote:</P>
+
+<BLOCKQUOTE>
+<P>The exports in bundle/api/pom.xml look like they might become problematic from a support point of view, although we probably can't avoid this. [...] [The problem is the] manual maintenance of the version numbers. (not a big problem but needs to be done)</P></BLOCKQUOTE>
+
+<P>I agree, that this is a problem. So let me reasonate on this a bit <IMG class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/wink.gif" height="20" width="20" align="absmiddle" alt="" border="0"></P>
+
+<P>As a reference you might want to read <A href="http://blog.meschberger.ch/2009/10/on-version-numbers.html" class="external-link" rel="nofollow">my blog post on version numbers</A> and also what the <A href="http://wiki.eclipse.org/index.php/Version_Numbering" class="external-link" rel="nofollow">Eclipse guys have to say</A> (great read, btw). The OSGi Alliance has come up with a good definition for <A href="http://www.osgi.org/wiki/uploads/Links/SemanticVersioning.pdf" class="external-link" rel="nofollow">Semantic Versioning</A> to which the definitions described below perfectly match.</P>
+
+<P>For Sling we have three kinds of version numbers:</P>
+
+<OL>
+	<LI>Big Sling Releases</LI>
+	<LI>Sling Bundles</LI>
+	<LI>Package Exports</LI>
+</OL>
+
+
+<P><B>Big Sling Releases</B></P>
+
+<P>For <EM>Big Sling releases</EM> we already have an ample solution in that we just use a single number increased from release to release. Just remember that a <EM>Big Sling release</EM> is a convenience release of existing released Sling bundles.</P>
+
+<P><B>Sling Bundles</B></P>
+
+<P>For <EM>Sling Bundles</EM> version numbers are just defined as the <TT>&lt;version&gt;</TT> element of the bundle's POM. The only restriction here is, that we decided to use even numbers for releases and odd numbers for SNAPSHOTs. Whether and when which version part is increased is not explicitly defined yet.</P>
+
+<P><B>Package Exports</B></P>
+
+<P>For <EM>Package Exports</EM> the situation is more problematic since there are a number of places to set exported package version number:</P>
+
+<UL>
+	<LI>In a <TT>packageinfo</TT> file inside the package (picked up by the Maven Bundle Plugin to set the export version)</LI>
+	<LI>Explicitly in the <TT>&lt;Export-Package&gt;</TT> element of the Maven Bundle Plugin configuration</LI>
+	<LI>By reference to the bundle version number using the <TT>${pom.version</TT>} variable.</LI>
+</UL>
+
+
+<P>Upto now, we mostly used the <TT>${pom.version</TT> notation linking the exported package version to the bundle version. Over time this mechanism leads to a number of problems:</P>
+
+<UL>
+	<LI>For bundles with more than one package exported, the exported packages will evolve independently. As a consequence their versionin should also evolve independently. An example of such a bundle is the Sling API bundle of course.</LI>
+	<LI>Linking the package export version number to the bundle version number confuses the actual semantics of both version numbers. The package export version number only indicates the version of the actual package while the bundle version number indicates a development state of the overall bundle. This will generally not be the same.</LI>
+	<LI>The version of the exported package is increased on each bundle release, even though nothing may have changed on the export. In such a situation the version of the export should stay the same.</LI>
+</UL>
+
+
+<P>That said, the reuse of the bundle version as the package export version still is probably the correct thing to do for legacy library wrappers.</P>
+
+<P>Consider for example the Sling API bundle, which exports 9 packages. Each of which may evolve independently. Now the <TT>resource</TT> package is extended causing a minor version increase. Should the version numbers of the other exports also be increased ? Thus acting as if there was some API change ?</P>
+
+<P>I would say, no. Particularly if some API implementation bundle is restricting the import version of the API implemented. Such an implementation would immediately stop working because the version has been increased. But since there has been no change, the implementation would still be correct.</P>
+
+<P>So, I think, we should evolve the exported package versions independently from each other and even independently from the bundle version.</P>
+
+<P>This places more burden on the developer when deciding on the exported package version - in fact this requires such a decision as compared to have Maven take the decision by just setting the bundle version.</P>
+
+<P>The only problem is: Where shall this be noted ? In the POM or in the <TT>packageinfo</TT> file ? If we would place the <TT>packageinfo</TT> file just beneath the class source files, I would say, in the <TT>packageinfo</TT> file.</P>
+
+<P>But this would require defining the class source locations as resource location in the POM (at least for <TT>packageinfo</TT>) files.</P>
+
+<P>I am not sure ....</P>
+
+<P>This has not been discussed at large, but I would assume, that the POM is still the correct place to take note of the version of the exported packages.</P>
+
+<P><B>Future</B></P>
+
+<P>The newest versions of the BND library also support an <TT>@Export</TT> annotation in the <TT>package-info.java</TT> pseudo class file. This pseudo class is supported starting with Java 5 to take package level annotations (like the <TT>@Export</TT> annotation) and as a replacement of the <TT>package-info.html</TT> file.</P>
+
+<P>Using this syntax something like the following would be easily possible:</P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+/**
+ * This is the Package Level JavaDoc
+ */
+@Export(version = <SPAN class="code-quote">&quot;1.0&quot;</SPAN>)
+<SPAN class="code-keyword">package</SPAN> org.apache.sling.api.auth;
+<SPAN class="code-keyword">import</SPAN> aQute.bnd.annotation.Export;
+</PRE>
+</DIV></DIV>
+
+<P>See <A href="http://www.aqute.biz/Code/XBnd" class="external-link" rel="nofollow">Bnd Experimental</A> for details. Unfortunately the current Maven Bundle Plugin version does not support updating to the most recent BND library versions due to incompatibilities.</P>
+
+
+<H2><A name="VersionPolicy-VersionNumberSyntax"></A>Version Number Syntax</H2>
+
+<P>As a small reminder, this is how a version number is constructed:  In OSGi version numbers are composed of four (4) segments: 3 integers and a string named major.minor.micro.qualifier.</P>
+
+<P>Each segment captures a different intent:</P>
+
+<UL>
+	<LI>the major segment indicates breakage in the API</LI>
+	<LI>the minor segment indicates <EM>externally visible</EM> changes</LI>
+	<LI>the micro segment indicates bug fixes</LI>
+	<LI>the qualifier segment is not generally used but may be used to convey more information about a particular build, such as a build time or an SVN revision number.</LI>
+</UL>
+
+
+
+<H2><A name="VersionPolicy-EvolutionofExportedPackageVersions"></A>Evolution of Exported Package Versions</H2>
+
+<P>Version numbers of exported packages evolve independently from each other. Depending on the changes applied, the micro, minor, or major segement is increased. Whenever the major segment is increased, the minor and micro segments are reset to zero. Whenever the minor segment is increased, the micro segment is reset to zero.</P>
+
+<P>Segments are increased according to the above listing.</P>
+
+<P>This requires committers to think well about changes they apply to exported packages:</P>
+
+<UL>
+	<LI>Removing interfaces, methods or constants is likely an API breakage and thus requires a major version increase. In Sling we try to prevent this from happening.</LI>
+	<LI>Adding new methods to interfaces is likely just an <EM>externally visible</EM> change and thus requires a minor version increase</LI>
+	<LI>Fixing a bug in an exported class just requires a minor version increase.</LI>
+</UL>
+
+
+<P>JavaDoc updates generally do not constitute a reason to evolve the version number. The exception is that if the JavaDoc update is caused by a API limitation, it might be conceivable to increase the version number of the exported package. A decision on this will have to be taken on a case-by-case basis.</P>
+
+
+<H2><A name="VersionPolicy-EvolutionofBundleVersions"></A>Evolution of Bundle Versions</H2>
+
+<P>Version numbers of bundles evolve depending on the evolution of the exported packages but also depending on the evolution of the private code, which is not exported.</P>
+
+<P>As a rule of thumb, the following reasons apply for increasing the segments of bundle version numbers:</P>
+
+<UL>
+	<LI>Increasing the major version number of any of the exported packages or restructuring the bundle such that major parts are removed from the bundle (and either completely removed or moved to other bundle(s)).</LI>
+	<LI>Increasing the minor version number of any of the exported packages or refactoring the internal code or implementing a package exported by another bundle whose minor (or even major) version number has increased. Also functional extensions of the internal bundle classes consitutes a reason to increase the minor version number.</LI>
+	<LI>Increasing the micro version number of any of the exported packages or bug fixes.</LI>
+</UL>
+
+
+<P>Note, that this definition does not require the bundle and epxorted package version numbers to be synchronized in any way. While doing so might help in a first or second step, over time it will become close to impossible to keep the versions in sync. So rather than trying to keep the versions in sync, we should make sure, we increase the versions correctly.</P>
+
+
+<H2><A name="VersionPolicy-Examples"></A>Examples</H2>
+
+
+<H3><A name="VersionPolicy-PureAPIBundle"></A>Pure API Bundle</H3>
+
+<P>An example of an almost <EM>Pure API Bundle</EM> is the Sling API bundle. This bundle exports 9 packages. Some are really stable &ndash; e.g. the <TT>org.apache.sling.api</TT> package or the <TT>org.apache.sling.wrappers</TT> package &ndash; and some are being worked on at the moment &ndash; e.g. the <TT>org.apache.sling.resource</TT> package.</P>
+
+<P>To not break existing users of the unmodified packages, the exported versions of these packages must not be increased.</P>
+
+<P>To signal to users of evolving packages, that there might be new and interesting functionality, the version number must be increased according to above definition. This also conveys to the implementor(s) of the API, that they have to take some action.</P>
+
+
+<P>A hypothetical evolution of version numbers shown on two packages and the bundle version might be as follows</P>
+
+<DIV class="table-wrap">
+<TABLE class="confluenceTable"><TBODY>
+<TR>
+<TD class="confluenceTd"> Description </TD>
+<TD class="confluenceTd"> <TT>api</TT> package </TD>
+<TD class="confluenceTd"> <TT>resource</TT> package </TD>
+<TD class="confluenceTd"> bundle </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> Initial Release </TD>
+<TD class="confluenceTd"> 1.0.0 </TD>
+<TD class="confluenceTd"> 1.0.0 </TD>
+<TD class="confluenceTd"> 1.0.0 </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> Bug fix in a <TT>resource</TT> class </TD>
+<TD class="confluenceTd"> 1.0.0 </TD>
+<TD class="confluenceTd"> 1.0.2 </TD>
+<TD class="confluenceTd"> 1.0.2 </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> New API in the <TT>resource</TT> package </TD>
+<TD class="confluenceTd"> 1.0.0 </TD>
+<TD class="confluenceTd"> 1.1.0 </TD>
+<TD class="confluenceTd"> 1.1.0 </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> New API in the <TT>api</TT> package </TD>
+<TD class="confluenceTd"> 1.1.0 </TD>
+<TD class="confluenceTd"> 1.1.0 </TD>
+<TD class="confluenceTd"> 1.2.0 </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> API breakage in the <TT>api</TT> package </TD>
+<TD class="confluenceTd"> 2.0.0 </TD>
+<TD class="confluenceTd"> 1.1.0 </TD>
+<TD class="confluenceTd"> 2.0.0 </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+
+
+<H3><A name="VersionPolicy-ImplementationBundleprovidingAPI"></A>Implementation Bundle providing API</H3>
+
+<P>An example of such a hybrid bundle is the Sling Engine bundle. This bundle exports two packages themselves defining API and contains a number of internal packages which actually implement parts of the Sling API.</P>
+
+<P>A hypothetical evolution of version numbers shown on one exported package and the bundle version might be as follows</P>
+
+<DIV class="table-wrap">
+<TABLE class="confluenceTable"><TBODY>
+<TR>
+<TD class="confluenceTd"> Description </TD>
+<TD class="confluenceTd"> <TT>engine</TT> package </TD>
+<TD class="confluenceTd"> bundle </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> Initial Release </TD>
+<TD class="confluenceTd"> 1.0.0 </TD>
+<TD class="confluenceTd"> 1.0.0 </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> Bug fix in a <TT>engine</TT> class </TD>
+<TD class="confluenceTd"> 1.0.2 </TD>
+<TD class="confluenceTd"> 1.0.2 </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> Bug fix in an internal calss </TD>
+<TD class="confluenceTd"> 1.0.2 </TD>
+<TD class="confluenceTd"> 1.0.4 </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> New API in the <TT>engine</TT> package </TD>
+<TD class="confluenceTd"> 1.1.0 </TD>
+<TD class="confluenceTd"> 1.1.0 </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> Implement new API from <TT>api</TT> 1.1.0 </TD>
+<TD class="confluenceTd"> 1.1.0 </TD>
+<TD class="confluenceTd"> 1.2.0 </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> Refactor internal classes </TD>
+<TD class="confluenceTd"> 1.1.0 </TD>
+<TD class="confluenceTd"> 1.3.0 </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> Implement API from <TT>api</TT> 2.0.0 </TD>
+<TD class="confluenceTd"> 1.1.0 </TD>
+<TD class="confluenceTd"> 2.0.0 </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+
+
+<H3><A name="VersionPolicy-PureImplementationBundle"></A>Pure Implementation Bundle</H3>
+
+<P>For Pure Implementation Bundles only the bundle version numbers are maintained because there is no exported package whose version number needs to be managed. This makes the decision process of version number evolution very simple.</P>
+
+
+<H2><A name="VersionPolicy-ImportingPackages"></A>Importing Packages</H2>
+
+
+<P>When importing packages a version number will automatically be generated by the Maven Bundle Plugin as follows:</P>
+
+<UL>
+	<LI>If the providing package exports a package with an explicit version number, that exact version number will be used as the lower bound</LI>
+	<LI>If such a lower bound exists, the upper bound is exclusive the next major version number.</LI>
+</UL>
+
+
+<P>For example if importing the <TT>api</TT> package exported at version 1.2.3, the <TT>Import-Package</TT> statement is generated as</P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+Import-Package: api;version=[1.2.3,2.0.0)
+</PRE>
+</DIV></DIV>
+
+
+<P>This default works well for consumers of the API, since according to above definitions an API is guaranteed to not contain breakages if the major version number is not increased.</P>
+
+<P>For bundles implementing the API, this default does not work well, since from their point of view an <EM>externally visible</EM> change in fact constitutes a breakage, because the implementation is not complete. So if a bundle implements a package a manually crafted import version should be defined which includes the export version of the defining bundle but excludes the next minor version.</P>
+
+<P>For example implementing the <TT>api</TT> package exported at version 1.2.3, would require the following manually created <TT>Import-Package</TT> statement:</P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+Import-Package: api;version=[1.2.3,1.3.0)
+</PRE>
+</DIV></DIV>
+
+<P>This allows for the implementation to work correctly with bug fixed package exports but as soon as there are any <EM>externally visible</EM> changes, the implementation bundle has to be adapted &ndash; even if this just means increasing the upper version bound in the <TT>Import-Package</TT> statement thus guaranteeing compliance (again).</P>
+
+<P><B>Future</B></P>
+
+<P>Recent versions of the BND library support automatic differntiation between use and implementation of API and to set the import version ranges accordingly. See <A href="http://www.aqute.biz/Code/XBnd" class="external-link" rel="nofollow">Bnd Experimental</A> for details. Unfortunately the current Maven Bundle Plugin version does not support updating to the most recent BND library versions due to incompatibilities.</P>
+
+<H2><A name="VersionPolicy-References"></A>References</H2>
+
+<P><A href="http://markmail.org/thread/zshobgjwtqrncajt" class="external-link" rel="nofollow">Version Numbers</A> &ndash; The mail thread discussing version numbering<BR>
+<A href="http://blog.meschberger.ch/2009/10/on-version-numbers.html" class="external-link" rel="nofollow">On Version Numbers</A> &ndash; Blog about version numbers<BR>
+<A href="http://wiki.eclipse.org/index.php/Version_Numbering" class="external-link" rel="nofollow">Version Numbering</A> &ndash; An Eclipse paper on assigning version numbers. Very good read.<BR>
+<A href="http://www.osgi.org/wiki/uploads/Links/SemanticVersioning.pdf" class="external-link" rel="nofollow">Semantic Versioning</A> &ndash; An OSGi Alliance paper on semantic versioning.<BR>
+<A href="http://www.aqute.biz/Code/XBnd" class="external-link" rel="nofollow">Bnd Experimental</A> &ndash; Experimental extensions to the BND library; unfortunately these extensions are not yet usable with Maven Bundle Plugin 2.1.0 due to API changes in the BND library not supported by the plugin.</P>
+        <DIV class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+Last modified by fmeschbe on 2010-08-09 06:28:46.0
+        </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>
+

Propchange: sling/site/trunk/content/site/version-policy.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sling/site/trunk/content/site/version-policy.html
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: sling/site/trunk/content/site/version-policy.html
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: sling/site/trunk/content/site/web-console-extensions.html
URL: http://svn.apache.org/viewvc/sling/site/trunk/content/site/web-console-extensions.html?rev=1420577&view=auto
==============================================================================
--- sling/site/trunk/content/site/web-console-extensions.html (added)
+++ sling/site/trunk/content/site/web-console-extensions.html Wed Dec 12 09:13:50 2012
@@ -0,0 +1,127 @@
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<HTML>
+  <HEAD>
+    <TITLE>Apache Sling - Web Console Extensions</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">
+<P><B>Documentation</B><BR class="atl-forced-newline">
+<A href="getting-started.html" title="Getting Started">Getting Started</A><BR class="atl-forced-newline">
+<A href="the-sling-engine.html" title="The Sling Engine">The Sling Engine</A><BR class="atl-forced-newline">
+<A href="development.html" title="Development">Development</A><BR class="atl-forced-newline">
+<A href="bundles.html" title="Bundles">Bundles</A><BR class="atl-forced-newline">
+<A href="tutorials-how-tos.html" title="Tutorials & How-Tos">Tutorials &amp; How&#45;Tos</A><BR class="atl-forced-newline">
+<A href="configuration.html" title="Configuration">Configuration</A><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/apidocs/sling6/index.html" class="external-link" rel="nofollow">API docs</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.wiki" class="external-link" rel="nofollow">Wiki</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.faq" class="external-link" rel="nofollow">FAQ</A><BR class="atl-forced-newline"></P>
+
+<P><B>Project info</B><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/site/downloads.cgi" class="external-link" rel="nofollow">Downloads</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/licenses/" class="external-link" rel="nofollow">License</A><BR class="atl-forced-newline">
+<A href="contributing.html" title="Contributing">Contributing</A><BR class="atl-forced-newline">
+<A href="news.html" title="News">News</A><BR class="atl-forced-newline">
+<A href="links.html" title="Links">Links</A><BR class="atl-forced-newline">
+<A href="project-information.html" title="Project Information">Project Information</A><BR class="atl-forced-newline">
+<A href="https://issues.apache.org/jira/browse/SLING" class="external-link" rel="nofollow">Issue Tracker</A><BR class="atl-forced-newline">
+<A href="http://svn.apache.org/viewvc/sling/trunk" class="external-link" rel="nofollow">Browse Source Repository</A><BR class="atl-forced-newline">
+<A href="security.html" title="Security">Security</A><BR class="atl-forced-newline"></P>
+
+<P><B>Sponsorship</B><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/thanks.html" class="external-link" rel="nofollow">Thanks</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/sponsorship.html" class="external-link" rel="nofollow">Become a Sponsor</A><BR>
+<A href="http://www.apache.org/foundation/buy_stuff.html" class="external-link" rel="nofollow">Buy Stuff</A></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>
+  <P style="height: 135px"></P>
+    </DIV>
+    <DIV class="main">
+        <DIV class="breadcrump" style="font-size: 80%;">
+<A href="apache-sling.html" title="Apache Sling Website">Apache Sling Website</A>&nbsp;&gt;&nbsp;<A href="apache-sling.html" title="Apache Sling">Apache Sling</A>&nbsp;&gt;&nbsp;<A href="documentation.html" title="Documentation">Documentation</A>&nbsp;&gt;&nbsp;<A href="bundles.html" title="Bundles">Bundles</A>&nbsp;&gt;&nbsp;<A href="" title="Web Console Extensions">Web Console Extensions</A>
+        </DIV>
+<H1><A name="WebConsoleExtensions-WebConsoleExtensions"></A>Web Console Extensions</H1>
+
+<P>The Apache Sling project provides two extensions to the <A href="http://felix.apache.org/site/apache-felix-web-console.html" class="external-link" rel="nofollow">Apache Felix Web Console</A> (in addition to a number of plugins, of course):</P>
+
+<DIV>
+<UL>
+    <LI><A href="#WebConsoleExtensions-Branding%2528org.apache.sling.extensions.webconsolebranding%2529">Branding (org.apache.sling.extensions.webconsolebranding)</A></LI>
+    <LI><A href="#WebConsoleExtensions-SecurityProvider%2528org.apache.sling.extensions.webconsolesecurityprovider%2529">Security Provider (org.apache.sling.extensions.webconsolesecurityprovider)</A></LI>
+</UL></DIV>
+
+<H2><A name="WebConsoleExtensions-Branding%28org.apache.sling.extensions.webconsolebranding%29"></A>Branding (org.apache.sling.extensions.webconsolebranding)</H2>
+
+<P>The Apache Sling Web Console Branding provided by Apache Sling is currently just for the product logo displayed in the upper right corner of the Web Console and some titles and strings.</P>
+
+<P>This bundle will attach as a fragment bundle to the Apache Felix Web Console bundle. To enable it after installation into a running system, you might have to refresh the package imports of the Apache Felix Web Console bundle. If you install using the Apache Felix Web Console bundle installation functionality, this will be taken care of by the Web Console.</P>
+
+
+<H2><A name="WebConsoleExtensions-SecurityProvider%28org.apache.sling.extensions.webconsolesecurityprovider%29"></A>Security Provider (org.apache.sling.extensions.webconsolesecurityprovider)</H2>
+
+<P>The Apache Sling Web Console Security Provider implements the Apache Felix Web Console <TT>WebConsoleSecurityProvider</TT> interface authenticating Web Console users against the JCR repository. Each username and password presented is used to login to the JCR repository and to check the respective session.</P>
+
+<OL>
+	<LI>Ensure the username and password can be used to login to the default workspace. If not, access is denied</LI>
+	<LI>If the username presented is one of the user names configured with the <TT>users</TT> configuration property, access is granted.</LI>
+	<LI>Otherwise if the user is a (direct or indirect) member of one of the groups configured with the <TT>groups</TT> configuration property, access is granted.</LI>
+</OL>
+
+
+<P>Access is denied if the username and password cannot be used to login to the default workspace or if the user is neither one of the configured allowed users nor in any of the configured groups.</P>
+
+<H3><A name="WebConsoleExtensions-Configuration"></A>Configuration</H3>
+
+<P>The Security Provider is configured with configuration with PID <TT>org.apache.sling.extensions.webconsolesecurityprovider.internal.SlingWebConsoleSecurityProvider</TT> supporting the following properties:</P>
+
+<DIV class="table-wrap">
+<TABLE class="confluenceTable"><TBODY>
+<TR>
+<TH class="confluenceTh"> Property </TH>
+<TH class="confluenceTh"> Type </TH>
+<TH class="confluenceTh"> Default Value </TH>
+<TH class="confluenceTh"> Description</TH>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>users</TT> </TD>
+<TD class="confluenceTd"> <TT>String</TT>, <TT>String[]</TT> or <TT>Vector&lt;String&gt;</TT> </TD>
+<TD class="confluenceTd"> admin </TD>
+<TD class="confluenceTd"> The list of users granted access to the Web Console </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>groups</TT></TD>
+<TD class="confluenceTd"> <TT>String</TT>, <TT>String[]</TT> or <TT>Vector&lt;String&gt;</TT> </TD>
+<TD class="confluenceTd"> &mdash; </TD>
+<TD class="confluenceTd"> The list of groups whose (direct or indirect) members are granted access to the Web Console </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+
+<P>Note, that while the default value explicitly grants the <EM>admin</EM> user to access the Web Console it is suggested that system administrators define a special group and assign users with Web Console access to this group.</P>
+        <DIV class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+Last modified by fmeschbe on 2010-08-25 04:33:14.0
+        </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>
+

Propchange: sling/site/trunk/content/site/web-console-extensions.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sling/site/trunk/content/site/web-console-extensions.html
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: sling/site/trunk/content/site/web-console-extensions.html
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: sling/site/trunk/content/site/webdav.html
URL: http://svn.apache.org/viewvc/sling/site/trunk/content/site/webdav.html?rev=1420577&view=auto
==============================================================================
--- sling/site/trunk/content/site/webdav.html (added)
+++ sling/site/trunk/content/site/webdav.html Wed Dec 12 09:13:50 2012
@@ -0,0 +1,78 @@
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<HTML>
+  <HEAD>
+    <TITLE>Apache Sling - WebDAV</TITLE>
+    <LINK rel="stylesheet" href="http://incubator.apache.org/sling/site/media.data/site.css" type="text/css" media="all">
+    <LINK rel="icon" href="http://incubator.apache.org/sling/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://incubator.apache.org/sling/site/index.html">
+          <IMG border="0" alt="Apache Sling" src="http://incubator.apache.org/sling/site/media.data/logo.png">
+        </A>
+      </DIV>
+      <DIV class="header">
+        <A href="http://incubator.apache.org/">
+          <IMG border="0" alt="Apache Incubator" src="http://incubator.apache.org/images/apache-incubator-logo.png">
+        </A>
+      </DIV>
+    </DIV>
+    <DIV class="menu">
+ 
+             
+                         
+                                     
+                                                 
+            
+
+<UL>
+	<LI><A href="documentation.html" title="Documentation">Documentation</A></LI>
+	<LI><A href="advanced-topics.html" title="Advanced Topics">Advanced Topics</A></LI>
+	<LI><A href="development.html" title="Development">Development</A></LI>
+	<LI><A href="links.html" title="Links">Links</A></LI>
+	<LI><A href="../SLING/faq.html" title="FAQ">FAQ</A></LI>
+	<LI><SPAN class="nobr"><A href="http://cwiki.apache.org/SLING/" title="Visit page outside Confluence" rel="nofollow">Wiki<SUP><IMG class="rendericon" src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"></SUP></A></SPAN></LI>
+	<LI><A href="project-information.html" title="Project Information">Project Information</A></LI>
+	<LI><SPAN class="nobr"><A href="http://www.apache.org/foundation/thanks.html" title="Visit page outside Confluence" rel="nofollow">Sponsors<SUP><IMG class="rendericon" src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"></SUP></A></SPAN></LI>
+	<LI><SPAN class="nobr"><A href="http://www.apache.org/foundation/sponsorship.html" title="Visit page outside Confluence" rel="nofollow">Sponsorship<SUP><IMG class="rendericon" src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"></SUP></A></SPAN></LI>
+</UL>
+
+
+<P>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    </DIV>
+    <DIV class="main">
+<H1><A name="WebDAV-RepositoryBasedDevelopment"></A>Repository Based Development</H1>
+
+<DIV>
+<UL>
+  <LI><A href="#WebDAV-WebDAVSupport">WebDAV Support</A></LI>
+  <LI><A href="#WebDAV-EclipsepluginforJCR">Eclipse plugin for JCR</A></LI>
+</UL></DIV>
+
+<H2><A name="WebDAV-WebDAVSupport"></A>WebDAV Support</H2>
+
+<P>WebDAV support in Sling is based on the <SPAN class="nobr"><A href="http://jackrabbit.apache.org/doc/components/jcr-server.html" title="Visit page outside Confluence" rel="nofollow">Simple WebDAV<SUP><IMG class="rendericon" src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"></SUP></A></SPAN> implementation of Apache Jackrabbit which is integrated in the <TT>jcr/webdav</TT> project. By default the WebDAV server is running below <TT>/dav</TT> URL where the URL path consists of three parts:</P>
+
+<DIV class="panel"><DIV class="panelContent">
+<P>prefix/workspace/item</P>
+</DIV></DIV>
+
+<UL>
+	<LI><TT><B>prefix</B></TT> is the URL prefix to address the WebDAV servlet. By default this is set to <TT>/dav</TT> but may be configured to any valid path.</LI>
+	<LI><TT><B>workspace</B></TT> is the name of the workspace to be accessed through WebDAV.</LI>
+	<LI><TT><B>item</B></TT> is the path to the JCR Item to access.</LI>
+</UL>
+
+
+<P>If you access the WebDAV server at the prefix path &ndash; e.g. <TT>!http://localhost:8080/dav</TT> &ndash; you will be redirected to the default workspace with a temporary redirect status 302. Some clients, such as the Linux <EM>davfs</EM>, do not like this redirection and must be configured to explicitly address the default workspace.</P>
+
+<H2><A name="WebDAV-EclipsepluginforJCR"></A>Eclipse plugin for JCR</H2>
+
+<P>TBD</P>
+    </DIV>
+  </BODY>
+</HTML>
+

Propchange: sling/site/trunk/content/site/webdav.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sling/site/trunk/content/site/webdav.html
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: sling/site/trunk/content/site/webdav.html
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: sling/site/trunk/content/site/wiki.html
URL: http://svn.apache.org/viewvc/sling/site/trunk/content/site/wiki.html?rev=1420577&view=auto
==============================================================================
--- sling/site/trunk/content/site/wiki.html (added)
+++ sling/site/trunk/content/site/wiki.html Wed Dec 12 09:13:50 2012
@@ -0,0 +1,221 @@
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<HTML>
+  <HEAD>
+    <TITLE>Apache Sling - wiki</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">
+<P><B>Documentation</B><BR class="atl-forced-newline">
+<A href="getting-started.html" title="Getting Started">Getting Started</A><BR class="atl-forced-newline">
+<A href="the-sling-engine.html" title="The Sling Engine">The Sling Engine</A><BR class="atl-forced-newline">
+<A href="development.html" title="Development">Development</A><BR class="atl-forced-newline">
+<A href="bundles.html" title="Bundles">Bundles</A><BR class="atl-forced-newline">
+<A href="tutorials-how-tos.html" title="Tutorials & How-Tos">Tutorials &amp; How&#45;Tos</A><BR class="atl-forced-newline">
+<A href="configuration.html" title="Configuration">Configuration</A><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/apidocs/sling6/index.html" class="external-link" rel="nofollow">API docs</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.wiki" class="external-link" rel="nofollow">Wiki</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.faq" class="external-link" rel="nofollow">FAQ</A><BR class="atl-forced-newline"></P>
+
+<P><B>Project info</B><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/site/downloads.cgi" class="external-link" rel="nofollow">Downloads</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/licenses/" class="external-link" rel="nofollow">License</A><BR class="atl-forced-newline">
+<A href="contributing.html" title="Contributing">Contributing</A><BR class="atl-forced-newline">
+<A href="news.html" title="News">News</A><BR class="atl-forced-newline">
+<A href="links.html" title="Links">Links</A><BR class="atl-forced-newline">
+<A href="project-information.html" title="Project Information">Project Information</A><BR class="atl-forced-newline">
+<A href="https://issues.apache.org/jira/browse/SLING" class="external-link" rel="nofollow">Issue Tracker</A><BR class="atl-forced-newline">
+<A href="http://svn.apache.org/viewvc/sling/trunk" class="external-link" rel="nofollow">Browse Source Repository</A><BR class="atl-forced-newline">
+<A href="security.html" title="Security">Security</A><BR class="atl-forced-newline"></P>
+
+<P><B>Sponsorship</B><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/thanks.html" class="external-link" rel="nofollow">Thanks</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/sponsorship.html" class="external-link" rel="nofollow">Become a Sponsor</A><BR>
+<A href="http://www.apache.org/foundation/buy_stuff.html" class="external-link" rel="nofollow">Buy Stuff</A></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>
+  <P style="height: 135px"></P>
+    </DIV>
+    <DIV class="main">
+        <DIV class="breadcrump" style="font-size: 80%;">
+<A href="apache-sling.html" title="Apache Sling Website">Apache Sling Website</A>&nbsp;&gt;&nbsp;<A href="apache-sling.html" title="Apache Sling">Apache Sling</A>&nbsp;&gt;&nbsp;<A href="" title="wiki">wiki</A>
+        </DIV>
+<H1><A name="wiki-ApacheSlingWebsite"></A>Apache Sling Website</H1>
+
+<DIV class="panelMacro"><TABLE class="tipMacro"><COLGROUP><COL width="24"><COL></COLGROUP><TR><TD valign="top"><IMG src="https://cwiki.apache.org/confluence/images/icons/emoticons/check.gif" width="16" height="16" align="absmiddle" alt="" border="0"></TD><TD><B>Use Generated Pages</B><BR>The Apache Sling project uses a Confluence space for documentation purposes and to generate the static Sling web site. You are currently looking at the source wiki. End users should generally use the static, generated pages, at <A href="http://incubator.apache.org/sling" class="external-link" rel="nofollow">http://incubator.apache.org/sling</A> since the wiki is typically only necessary for editing content. Below you'll find an overview of the main menu, all pages in this wiki as well as a list of recently modified pages.</TD></TR></TABLE></DIV>
+
+<TABLE class="sectionMacro" border="0" cellpadding="5" cellspacing="0" width="100%"><TBODY><TR>
+<TD class="confluenceTd" valign="top" width="50%">
+<H1><A name="wiki-Menu"></A>Menu</H1>
+<P><B>Documentation</B><BR class="atl-forced-newline">
+<A href="getting-started.html" title="Getting Started">Getting Started</A><BR class="atl-forced-newline">
+<A href="the-sling-engine.html" title="The Sling Engine">The Sling Engine</A><BR class="atl-forced-newline">
+<A href="development.html" title="Development">Development</A><BR class="atl-forced-newline">
+<A href="bundles.html" title="Bundles">Bundles</A><BR class="atl-forced-newline">
+<A href="tutorials-how-tos.html" title="Tutorials & How-Tos">Tutorials &amp; How&#45;Tos</A><BR class="atl-forced-newline">
+<A href="configuration.html" title="Configuration">Configuration</A><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/apidocs/sling6/index.html" class="external-link" rel="nofollow">API docs</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.wiki" class="external-link" rel="nofollow">Wiki</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.faq" class="external-link" rel="nofollow">FAQ</A><BR class="atl-forced-newline"></P>
+
+<P><B>Project info</B><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/site/downloads.cgi" class="external-link" rel="nofollow">Downloads</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/licenses/" class="external-link" rel="nofollow">License</A><BR class="atl-forced-newline">
+<A href="contributing.html" title="Contributing">Contributing</A><BR class="atl-forced-newline">
+<A href="news.html" title="News">News</A><BR class="atl-forced-newline">
+<A href="links.html" title="Links">Links</A><BR class="atl-forced-newline">
+<A href="project-information.html" title="Project Information">Project Information</A><BR class="atl-forced-newline">
+<A href="https://issues.apache.org/jira/browse/SLING" class="external-link" rel="nofollow">Issue Tracker</A><BR class="atl-forced-newline">
+<A href="http://svn.apache.org/viewvc/sling/trunk" class="external-link" rel="nofollow">Browse Source Repository</A><BR class="atl-forced-newline">
+<A href="security.html" title="Security">Security</A><BR class="atl-forced-newline"></P>
+
+<P><B>Sponsorship</B><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/thanks.html" class="external-link" rel="nofollow">Thanks</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/sponsorship.html" class="external-link" rel="nofollow">Become a Sponsor</A><BR>
+<A href="http://www.apache.org/foundation/buy_stuff.html" class="external-link" rel="nofollow">Buy Stuff</A></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>
+  <P style="height: 135px"></P>
+
+<H1><A name="wiki-Recentlyupdatedpages"></A>Recently updated pages</H1>
+    
+
+<DIV class="recently-updated recently-updated-concise">
+
+        <H4 class="sub-heading">Recently Updated</H4>
+        <FIELDSET class="hidden parameters">
+    <INPUT type="hidden" id="changesUrl" value="/confluence/plugins/recently-updated/changes.action?theme=concise&pageSize=15&startIndex=0&spaceKeys=SLINGxSITE">
+</FIELDSET>
+    <DIV class="results-container">
+        <UL>
+                    <LI class="first update-item">
+        <SPAN class="icon-container content-type-page"><A href="navigation.html" title="Apache Sling Website">Navigation</A></SPAN>
+        <DIV class="update-item-desc">updated by <A class="confluence-userlink url fn" data-username="fmeschbe" href="https://cwiki.apache.org/confluence/users/viewuserprofile.action?username=fmeschbe">Felix Meschberger</A></DIV>
+                <DIV class="update-item-changes">(<A href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=76152&selectedPageVersions=47&selectedPageVersions=46">view change</A>)</DIV>
+                <DIV class="update-item-date">a minute ago</DIV>
+    </LI>
+        <LI class=" update-item">
+        <SPAN class="icon-container content-type-page"><A href="security.html" title="Apache Sling Website">Security</A></SPAN>
+        <DIV class="update-item-desc">updated by <A class="confluence-userlink url fn" data-username="fmeschbe" href="https://cwiki.apache.org/confluence/users/viewuserprofile.action?username=fmeschbe">Felix Meschberger</A></DIV>
+                <DIV class="update-item-changes">(<A href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=27844458&selectedPageVersions=2&selectedPageVersions=1">view change</A>)</DIV>
+                <DIV class="update-item-date">3 minutes ago</DIV>
+    </LI>
+        <LI class=" update-item">
+        <SPAN class="icon-container content-type-page"><A href="apache-sling.html" title="Apache Sling Website">Apache Sling</A></SPAN>
+        <DIV class="update-item-desc">updated by <A class="confluence-userlink url fn" data-username="bdelacretaz" href="https://cwiki.apache.org/confluence/users/viewuserprofile.action?username=bdelacretaz">Bertrand Delacretaz</A></DIV>
+                <DIV class="update-item-changes">(<A href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=76151&selectedPageVersions=26&selectedPageVersions=25">view change</A>)</DIV>
+                <DIV class="update-item-date">Apr 03</DIV>
+    </LI>
+        <LI class=" update-item">
+        <SPAN class="icon-container content-type-page"><A href="manipulating-content-the-slingpostservlet-servletspost.html" title="Apache Sling Website">Manipulating Content - The SlingPostServlet (servlets.post)</A></SPAN>
+        <DIV class="update-item-desc">updated by <A class="confluence-userlink url fn" data-username="bdelacretaz" href="https://cwiki.apache.org/confluence/users/viewuserprofile.action?username=bdelacretaz">Bertrand Delacretaz</A></DIV>
+                <DIV class="update-item-changes">(<A href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=85794&selectedPageVersions=47&selectedPageVersions=46">view change</A>)</DIV>
+                <DIV class="update-item-date">Apr 03</DIV>
+    </LI>
+        <LI class=" update-item">
+        <SPAN class="icon-container content-type-page"><A href="manipulating-content-the-slingpostservlet-servletspost.html" title="Apache Sling Website">Manipulating Content - The SlingPostServlet (servlets.post)</A></SPAN>
+        <DIV class="update-item-desc">updated by <A class="confluence-userlink url fn" data-username="edn" href="https://cwiki.apache.org/confluence/users/viewuserprofile.action?username=edn">Eric Norman</A></DIV>
+                <DIV class="update-item-changes">(<A href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=85794&selectedPageVersions=44&selectedPageVersions=43">view change</A>)</DIV>
+                <DIV class="update-item-date">Mar 17</DIV>
+    </LI>
+        <LI class=" update-item">
+        <SPAN class="icon-container content-type-page"><A href="wrap-or-decorate-resources.html" title="Apache Sling Website">Wrap or Decorate Resources</A></SPAN>
+        <DIV class="update-item-desc">updated by <A class="confluence-userlink url fn" data-username="justinedelson" href="https://cwiki.apache.org/confluence/users/viewuserprofile.action?username=justinedelson">Justin Edelson</A></DIV>
+                <DIV class="update-item-changes">(<A href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=23335935&selectedPageVersions=3&selectedPageVersions=2">view change</A>)</DIV>
+                <DIV class="update-item-date">Feb 16</DIV>
+    </LI>
+        <LI class=" update-item">
+        <SPAN class="icon-container content-type-page"><A href="how-to-manage-events-in-sling.html" title="Apache Sling Website">How to Manage Events in Sling</A></SPAN>
+        <DIV class="update-item-desc">updated by <A class="confluence-userlink url fn" data-username="justinedelson" href="https://cwiki.apache.org/confluence/users/viewuserprofile.action?username=justinedelson">Justin Edelson</A></DIV>
+                <DIV class="update-item-changes">(<A href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=23335037&selectedPageVersions=28&selectedPageVersions=27">view change</A>)</DIV>
+                <DIV class="update-item-date">Feb 07</DIV>
+    </LI>
+        <LI class=" update-item">
+        <SPAN class="icon-container content-type-page"><A href="downloads.html" title="Apache Sling Website">Downloads</A></SPAN>
+        <DIV class="update-item-desc">updated by <A class="confluence-userlink url fn" data-username="cziegeler@apache.org" href="https://cwiki.apache.org/confluence/users/viewuserprofile.action?username=cziegeler@apache.org">Carsten Ziegeler</A></DIV>
+                <DIV class="update-item-changes">(<A href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=89119&selectedPageVersions=78&selectedPageVersions=77">view change</A>)</DIV>
+                <DIV class="update-item-date">Feb 07</DIV>
+    </LI>
+        <LI class=" update-item">
+        <SPAN class="icon-container content-type-page"><A href="news.html" title="Apache Sling Website">News</A></SPAN>
+        <DIV class="update-item-desc">updated by <A class="confluence-userlink url fn" data-username="cziegeler@apache.org" href="https://cwiki.apache.org/confluence/users/viewuserprofile.action?username=cziegeler@apache.org">Carsten Ziegeler</A></DIV>
+                <DIV class="update-item-changes">(<A href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=120749&selectedPageVersions=70&selectedPageVersions=69">view change</A>)</DIV>
+                <DIV class="update-item-date">Feb 07</DIV>
+    </LI>
+        <LI class=" update-item">
+        <SPAN class="icon-container content-type-page"><A href="authentication-framework.html" title="Apache Sling Website">Authentication - Framework</A></SPAN>
+        <DIV class="update-item-desc">updated by <A class="confluence-userlink url fn" data-username="justinedelson" href="https://cwiki.apache.org/confluence/users/viewuserprofile.action?username=justinedelson">Justin Edelson</A></DIV>
+                <DIV class="update-item-changes">(<A href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=12845344&selectedPageVersions=8&selectedPageVersions=7">view change</A>)</DIV>
+                <DIV class="update-item-date">Jan 24</DIV>
+    </LI>
+        <LI class=" update-item">
+        <SPAN class="icon-container content-type-page"><A href="news.html" title="Apache Sling Website">News</A></SPAN>
+        <DIV class="update-item-desc">updated by <A class="confluence-userlink url fn" data-username="justinedelson" href="https://cwiki.apache.org/confluence/users/viewuserprofile.action?username=justinedelson">Justin Edelson</A></DIV>
+                <DIV class="update-item-changes">(<A href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=120749&selectedPageVersions=65&selectedPageVersions=64">view change</A>)</DIV>
+                <DIV class="update-item-date">Jan 14</DIV>
+    </LI>
+        <LI class=" update-item">
+        <SPAN class="icon-container content-type-page"><A href="release-management.html" title="Apache Sling Website">Release Management</A></SPAN>
+        <DIV class="update-item-desc">updated by <A class="confluence-userlink url fn" data-username="justinedelson" href="https://cwiki.apache.org/confluence/users/viewuserprofile.action?username=justinedelson">Justin Edelson</A></DIV>
+                <DIV class="update-item-changes">(<A href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=117895&selectedPageVersions=22&selectedPageVersions=21">view change</A>)</DIV>
+                <DIV class="update-item-date">Jan 14</DIV>
+    </LI>
+        <LI class=" update-item">
+        <SPAN class="icon-container content-type-page"><A href="maven-archetypes.html" title="Apache Sling Website">Maven Archetypes</A></SPAN>
+        <DIV class="update-item-desc">updated by <A class="confluence-userlink url fn" data-username="justinedelson" href="https://cwiki.apache.org/confluence/users/viewuserprofile.action?username=justinedelson">Justin Edelson</A></DIV>
+                <DIV class="update-item-changes">(<A href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=24182899&selectedPageVersions=3&selectedPageVersions=2">view change</A>)</DIV>
+                <DIV class="update-item-date">Nov 28</DIV>
+    </LI>
+        <LI class=" update-item">
+        <SPAN class="icon-container content-type-page"><A href="downloads.html" title="Apache Sling Website">Downloads</A></SPAN>
+        <DIV class="update-item-desc">updated by <A class="confluence-userlink url fn" data-username="justinedelson" href="https://cwiki.apache.org/confluence/users/viewuserprofile.action?username=justinedelson">Justin Edelson</A></DIV>
+                <DIV class="update-item-changes">(<A href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=89119&selectedPageVersions=76&selectedPageVersions=75">view change</A>)</DIV>
+                <DIV class="update-item-date">Nov 15</DIV>
+    </LI>
+        <LI class=" update-item">
+        <SPAN class="icon-container content-type-page"><A href="project-team.html" title="Apache Sling Website">Project Team</A></SPAN>
+        <DIV class="update-item-desc">updated by <A class="confluence-userlink url fn" data-username="thecarlhall" href="https://cwiki.apache.org/confluence/users/viewuserprofile.action?username=thecarlhall">Carl Hall</A></DIV>
+                <DIV class="update-item-changes">(<A href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=76195&selectedPageVersions=22&selectedPageVersions=21">view change</A>)</DIV>
+                <DIV class="update-item-date">Nov 10</DIV>
+    </LI>
+        <LI class="more-link-container">
+    <A class="more-link more-link-base" href="https://cwiki.apache.org/confluence/plugins/recently-updated/changes.action?theme=concise&pageSize=15&startHandle=com.atlassian.confluence.pages.Page-27828602&spaceKeys=SLINGxSITE&contentType=-mail,page,comment,blogpost,attachment,userinfo,spacedesc,personalspacedesc,status">
+        <SPAN class="more-link-text">More</SPAN>&nbsp;
+        <IMG class="waiting-image hidden" alt="Please wait" src="https://cwiki.apache.org/confluence/s/2042/9/_/images/icons/wait.gif">
+    </A>
+</LI>
+        </UL>
+    </DIV>
+</DIV>
+</TD>
+
+<TD class="confluenceTd" valign="top" width="50%">
+<H1><A name="wiki-Sitemap"></A>Site map</H1>
+<UL><LI><A href="apache-sling.html" title="Apache Sling">Apache Sling</A><UL><LI><A href="contributing.html" title="Contributing">Contributing</A></LI><LI><A href="documentation.html" title="Documentation">Documentation</A><UL><LI><A href="bundles.html" title="Bundles">Bundles</A><UL><LI><A href="content-loading-jcrcontentloader.html" title="Content Loading (jcr.contentloader)">Content Loading (jcr.contentloader)</A></LI><LI><A href="internationalization-support-i18n.html" title="Internationalization Support (i18n)">Internationalization Support (i18n)</A></LI><LI><A href="jcr-installer-provider.html" title="JCR Installer Provider">JCR Installer Provider</A></LI><LI><A href="managing-users-and-groups-jackrabbitusermanager.html" title="Managing users and groups (jackrabbit.usermanager)">Managing users and groups (jackrabbit.usermanager)</A></LI><LI><A href="managing-permissions-jackrabbitaccessmanager.html" title="Managing permissions (jackrabbit.accessmanager)">Managing permi
 ssions (jackrabbit.accessmanager)</A></LI><LI><A href="manipulating-content-the-slingpostservlet-servletspost.html" title="Manipulating Content - The SlingPostServlet (servlets.post)">Manipulating Content - The SlingPostServlet (servlets.post)</A></LI><LI><A href="mime-type-support-commonsmime.html" title="MIME Type Support (commons.mime)">MIME Type Support (commons.mime)</A></LI><LI><A href="output-rewriting-pipelines-orgapacheslingrewriter.html" title="Output Rewriting Pipelines (org.apache.sling.rewriter)">Output Rewriting Pipelines (org.apache.sling.rewriter)</A></LI><LI><A href="sling-settings-orgapacheslingsettings.html" title="Sling Settings (org.apache.sling.settings)">Sling Settings (org.apache.sling.settings)</A></LI><LI><A href="web-console-extensions.html" title="Web Console Extensions">Web Console Extensions</A></LI><LI><A href="apache-sling-eventing-and-job-handling.html" title="Apache Sling Eventing and Job Handling">Apache Sling Eventing and Job Handling</A><
 /LI><LI><A href="apache-sling-commons-thread-pool.html" title="Apache Sling Commons Thread Pool">Apache Sling Commons Thread Pool</A></LI><LI><A href="osgi-installer.html" title="OSGi Installer">OSGi Installer</A></LI><LI><A href="accessing-filesystem-resources-extensionsfsresource.html" title="Accessing Filesystem Resources (extensions.fsresource)">Accessing Filesystem Resources (extensions.fsresource)</A></LI><LI><A href="bundle-resources-extensionsbundleresource.html" title="Bundle Resources (extensions.bundleresource)">Bundle Resources (extensions.bundleresource)</A></LI><LI><A href="commons-html-utilities.html" title="Commons HTML Utilities">Commons HTML Utilities</A></LI><LI><A href="scheduler-service-commons-scheduler.html" title="Scheduler Service (commons scheduler)">Scheduler Service (commons scheduler)</A></LI></UL></LI><LI><A href="configuration.html" title="Configuration">Configuration</A></LI><LI><A href="development.html" title="Development">Development</A><UL
 ><LI><A href="client-request-logging.html" title="Client Request Logging">Client Request Logging</A></LI><LI><A href="dependency-management.html" title="Dependency Management">Dependency Management</A></LI><LI><A href="embedding-sling.html" title="Embedding Sling">Embedding Sling</A></LI><LI><A href="getting-and-building-sling.html" title="Getting and Building Sling">Getting and Building Sling</A></LI><LI><A href="issue-tracker.html" title="Issue Tracker">Issue Tracker</A></LI><LI><A href="jspc.html" title="JspC">JspC</A></LI><LI><A href="logging.html" title="Logging">Logging</A></LI><LI><A href="maven-archetypes.html" title="Maven Archetypes">Maven Archetypes</A></LI><LI><A href="maven-launchpad-plugin.html" title="Maven Launchpad Plugin">Maven Launchpad Plugin</A></LI><LI><A href="maventipsandtricks.html" title="MavenTipsAndTricks">MavenTipsAndTricks</A></LI><LI><A href="monitoring-requests.html" title="Monitoring Requests">Monitoring Requests</A></LI><LI><A href="release-
 management.html" title="Release Management">Release Management</A></LI><LI><A href="repository-based-development.html" title="Repository Based Development">Repository Based Development</A></LI><LI><A href="sling.html" title="Sling">Sling</A></LI><LI><A href="sling-testing-tools.html" title="Sling Testing Tools">Sling Testing Tools</A></LI><LI><A href="version-policy.html" title="Version Policy">Version Policy</A></LI></UL></LI><LI><A href="getting-started.html" title="Getting Started">Getting Started</A><UL><LI><A href="discover-sling-in-15-minutes.html" title="Discover Sling in 15 minutes">Discover Sling in 15 minutes</A></LI></UL></LI><LI><A href="the-sling-engine.html" title="The Sling Engine">The Sling Engine</A><UL><LI><A href="adapters.html" title="Adapters">Adapters</A></LI><LI><A href="architecture.html" title="Architecture">Architecture</A></LI><LI><A href="authentication.html" title="Authentication">Authentication</A><UL><LI><A href="authentication-actors.html" tit
 le="Authentication - Actors">Authentication - Actors</A></LI><LI><A href="authentication-authenticationhandler.html" title="Authentication - AuthenticationHandler">Authentication - AuthenticationHandler</A><UL><LI><A href="form-based-authenticationhandler.html" title="Form Based AuthenticationHandler">Form Based AuthenticationHandler</A></LI><LI><A href="openid-authenticationhandler.html" title="OpenID AuthenticationHandler">OpenID AuthenticationHandler</A></LI></UL></LI><LI><A href="authentication-framework.html" title="Authentication - Framework">Authentication - Framework</A></LI><LI><A href="authentication-tasks.html" title="Authentication - Tasks">Authentication - Tasks</A></LI></UL></LI><LI><A href="url-decomposition.html" title="URL decomposition">URL decomposition</A></LI><LI><A href="default-mapping-and-rendering.html" title="Default Mapping and Rendering">Default Mapping and Rendering</A></LI><LI><A href="dispatching-requests.html" title="Dispatching Requests">Disp
 atching Requests</A></LI><LI><A href="eventing-and-jobs.html" title="Eventing and Jobs">Eventing and Jobs</A></LI><LI><A href="filters.html" title="Filters">Filters</A></LI><LI><A href="mappings-for-resource-resolution.html" title="Mappings for Resource Resolution">Mappings for Resource Resolution</A></LI><LI><A href="request-parameters.html" title="Request Parameters">Request Parameters</A></LI><LI><A href="resources.html" title="Resources">Resources</A></LI><LI><A href="servlets.html" title="Servlets">Servlets</A></LI><LI><A href="request-listeners.html" title="Request Listeners">Request Listeners</A></LI><LI><A href="wrap-or-decorate-resources.html" title="Wrap or Decorate Resources">Wrap or Decorate Resources</A></LI><LI><A href="errorhandling.html" title="Errorhandling">Errorhandling</A></LI><LI><A href="the-sling-launchpad.html" title="The Sling Launchpad">The Sling Launchpad</A></LI></UL></LI><LI><A href="tutorials-how-tos.html" title="Tutorials & How-Tos">Tutorials &
 amp; How-Tos</A><UL><LI><A href="46-line-blog.html" title="46 Line Blog">46 Line Blog</A></LI><LI><A href="getting-resources-and-properties-in-sling.html" title="Getting Resources and Properties in Sling">Getting Resources and Properties in Sling</A></LI><LI><A href="how-to-manage-events-in-sling.html" title="How to Manage Events in Sling">How to Manage Events in Sling</A></LI><LI><A href="installing-and-upgrading-bundles.html" title="Installing and Upgrading Bundles">Installing and Upgrading Bundles</A></LI><LI><A href="jackrabbit-persistence.html" title="Jackrabbit Persistence">Jackrabbit Persistence</A></LI></UL></LI></UL></LI><LI><A href="downloads.html" title="Downloads">Downloads</A></LI><LI><A href="guides.html" title="Guides">Guides</A></LI><LI><A href="links.html" title="Links">Links</A></LI><LI><A href="media.html" title="Media">Media</A></LI><LI><A href="news.html" title="News">News</A></LI><LI><A href="old-stuff.html" title="Old Stuff">Old Stuff</A><UL><LI><A hre
 f="assembly.html" title="Assembly">Assembly</A></LI><LI><A href="launch-sling.html" title="Launch Sling">Launch Sling</A></LI><LI><A href="request-processing.html" title="Request Processing">Request Processing</A></LI><LI><A href="run-modes-orgapacheslingrunmode.html" title="Run Modes (org.apache.sling.runmode)">Run Modes (org.apache.sling.runmode)</A></LI><LI><A href="scriptengineintegration.html" title="ScriptEngineIntegration">ScriptEngineIntegration</A><UL><LI><A href="groovy-support.html" title="Groovy Support">Groovy Support</A></LI><LI><A href="xslt-processing-pipeline.html" title="XSLT Processing Pipeline">XSLT Processing Pipeline</A></LI></UL></LI><LI><A href="servlet-resolution.html" title="Servlet Resolution">Servlet Resolution</A></LI><LI><A href="sling-api.html" title="Sling API">Sling API</A></LI></UL></LI><LI><A href="plugins.html" title="Plugins">Plugins</A></LI><LI><A href="project-information.html" title="Project Information">Project Information</A><UL><LI>
 <A href="apache-sling-community-roles-and-processes.html" title="Apache Sling Community Roles and Processes">Apache Sling Community Roles and Processes</A></LI><LI><A href="project-license.html" title="Project License">Project License</A></LI><LI><A href="project-team.html" title="Project Team">Project Team</A></LI><LI><A href="security.html" title="Security">Security</A></LI></UL></LI><LI><A href="" title="wiki">wiki</A></LI></UL></LI><LI><A href="navigation.html" title="Navigation">Navigation</A></LI></UL></TD></TR></TBODY></TABLE> 
+        <DIV class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+Last modified by fmeschbe on 2008-02-11 05:59:28.0
+        </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>
+

Propchange: sling/site/trunk/content/site/wiki.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sling/site/trunk/content/site/wiki.html
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: sling/site/trunk/content/site/wiki.html
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: sling/site/trunk/content/site/wrap-or-decorate-resources.html
URL: http://svn.apache.org/viewvc/sling/site/trunk/content/site/wrap-or-decorate-resources.html?rev=1420577&view=auto
==============================================================================
--- sling/site/trunk/content/site/wrap-or-decorate-resources.html (added)
+++ sling/site/trunk/content/site/wrap-or-decorate-resources.html Wed Dec 12 09:13:50 2012
@@ -0,0 +1,112 @@
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<HTML>
+  <HEAD>
+    <TITLE>Apache Sling - Wrap or Decorate Resources</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">
+<P><B>Documentation</B><BR class="atl-forced-newline">
+<A href="getting-started.html" title="Getting Started">Getting Started</A><BR class="atl-forced-newline">
+<A href="the-sling-engine.html" title="The Sling Engine">The Sling Engine</A><BR class="atl-forced-newline">
+<A href="development.html" title="Development">Development</A><BR class="atl-forced-newline">
+<A href="bundles.html" title="Bundles">Bundles</A><BR class="atl-forced-newline">
+<A href="tutorials-how-tos.html" title="Tutorials & How-Tos">Tutorials &amp; How&#45;Tos</A><BR class="atl-forced-newline">
+<A href="configuration.html" title="Configuration">Configuration</A><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/apidocs/sling6/index.html" class="external-link" rel="nofollow">API docs</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.wiki" class="external-link" rel="nofollow">Wiki</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.faq" class="external-link" rel="nofollow">FAQ</A><BR class="atl-forced-newline"></P>
+
+<P><B>Project info</B><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/site/downloads.cgi" class="external-link" rel="nofollow">Downloads</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/licenses/" class="external-link" rel="nofollow">License</A><BR class="atl-forced-newline">
+<A href="contributing.html" title="Contributing">Contributing</A><BR class="atl-forced-newline">
+<A href="news.html" title="News">News</A><BR class="atl-forced-newline">
+<A href="links.html" title="Links">Links</A><BR class="atl-forced-newline">
+<A href="project-information.html" title="Project Information">Project Information</A><BR class="atl-forced-newline">
+<A href="https://issues.apache.org/jira/browse/SLING" class="external-link" rel="nofollow">Issue Tracker</A><BR class="atl-forced-newline">
+<A href="http://svn.apache.org/viewvc/sling/trunk" class="external-link" rel="nofollow">Browse Source Repository</A><BR class="atl-forced-newline">
+<A href="security.html" title="Security">Security</A><BR class="atl-forced-newline"></P>
+
+<P><B>Sponsorship</B><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/thanks.html" class="external-link" rel="nofollow">Thanks</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/sponsorship.html" class="external-link" rel="nofollow">Become a Sponsor</A><BR>
+<A href="http://www.apache.org/foundation/buy_stuff.html" class="external-link" rel="nofollow">Buy Stuff</A></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>
+  <P style="height: 135px"></P>
+    </DIV>
+    <DIV class="main">
+        <DIV class="breadcrump" style="font-size: 80%;">
+<A href="apache-sling.html" title="Apache Sling Website">Apache Sling Website</A>&nbsp;&gt;&nbsp;<A href="apache-sling.html" title="Apache Sling">Apache Sling</A>&nbsp;&gt;&nbsp;<A href="documentation.html" title="Documentation">Documentation</A>&nbsp;&gt;&nbsp;<A href="the-sling-engine.html" title="The Sling Engine">The Sling Engine</A>&nbsp;&gt;&nbsp;<A href="" title="Wrap or Decorate Resources">Wrap or Decorate Resources</A>
+        </DIV>
+<H1><A name="WraporDecorateResources-Servicetowrapresources"></A>Service to wrap resources</H1>
+
+<H2><A name="WraporDecorateResources-Introduction"></A>Introduction</H2>
+
+<P>The Sling API provides an easy way to wrap or decorate a resource before returning. Use cases for this could for example be</P>
+<UL>
+	<LI>overwrite resource type/resource super type (for example based on the resource path)</LI>
+	<LI>add metadata</LI>
+</UL>
+
+
+<H2><A name="WraporDecorateResources-"></A></H2>
+
+<P>To add a resource decorator just register one or more services which implement the interface <TT>ResourceDecorator</TT></P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+<SPAN class="code-keyword">interface</SPAN> ResourceDecorator {
+    Resource decorate(Resource)
+
+    @Deprecated
+    Resource decorate(Resource, HttpServletRequest)
+} 
+</PRE>
+</DIV></DIV>
+
+<P>The registered decorators will be called from the resource resolver for each resource returned. <BR>
+If the service decorates the resource it should return the new resource. If the service does not want to decorate the resource, it should return the original resource or null. </P>
+
+<P>The two-argument {{</P>
+<DIV class="error"><SPAN class="error">Unknown macro: {decorate}</SPAN> </DIV>
+<P>}} method will not be invoked, starting with version 2.1.0 of the JCR Resource bundle. Implementors of this interface targeting both newer and older versions of this bundle are advised to implement this method with:</P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+    <SPAN class="code-keyword">public</SPAN> Resource decorate(Resource resource, HttpServletRequest request) {
+        <SPAN class="code-keyword">return</SPAN> <SPAN class="code-keyword">this</SPAN>.decorate(resource);
+    }
+</PRE>
+</DIV></DIV>
+
+<P>And use some other method (e.g. a {{</P>
+<DIV class="error"><SPAN class="error">Unknown macro: {ThreadLocal}</SPAN> </DIV>
+<P>}}) to obtain the current request if necessary.</P>
+        <DIV class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+Last modified by justinedelson on 2012-02-16 18:23:21.0
+        </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>
+

Propchange: sling/site/trunk/content/site/wrap-or-decorate-resources.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sling/site/trunk/content/site/wrap-or-decorate-resources.html
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: sling/site/trunk/content/site/wrap-or-decorate-resources.html
------------------------------------------------------------------------------
    svn:mime-type = text/plain



Mime
View raw message