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/12/12 10:17:17 UTC

svn commit: r841833 [6/28] - in /websites/staging/sling/trunk/content: ./ site/ site/46-line-blog.data/ site/authentication.data/ site/documentation.data/ site/first-steps.data/ site/getting-and-building-sling.data/ site/how-to-manage-events-in-sling.d...

Added: websites/staging/sling/trunk/content/site/content-loading-jcrcontentloader.html
==============================================================================
--- websites/staging/sling/trunk/content/site/content-loading-jcrcontentloader.html (added)
+++ websites/staging/sling/trunk/content/site/content-loading-jcrcontentloader.html Wed Dec 12 09:16:44 2012
@@ -0,0 +1,394 @@
+
+<!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 - Content Loading (jcr.contentloader)</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="Content Loading (jcr.contentloader)">Content Loading (jcr.contentloader)</A>
+        </DIV>
+<H1><A name="ContentLoading%28jcr.contentloader%29-ContentLoadingandNodetypeSupport"></A>Content Loading and Nodetype Support</H1>
+
+<P>Apache Sling provides support for initial content loading into a repository and for registering node types. The <TT>sling-jcr-contentloader</TT> bundle provides loading of content from a bundle into the repository and the <TT>sling-jcr-base</TT> bundle provides node type registration.</P>
+
+<H2><A name="ContentLoading%28jcr.contentloader%29-InitialContentLoading"></A>Initial Content Loading</H2>
+
+<P>Bundles can provide initial content, which is loaded into the repository when the bundle has entered the <EM>started</EM> state. Such content is expected to be contained in the bundles accessible through the Bundle entry API methods. Content to be loaded is declared in the <TT>Sling-Initial-Content</TT> bundle manifest header. This header takes a comma-separated list of bundle entry paths. Each entry and all its child entries are accessed and entered into starting with the child entries of the listed entries.</P>
+
+<P>Adding this content preserves the paths of the entries as show in this table, which assumes a <TT>Sling-Initial-Content</TT> header entry of <TT>SLING-INF/content</TT>:</P>
+<DIV class="table-wrap">
+<TABLE class="confluenceTable"><TBODY>
+<TR>
+<TH class="confluenceTh"> Entry </TH>
+<TH class="confluenceTh"> Repository Path </TH>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>SLING-INF/content/home</TT> </TD>
+<TD class="confluenceTd"> <TT>/home</TT> </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>SLING-INF/content/content/playground/en/home</TT> </TD>
+<TD class="confluenceTd"> <TT>/content/playground/en/home</TT> </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+<P>Bundle entries are installed as follows:</P>
+<DIV class="table-wrap">
+<TABLE class="confluenceTable"><TBODY>
+<TR>
+<TH class="confluenceTh"> Entry Type </TH>
+<TH class="confluenceTh"> Installation method </TH>
+</TR>
+<TR>
+<TD class="confluenceTd"> Directory </TD>
+<TD class="confluenceTd"> Created as a node of type <TT>nt:folder</TT> unless a content definition file of the same name exists in the same directory as the directory to be installed. Example: A directory <TT>SLING-INF/content/dir</TT> is installed as node <TT>/dir</TT> of type <TT>nt:folder</TT> unless a <TT>SLING-INF/content/dir.xml</TT> or <TT>SLING-INF/content/dir.json</TT> file exists which defines the content for the <TT>/dir</TT> node. </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> File </TD>
+<TD class="confluenceTd"> Unless the file is a content definition file (see below) an <TT>nt:file</TT> node is created for the file and an <TT>nt:resource</TT> node is created as its <TT>jcr:content</TT> child node to take the contents of the bundle file. The properties of the <TT>nt:resource</TT> node are set from file information as available. If the file is a content definition file, the content is created as defined in the file. See below for the content definition file specification. </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+<P>It is possible to modify the intial content loading default behaviour by using certain optional directives. Directives should be specified separated by semicolon. They are defined as follows:</P>
+<DIV class="table-wrap">
+<TABLE class="confluenceTable"><TBODY>
+<TR>
+<TH class="confluenceTh"> Directive </TH>
+<TH class="confluenceTh"> Definition </TH>
+<TH class="confluenceTh"> Default value </TH>
+<TH class="confluenceTh"> Description </TH>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>overwrite</TT> </TD>
+<TD class="confluenceTd"> <TT>overwrite:=(true&#124;false)</TT> </TD>
+<TD class="confluenceTd"> <TT>false</TT> </TD>
+<TD class="confluenceTd"> The overwrite directive specifies if content nodes should be overwritten or just initially added.  If this is true, existing nodes are deleted and a new node is created in the same place. </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>overwriteProperties</TT> </TD>
+<TD class="confluenceTd"> <TT>overwriteProperties:=(true&#124;false)</TT> </TD>
+<TD class="confluenceTd"> <TT>false</TT> </TD>
+<TD class="confluenceTd"> The overwriteProperties directive specifying if content properties should be overwritten or just initially added. </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>uninstall</TT> </TD>
+<TD class="confluenceTd"> <TT>uninstall:=(true&#124;false)</TT> </TD>
+<TD class="confluenceTd"> <TT>overwrite</TT> </TD>
+<TD class="confluenceTd"> The uninstall directive specifies if content should be uninstalled when bundle is unregistered. This value defaults to the value of the <TT>overwrite</TT> directive. </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>path</TT> </TD>
+<TD class="confluenceTd"> <TT>path:=<EM>/target/location</EM></TT> </TD>
+<TD class="confluenceTd"> <TT>/</TT> </TD>
+<TD class="confluenceTd"> The path directive specifies the target node where initial content will be loaded. If the path does not exist yet in the repository, it is created by the content loader. The intermediate nodes are of type <TT>nt:folder</TT>. </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>checkin</TT> </TD>
+<TD class="confluenceTd"> <TT>checkin:=(true&#124;false)</TT> </TD>
+<TD class="confluenceTd"> <TT>false</TT> </TD>
+<TD class="confluenceTd"> The checkin directive specifies whether versionable nodes should be checked in. </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>ignoreImportProviders</TT> </TD>
+<TD class="confluenceTd"> <TT>ignoreImportProviders:=list of extensions</TT> </TD>
+<TD class="confluenceTd"> <TT>empty</TT> </TD>
+<TD class="confluenceTd"> This directive can be used to not run one of the configured extractors (see below). </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+<P>Examples of these directives uses could be (assumes a Sling-Initial-Content header entry of SLING-INF/content):</P>
+<DIV class="table-wrap">
+<TABLE class="confluenceTable"><TBODY>
+<TR>
+<TH class="confluenceTh"> Entry </TH>
+<TH class="confluenceTh"> Behaviour </TH>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>SLING-INF/content/home;overwrite:=true;uninstall:=true</TT> </TD>
+<TD class="confluenceTd"> Overwrites already existing content in <EM>/home</EM> and uninstalls the content when the bundle is unregistered. </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>SLING-INF/content/home;overwriteProperties:=true</TT> </TD>
+<TD class="confluenceTd"> Overwrites properties of existing content in <EM>/home</EM>. </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>SLING-INF/content/home;path:=/sites/sling_website</TT> </TD>
+<TD class="confluenceTd"> if <EM>/sites/sling_website</EM> exists it loads the content into it. Otherwise, it loads the content into root node <EM>/</EM>. </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>SLING-INF/content/home;checkin:=true</TT> </TD>
+<TD class="confluenceTd"> After content loading, versionable nodes are checked in. </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+
+<H2><A name="ContentLoading%28jcr.contentloader%29-Loadinginitialcontentfrombundles"></A>Loading initial content from bundles</H2>
+
+<P>Repository items to be loaded into the repository, when the bundle is first installed, may be defined in four ways:</P>
+<OL>
+	<LI>Directories</LI>
+	<LI>Files</LI>
+	<LI>XML descriptor files</LI>
+	<LI>JSON descriptor files</LI>
+</OL>
+
+
+<P>Depending on the bundle entry found in the location indicated by the Sling-Initial-Content bundle manifest header, nodes are created (and/or updated) as follows:</P>
+
+<H3><A name="ContentLoading%28jcr.contentloader%29-Directories"></A>Directories</H3>
+
+<P>Unless a node with the name of the directory already exists or has been defined in an XML or JSON descriptor file (see below) a directory is created as a node with the primary node type &quot;nt:folder&quot; in the repository.</P>
+
+<H3><A name="ContentLoading%28jcr.contentloader%29-Files"></A>Files</H3>
+
+<P>Unless a node with the name of the file already exists or has been defined in an XML or JSON descriptor file (see below) a file is created as two nodes in the repository. The node bearing the name of the file itself is created with the<BR>
+primary node type &quot;nt:file&quot;. Underneath this file node, a resource node with the primary node type &quot;nt:resource&quot; is created, which is set to the contents of the file.</P>
+
+<P>The MIME type is derived from the file name extension by first trying to resolve it from the Bundle entry URL. If this does not resolve to a MIME type, the Sling MIME type resolution service is used to try to find a mime type. If all fals, the MIME type is defaulted to &quot;application/octet-stream&quot;.&nbsp;&nbsp;</P>
+
+<H3><A name="ContentLoading%28jcr.contentloader%29-XMLDescriptorFiles"></A>XML Descriptor Files</H3>
+
+<P>Nodes, Properties and in fact complete subtrees may be described in XML files using either the JCR SystemView format, or the format described below. In either case, the file must have the .xml extension.</P>
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-xml">
+<SPAN class="code-tag">&lt;node&gt;</SPAN>
+		&lt;!--
+			optional on top level, defaults to XML file name without .xml extension
+	       	required for child nodes
+		--&gt;
+		<SPAN class="code-tag">&lt;name&gt;</SPAN>xyz<SPAN class="code-tag">&lt;/name&gt;</SPAN>
+
+		&lt;!--
+	   		optional, defaults to nt:unstructured
+		--&gt;
+		<SPAN class="code-tag">&lt;primaryNodeType&gt;</SPAN>nt:file<SPAN class="code-tag">&lt;/primaryNodeType&gt;</SPAN>
+
+		&lt;!--
+		    optional mixin node type
+		    may be repeated for multiple mixin node types
+		--&gt;
+		<SPAN class="code-tag">&lt;mixinNodeType&gt;</SPAN>mix:versionable<SPAN class="code-tag">&lt;/mixinNodeType&gt;</SPAN>
+		<SPAN class="code-tag">&lt;mixinNodeType&gt;</SPAN>mix:lockable<SPAN class="code-tag">&lt;/mixinNodeType&gt;</SPAN>
+
+		&lt;!--
+			Optional properties for the node. Each <SPAN class="code-tag">&lt;property&gt;</SPAN> element defines
+			a single property of the node. The element may be repeated.
+		--&gt;
+		<SPAN class="code-tag">&lt;property&gt;</SPAN>
+			&lt;!--
+				required property name
+			--&gt;
+			<SPAN class="code-tag">&lt;name&gt;</SPAN>prop<SPAN class="code-tag">&lt;/name&gt;</SPAN>
+
+			&lt;!--
+				value of the property.
+				For multi-value properties, the values are defined by multiple
+				<SPAN class="code-tag">&lt;value&gt;</SPAN> elements nested inside a <SPAN class="code-tag">&lt;values&gt;</SPAN> element instead of a
+				single <SPAN class="code-tag">&lt;value&gt;</SPAN> element
+			--&gt;
+			<SPAN class="code-tag">&lt;value&gt;</SPAN>property value as string<SPAN class="code-tag">&lt;/value&gt;</SPAN>
+
+			&lt;!--
+				Optional type of the property value, defaults to String.
+				This must be one of the property type strings defined in the
+				JCR PropertyType interface.
+			<SPAN class="code-tag">&lt;type&gt;</SPAN>String<SPAN class="code-tag">&lt;/type&gt;</SPAN>
+		<SPAN class="code-tag">&lt;/property&gt;</SPAN>
+
+		&lt;!--
+			Additional child nodes. May be further nested.
+		--&gt;
+		<SPAN class="code-tag">&lt;node&gt;</SPAN>
+		....
+		<SPAN class="code-tag">&lt;/node&gt;</SPAN>
+	<SPAN class="code-tag">&lt;/node&gt;</SPAN>
+</PRE>
+</DIV></DIV>
+
+<H4><A name="ContentLoading%28jcr.contentloader%29-UsingacustomXMLformat"></A>Using a custom XML format</H4>
+<P>By writing an XSLT stylesheet file, you can use whatever XML format you prefer. The XML file references an XSLT stylesheet by using the xml-stylesheet processing instruction: </P>
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-xml">
+<SPAN class="code-tag">&lt;?xml version=<SPAN class="code-quote">&quot;1.0&quot;</SPAN> encoding=<SPAN class="code-quote">&quot;UTF-8&quot;</SPAN>?&gt;</SPAN>
+<SPAN class="code-tag">&lt;?xml-stylesheet href=<SPAN class="code-quote">&quot;my-transform.xsl&quot;</SPAN> type=<SPAN class="code-quote">&quot;text/xsl&quot;</SPAN>?&gt;</SPAN> <SPAN class="code-tag"><SPAN class="code-comment">&lt;!-- The path to my-transform.xsl is relative to this file --&gt;</SPAN></SPAN>
+
+<SPAN class="code-tag">&lt;your_custom_root_node&gt;</SPAN>
+   <SPAN class="code-tag">&lt;your_custom_element&gt;</SPAN>
+   ...
+   <SPAN class="code-tag">&lt;/your_custom_element&gt;</SPAN>
+...
+<SPAN class="code-tag">&lt;/your_custom_root_node&gt;</SPAN>
+</PRE>
+</DIV></DIV>
+
+<P>The my-transform.xsl file is then responsible for translating your format into one of the supported XML formats:</P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-xml">
+
+&lt;<SPAN class="code-keyword">xsl:stylesheet</SPAN> version=<SPAN class="code-quote">&quot;1.0&quot;</SPAN> <SPAN class="code-keyword">xmlns:jcr</SPAN>=<SPAN class="code-quote">&quot;http://www.jcp.org/jcr/1.0&quot;</SPAN> <SPAN class="code-keyword">xmlns:mix</SPAN>=<SPAN class="code-quote">&quot;http://www.jcp.org/jcr/mix/1.0&quot;</SPAN> 
+  <SPAN class="code-keyword">xmlns:sv</SPAN>=<SPAN class="code-quote">&quot;http://www.jcp.org/jcr/sv/1.0&quot;</SPAN> <SPAN class="code-keyword">xmlns:sling</SPAN>=<SPAN class="code-quote">&quot;http://sling.apache.org/jcr/sling/1.0&quot;</SPAN>
+  <SPAN class="code-keyword">xmlns:rep</SPAN>=<SPAN class="code-quote">&quot;internal&quot;</SPAN> <SPAN class="code-keyword">xmlns:nt</SPAN>=<SPAN class="code-quote">&quot;http://www.jcp.org/jcr/nt/1.0&quot;</SPAN> <SPAN class="code-keyword">xmlns:xsl</SPAN>=<SPAN class="code-quote">&quot;http://www.w3.org/1999/XSL/Transform&quot;</SPAN>&gt;
+
+  <SPAN class="code-tag">&lt;<SPAN class="code-keyword">xsl:template</SPAN> match=<SPAN class="code-quote">&quot;your_custom_element&quot;</SPAN>&gt;</SPAN>
+    <SPAN class="code-tag">&lt;node&gt;</SPAN>
+      ...
+    <SPAN class="code-tag">&lt;/node&gt;</SPAN>
+  <SPAN class="code-tag">&lt;/<SPAN class="code-keyword">xsl:template</SPAN>&gt;</SPAN>
+  ...
+<SPAN class="code-tag">&lt;/<SPAN class="code-keyword">xsl:stylesheet</SPAN>&gt;</SPAN>
+
+</PRE>
+</DIV></DIV>
+
+<H3><A name="ContentLoading%28jcr.contentloader%29-JSONDescriptorFiles"></A>JSON Descriptor Files</H3>
+
+<P>Nodes, Properties and in fact complete subtrees may be described in JSON files using the following skeleton structure (see <A href="http://www.json.org/" class="external-link" rel="nofollow">http://www.json.org</A> or information on the syntax of JSON) :</P>
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+{
+		<SPAN class="code-comment">// optional node name on top level, <SPAN class="code-keyword">default</SPAN> is file name without .json ext.
+</SPAN>		<SPAN class="code-quote">&quot;name&quot;</SPAN>: <SPAN class="code-quote">&quot;nodename&quot;</SPAN>,
+
+		<SPAN class="code-comment">// optional primary node type, <SPAN class="code-keyword">default</SPAN> <SPAN class="code-quote">&quot;nt:unstructured&quot;</SPAN>
+</SPAN>		<SPAN class="code-quote">&quot;primaryNodeType&quot;</SPAN>: <SPAN class="code-quote">&quot;sling:ScriptedComponent&quot;</SPAN>,
+
+		<SPAN class="code-comment">// optional mixin node types as array
+</SPAN>		<SPAN class="code-quote">&quot;mixinNodeTypes&quot;</SPAN>: [ ],
+
+	    <SPAN class="code-comment">// the <SPAN class="code-quote">&quot;properties&quot;</SPAN> property is an object indexed by property name whose
+</SPAN>	    <SPAN class="code-comment">// value is either the string property value, array <SPAN class="code-keyword">for</SPAN> multi-values or
+</SPAN>	    <SPAN class="code-comment">// an object whose value[s] property denotes the property value(s) and
+</SPAN>	    <SPAN class="code-comment">// whose type property denotes the property type
+</SPAN>	    <SPAN class="code-quote">&quot;properties&quot;</SPAN>: {
+	    	<SPAN class="code-quote">&quot;sling:contentClass&quot;</SPAN>: <SPAN class="code-quote">&quot;com.day.sling.jcr.test.Test&quot;</SPAN>,
+	    	<SPAN class="code-quote">&quot;sampleMulti&quot;</SPAN>: [ <SPAN class="code-quote">&quot;v1&quot;</SPAN>, <SPAN class="code-quote">&quot;v2&quot;</SPAN> ],
+	    	<SPAN class="code-quote">&quot;sampleStruct&quot;</SPAN>: {
+	    		<SPAN class="code-quote">&quot;value&quot;</SPAN>: 1,
+	    		<SPAN class="code-quote">&quot;type&quot;</SPAN>: <SPAN class="code-quote">&quot;<SPAN class="code-object">Long</SPAN>&quot;</SPAN>
+	    	}
+	    	<SPAN class="code-quote">&quot;sampleStructMulti&quot;</SPAN>: {
+	    		<SPAN class="code-quote">&quot;value&quot;</SPAN>: [ 1, 2, 3 ],
+	    		<SPAN class="code-quote">&quot;type&quot;</SPAN>: <SPAN class="code-quote">&quot;<SPAN class="code-object">Long</SPAN>&quot;</SPAN>
+	    	}
+	    },
+
+	    <SPAN class="code-comment">// the <SPAN class="code-quote">&quot;nodes&quot;</SPAN> property is an array of objects denoting child nodes. Nodes
+</SPAN>	    <SPAN class="code-comment">// may be further nested.
+</SPAN>		<SPAN class="code-quote">&quot;nodes&quot;</SPAN>: [
+			{
+				<SPAN class="code-comment">// the name property is required on (nested) child nodes
+</SPAN>	            <SPAN class="code-quote">&quot;name&quot;</SPAN>: <SPAN class="code-quote">&quot;sling:scripts&quot;</SPAN>,
+
+				<SPAN class="code-quote">&quot;primaryNodeType&quot;</SPAN>: <SPAN class="code-quote">&quot;sling:ScriptList&quot;</SPAN>,
+
+				<SPAN class="code-quote">&quot;nodes&quot;</SPAN>: [
+					{
+						<SPAN class="code-quote">&quot;primaryNodeType&quot;</SPAN>: <SPAN class="code-quote">&quot;sling:Script&quot;</SPAN>,
+						<SPAN class="code-quote">&quot;properties&quot;</SPAN>: {
+							<SPAN class="code-quote">&quot;sling:name&quot;</SPAN>: <SPAN class="code-quote">&quot;/test/content/jsp/start.jsp&quot;</SPAN>,
+							<SPAN class="code-quote">&quot;sling:type&quot;</SPAN>: <SPAN class="code-quote">&quot;jsp&quot;</SPAN>,
+							<SPAN class="code-quote">&quot;sling:glob&quot;</SPAN>: <SPAN class="code-quote">&quot;*&quot;</SPAN>
+						}
+					}
+				]
+			}
+		]
+	}
+</PRE>
+</DIV></DIV>
+
+<H3><A name="ContentLoading%28jcr.contentloader%29-Extractors"></A>Extractors</H3>
+
+<P>By default, the <TT>sling-jcr-contentloader</TT> bundle tries to extract certain file types during content loading. These include <TT>json</TT>, <TT>xml</TT>, <TT>zip</TT>, and <TT>jar</TT> files. Therefore all available extractors are used for content processing. However if some files should be put into the repository unextracted, the <TT>ignoreImportProviders</TT> directive can be used with a comma separated list of extensions that should not be extracted, like <TT>ignoreImportProviders:=&quot;jar,zip&quot;</TT>. Please note that the value needs to be put into quotation marks if more than one value is used like in the example.</P>
+
+<H3><A name="ContentLoading%28jcr.contentloader%29-WorkspaceTargetting"></A>Workspace Targetting</H3>
+
+<P>By default, initial content will be loaded into the default workspace. To override this, add a <TT>Sling-Initial-Content-Workspace</TT> bundle manifest header to specify the manifest. Note that <B>all</B> content from a bundle will be loaded into the same workspace. </P>
+
+<H2><A name="ContentLoading%28jcr.contentloader%29-DeclaredNodeTypeRegistration"></A>Declared Node Type Registration</H2>
+
+<P>The <TT>sling-jcr-base</TT> bundle provides low-level repository operations which are at the heart of the functionality of Sling:</P>
+<UL>
+	<LI><B>Node Type Definitions</B> &#45; The class <TT>org.apache.sling.content.jcr.base.NodeTypeLoader</TT> provides methods to register custom node types with a repository given a repository session and a node type definition file in CND format. This class is also used by this bundle to register node types on behalf of other bundles.</LI>
+</UL>
+
+
+<P>Bundles may list node type definition files in CND format in the <TT>Sling-Nodetypes</TT> bundle header. This header is a comma-separated list of resources in the respective bundle. Each resource is taken and fed to the <TT>NodeTypeLoader</TT> to define the node types.</P>
+
+<P>After a bundle has entered the <EM>resolved</EM> state, the node types listed in the <TT>Sling-Nodetypes</TT> bundle header are registered with the repository.</P>
+
+<P>Node types installed by this mechanism will never be removed again by the <TT>sling-jcr-base</TT> bundle. </P>
+
+<P>Starting with revision 911430, re-registration of existing node types is enabled by default. To disable this, add <TT>;rereigster:=false</TT> to the resource names for which re-registration should be disabled.</P>
+
+<DIV class="panelMacro"><TABLE class="warningMacro"><COLGROUP><COL width="24"><COL></COLGROUP><TR><TD valign="top"><IMG src="https://cwiki.apache.org/confluence/images/icons/emoticons/forbidden.gif" width="16" height="16" align="absmiddle" alt="" border="0"></TD><TD>Support for re-registration of node types is relatively limited. In Jackrabbit, for example, only &quot;trivial&quot; changes are allowed.</TD></TR></TABLE></DIV>
+
+<H3><A name="ContentLoading%28jcr.contentloader%29-Automatedtests"></A>Automated tests</H3>
+
+<P>The initial content found in the <A href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/content/src/main/resources/content/sling-test" class="external-link" rel="nofollow">sling-test folder of the launchpad initial content</A> is verified by the <A href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/InitialContentTest.java" class="external-link" rel="nofollow">InitialContentTest</A> when running the <EM>launchpad/testing</EM> integration tests.</P>
+
+<P>Those tests can be used as verified examples of initial content loading. Contributions are welcome to improve the coverage of those tests.</P>
+        <DIV class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+Last modified by edn on 2010-08-06 18:34: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>
+

Added: websites/staging/sling/trunk/content/site/content-loading.html
==============================================================================
--- websites/staging/sling/trunk/content/site/content-loading.html (added)
+++ websites/staging/sling/trunk/content/site/content-loading.html Wed Dec 12 09:16:44 2012
@@ -0,0 +1,192 @@
+
+<!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 - Content Loading</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">
+                                    <P style="display: none"></P>
+
+<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><SPAN class="nobr"><A href="http://incubator.apache.org/sling/site/downloads.cgi" title="Visit page outside Confluence" rel="nofollow">Downloads<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="contributing.html" title="Contributing">Contributing</A></LI>
+	<LI><A href="links.html" title="Links">Links</A></LI>
+	<LI><SPAN class="nobr"><A href="http://cwiki.apache.org/SLING/faq.html" title="Visit page outside Confluence" rel="nofollow">FAQ<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://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://incubator.apache.org/sling/apidocs/sling5/index.html" title="Visit page outside Confluence" rel="nofollow">Sling 5 API<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/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>
+
+<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: 100px"></P>
+</LI>
+</UL>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        </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="advanced-topics.html" title="Advanced Topics">Advanced Topics</A>&nbsp;&gt;&nbsp;<A href="" title="Content Loading">Content Loading</A>
+        </DIV>
+<H1><A name="ContentLoading-ContentLoadingandNodetypeSupport"></A>Content Loading and Nodetype Support</H1>
+
+<P>Apache Sling provides support for initial content loading into a repository and for registering node types. The <TT>sling-jcr-contentloader</TT> bundle provides loading of content from a bundle into the repository and the <TT>sling-jcr-base</TT> bundle provides node type registration.</P>
+
+
+<H2><A name="ContentLoading-DeclaredNodeTypeRegistration"></A>Declared Node Type Registration</H2>
+
+<P>The <TT>sling-jcr-base</TT> bundle provides low-level repository operations which are at the heart of the functionality of Sling:</P>
+<UL>
+	<LI><B>Node Type Definitions</B> &#45; The class <TT>org.apache.sling.content.jcr.base.NodeTypeLoader</TT> provides methods to register custom node types with a repository given a repository session and a node type definition file in CND format. This class is also used by this bundle to register node types on behalf of other bundles.</LI>
+</UL>
+
+
+<P>Bundles may list node type definition files in CND format in the <TT>Sling-Nodetypes</TT> bundle header. This header is a comma-separated list of resources in the respective bundle. Each resource is taken and fed to the <TT>NodeTypeLoader</TT> to define the node types.</P>
+
+<P>After a bundle has entered the <EM>resolved</EM> state, the node types listed in the <TT>Sling-Nodetypes</TT> bundle header are registered with the repository.</P>
+
+<P>Node types installed by this mechanism will never be removed again by the <TT>sling-jcr-base</TT> bundle. Likewise, registered node types cannot currently be modified using this feature. The <TT>NodeTypeLoader</TT> will try to load nodes defined and fail with a log message if a node type has already been defined. To update existing node type definitions, native repository functionality has to be used.</P>
+
+<P>Nodetype management is currently a problematic issue, as the only API available is contained in the Jackrabbit Core library, which is generally not available to client applications - unless running in the same VM and class loader hierarchy as the Repository. Version 2 of the JCR Specification currently being developped as JSR-283 should fix this issue by providing an official node type management API. Until then, this approach is about the only solution we have.</P>
+
+<H2><A name="ContentLoading-InitialContentLoading"></A>Initial Content Loading</H2>
+
+<P>Bundles can provide initial content, which is loaded into the repository when the bundle has entered the <EM>started</EM> state. Such content is expected to be contained in the bundles accessible through the Bundle entry API methods. Content to be loaded is declared in the <TT>Sling-Initial-Content</TT> bundle manifest header. This header takes a comma-separated list of bundle entry paths. Each entry and all its child entries are accessed and entered into starting with the child entries of the listed entries.</P>
+
+<P>Adding this content preserves the paths of the entries as show in this table, which assumes a <TT>Sling-Initial-Content</TT> header entry of <TT>SLING-INF/content</TT>:</P>
+<TABLE class="confluenceTable"><TBODY>
+<TR>
+<TH class="confluenceTh"> Entry </TH>
+<TH class="confluenceTh"> Repository Path </TH>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>SLING-INF/content/home</TT> </TD>
+<TD class="confluenceTd"> <TT>/home</TT> </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>SLING-INF/content/content/playground/en/home</TT> </TD>
+<TD class="confluenceTd"> <TT>/content/playground/en/home</TT> </TD>
+</TR>
+</TBODY></TABLE>
+<P>Bundle entries are installed as follows:</P>
+<TABLE class="confluenceTable"><TBODY>
+<TR>
+<TH class="confluenceTh"> Entry Type </TH>
+<TH class="confluenceTh"> Installation method </TH>
+</TR>
+<TR>
+<TD class="confluenceTd"> Directory </TD>
+<TD class="confluenceTd"> Created as a node of type <TT>nt:folder</TT> unless a content definition file of the same name exists in the same directory as the directory to be installed. Example: A directory <TT>SLING-INF/content/dir</TT> is installed as node <TT>/dir</TT> of type <TT>nt:folder</TT> unless a <TT>SLING-INF/content/dir.xml</TT> or <TT>SLING-INF/content/dir.json</TT> file exists which defines the content for the <TT>/dir</TT> node. </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> File </TD>
+<TD class="confluenceTd"> Unless the file is a content definition file (see below) an <TT>nt:file</TT> node is created for the file and an <TT>nt:resource</TT> node is created as its <TT>jcr:content</TT> child node to take the contents of the bundle file. The properties of the <TT>nt:resource</TT> node are set from file information as available. If the file is a content definition file, the content is created as defined in the file. See below for the content definition file specification. </TD>
+</TR>
+</TBODY></TABLE>
+<P>It is possible to modify the intial content loading default behaviour by using certain optional directives. Directives should be specified separated by semicolon. They are defined as follows:</P>
+<TABLE class="confluenceTable"><TBODY>
+<TR>
+<TH class="confluenceTh"> Directive </TH>
+<TH class="confluenceTh"> Definition </TH>
+<TH class="confluenceTh"> Default value </TH>
+<TH class="confluenceTh"> Description </TH>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>overwrite</TT> </TD>
+<TD class="confluenceTd"> <TT>overwrite:=(true&#124;false)</TT> </TD>
+<TD class="confluenceTd"> <TT>false</TT> </TD>
+<TD class="confluenceTd"> The overwrite directive specifies if content should be overwritten or just initially added. </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>uninstall</TT> </TD>
+<TD class="confluenceTd"> <TT>uninstall:=(true&#124;false)</TT> </TD>
+<TD class="confluenceTd"> <TT>overwrite</TT> </TD>
+<TD class="confluenceTd"> The uninstall directive specifies if content should be uninstalled when bundle is unregistered. This value defaults to the value of the <TT>overwrite</TT> directive.</TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>path</TT> </TD>
+<TD class="confluenceTd"> <TT>path:=<EM>/target/location</EM></TT> </TD>
+<TD class="confluenceTd"> <TT>/</TT> </TD>
+<TD class="confluenceTd"> The path directive specifies the target node where initial content will be loaded. If the path does not exist yet in the repository, it is created by the content loader. The intermediate nodes are of type <TT>nt:folder</TT>.</TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>checkin</TT> </TD>
+<TD class="confluenceTd"> <TT>checkin:=(true&#124;false)</TT> </TD>
+<TD class="confluenceTd"> <TT>false</TT> </TD>
+<TD class="confluenceTd"> The checkin directive specifies whether versionable nodes should be checked in. </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>ignoreImportProviders</TT> </TD>
+<TD class="confluenceTd"> <TT>ignoreImportProviders:=list of extensions</TT> </TD>
+<TD class="confluenceTd"> <TT>empty</TT> </TD>
+<TD class="confluenceTd"> This directive can be used to not run one of the configured extractors (see below). </TD>
+</TR>
+</TBODY></TABLE>
+<P>Examples of these directives uses could be (assumes a Sling-Initial-Content header entry of SLING-INF/content):</P>
+<TABLE class="confluenceTable"><TBODY>
+<TR>
+<TH class="confluenceTh"> Entry </TH>
+<TH class="confluenceTh"> Behaviour </TH>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>SLING-INF/content/home;overwrite:=true;uninstall:=true</TT> </TD>
+<TD class="confluenceTd"> Overwrites already existing content in <EM>/home</EM> and uninstalls the content when the bundle is unregistered. </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>SLING-INF/content/home;path:=/sites/sling_website</TT> </TD>
+<TD class="confluenceTd"> if <EM>/sites/sling_website</EM> exists it loads the content into it. Otherwise, it loads the content into root node <EM>/</EM>.  </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>SLING-INF/content/home;checkin:=true</TT> </TD>
+<TD class="confluenceTd"> After content loading, versionable nodes are checked in. </TD>
+</TR>
+</TBODY></TABLE>
+
+<H3><A name="ContentLoading-Extractors"></A>Extractors</H3>
+
+<P>By default, the <TT>sling-jcr-contentloader</TT> bundle tries to extract certain file types during content loading. These include <TT>json</TT>, <TT>xml</TT>, <TT>zip</TT>, and <TT>jar</TT> files. Therefore all available extractors are used for content processing. However if some files should be put into the repository unextracted, the <TT>ignoreImportProviders</TT> directive can be used with a comma separated list of extensions that should not be extracted, like <TT>ignoreImportProviders:=jar,zip</TT>.</P>
+
+<H3><A name="ContentLoading-ContentDefinitionFileSpecification"></A>Content Definition File Specification</H3>
+
+<P>Structured content may be specified in content specification file in <SPAN class="nobr"><A href="http://www.json.org/" title="Visit page outside Confluence" rel="nofollow">JSON<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> or XML format which define subtrees of content. A content definition file contains the definition of a single node with optional properties and child nodes. Each child node may again have its properties and child nodes. The definition of a node is as follows:</P>
+
+<P><B>JSON</B></P>
+<DIV class="preformatted"><DIV class="preformattedContent">
+<PRE>... *TODO* ...
+</PRE>
+</DIV></DIV>
+<P><B>XML</B></P>
+<DIV class="preformatted"><DIV class="preformattedContent">
+<PRE>... *TODO* ...
+</PRE>
+</DIV></DIV>
+
+<H3><A name="ContentLoading-Automatedtests"></A>Automated tests</H3>
+<P>The initial content found in the <SPAN class="nobr"><A href="http://svn.apache.org/repos/asf/incubator/sling/trunk/launchpad/content/src/main/resources/content/sling-test" title="Visit page outside Confluence" rel="nofollow">sling-test folder of the launchpad initial content<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> is verified by the <SPAN class="nobr"><A href="http://svn.apache.org/repos/asf/incubator/sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/InitialContentTest.java" title="Visit page outside Confluence" rel="nofollow">InitialContentTest<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> when running the <EM>launchpad/testing</EM> integration tests.</P>
+
+<P>Those tests can be used as verified examples of initial content loading. Contributions are welcome to improve the coverage of those tests.</P>
+        <DIV class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+Last modified by bdelacretaz on Fri May 15 22:41:03 PDT 2009
+        </DIV>
+    </DIV>
+  </BODY>
+</HTML>
+

Added: websites/staging/sling/trunk/content/site/contributing.html
==============================================================================
--- websites/staging/sling/trunk/content/site/contributing.html (added)
+++ websites/staging/sling/trunk/content/site/contributing.html Wed Dec 12 09:16:44 2012
@@ -0,0 +1,91 @@
+
+<!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 - Contributing</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="" 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="Contributing">Contributing</A>
+        </DIV>
+<H1><A name="Contributing-Contributing"></A>Contributing</H1>
+
+<P>See <A href="project-information.html" title="Project Information">Project Information</A> for details about the tools mentioned below.</P>
+
+<P>Apache Sling is a volunteer effort, so there is always plenty of work that needs to be accomplished. If you want to help support Sling, this page is intended as a starting point for specific contribution ideas. To further understand how the Sling community operates, refer to the Community Roles and Processes document and/or join the mailing lists.</P>
+
+<P>The Sling project organizes its &quot;to do&quot; list using the JIRA issue tracking system. Specific items from Sling's JIRA issue tracking system are highlighted on this page, but are not limited to it. The purpose of the list here is to highlight issues that are either more important or serve as good entry points for new contributors.</P>
+
+<P>It is important to point out that you do not need to be a programmer to contribute to Sling. As such, we will break out the list of issues below for non-programmers and programmers.</P>
+
+<H2><A name="Contributing-NonProgrammers"></A>Non-Programmers</H2>
+
+<UL>
+	<LI>Improve web site or documentation (e.g., create/propose FAQ entries). There is no specific JIRA issue for this task, but any contributions could be posted as new JIRA issues for the Documentation component.</LI>
+</UL>
+
+
+<H2><A name="Contributing-Programmers"></A>Programmers</H2>
+
+<UL>
+	<LI>Implement support for various rendering technologies in Sling. Examples coming to mind are JSF and Wicket.</LI>
+</UL>
+
+        <DIV class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+Last modified by bdelacretaz on 2010-04-30 03:10:58.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>
+

Added: websites/staging/sling/trunk/content/site/default-mapping-and-rendering.html
==============================================================================
--- websites/staging/sling/trunk/content/site/default-mapping-and-rendering.html (added)
+++ websites/staging/sling/trunk/content/site/default-mapping-and-rendering.html Wed Dec 12 09:16:44 2012
@@ -0,0 +1,69 @@
+
+<!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 - Default Mapping and Rendering</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="Default Mapping and Rendering">Default Mapping and Rendering</A>
+        </DIV>
+<P>This page contained obsolete content, moved it to <A href="http://cwiki.apache.org/confluence/display/SLING/Default%20Mapping%20and%20Rendering%20(OBSOLETE)" class="external-link" rel="nofollow">http://cwiki.apache.org/confluence/display/SLING/Default+Mapping+and+Rendering+%28OBSOLETE%29</A> in case it is useful to someone.</P>
+        <DIV class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+Last modified by bdelacretaz on 2010-02-04 10:52:37.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>
+

Added: websites/staging/sling/trunk/content/site/dependency-management.html
==============================================================================
--- websites/staging/sling/trunk/content/site/dependency-management.html (added)
+++ websites/staging/sling/trunk/content/site/dependency-management.html Wed Dec 12 09:16:44 2012
@@ -0,0 +1,187 @@
+
+<!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 - Dependency Management</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="Dependency Management">Dependency Management</A>
+        </DIV>
+<H1><A name="DependencyManagement-DependencyManagement"></A>Dependency Management </H1>
+
+<P>This page is about how we do and don't do dependency management in the Sling project.</P>
+
+<DIV>
+<UL>
+    <LI><A href="#DependencyManagement-Introduction">Introduction</A></LI>
+    <LI><A href="#DependencyManagement-DependencyManagement">Dependency Management</A></LI>
+    <LI><A href="#DependencyManagement-References">References</A></LI>
+</UL></DIV>
+
+<H2><A name="DependencyManagement-Introduction"></A>Introduction</H2>
+
+<P>Maven provides projects with a nice feature called dependency management. In Sling we currently use this feature to declare the non-Sling dependencies of modules in the parent POM.</P>
+
+<P>After working with this some time and trying to upgrade various dependencies we came to the conclusion, that using Maven dependency management is not going to work out in the Sling scenario.</P>
+
+<P>Why ? Maven's dependency management is aimed at traditional applicaitons, which are glued together statically during the build process. For this environment, dependency management is a great thing, since it guarantees a consistent application setup.</P>
+
+<P>In a dynamic application setup as provided by an OSGi framework the static dependency management of Maven does not help. Actually it even causes problematic results with respect to backwards compatibility when using the Maven Bundle plugin.</P>
+
+<P>Why's that ? The Maven Bundle plugin is constructs the bundle manifest and will generally automatically create the Import-Package header. If the providing library (from maven's dependency list) has <TT>Export-Package</TT> headers with version numbers, the Maven Bundle plugin will insert the respective version numbers for the <TT>Import-Package</TT> header. This makes perfect sense, because it is expected, that the artifact required at least the given package version.</P>
+
+<P>When using Maven dependency management, upgrading any dependencies in the parent POM may automatically increse the version numbers in the <TT>Import-Package</TT> headers and hence may cause any such bundle to fail resolution if deployed - even though the bundle did not change and does not really require a new version of the dependency.</P>
+
+<P>So, in the case of OSGi deployment, Maven's dependency management actually interferes with the OSGi framework dependency management.</P>
+
+<P>As a consequence, I suggest we drop dependency management in the parent pom (almost) completely and state the followin.</P>
+
+
+<H2><A name="DependencyManagement-DependencyManagement"></A>Dependency Management</H2>
+
+
+<P>The parent pom only does dependency management for build time dependencies and a very limited number of API dependencies used Sling wide. These dependencies are:</P>
+
+<UL>
+	<LI>All plugin dependencies. That is <TT>PluginManagement</TT> is still used. Maven plugins are actualy build time dependencies and therefore have no influence on the actual deployment.</LI>
+	<LI>Dependencies on commonly used testing environment helpers. Test helper classes are also build time dependencies used to run the unit and integration tests. As such, they may well be managed.</LI>
+	<LI>Sling makes a small number of assumptions about the environment, which we codify in the dependency management: The minimum version number of the OSGi specificaiton used, the servlet API version and the JCR API version.</LI>
+</UL>
+
+
+<P>The <TT>&lt;DependencyManagement&gt;</TT> element currently contains the following managed dependencies:</P>
+
+<DIV class="table-wrap">
+<TABLE class="confluenceTable"><TBODY>
+<TR>
+<TH class="confluenceTh"> Group ID </TH>
+<TH class="confluenceTh"> Artifact ID </TH>
+<TH class="confluenceTh"> Version </TH>
+<TH class="confluenceTh"> Scope </TH>
+</TR>
+<TR>
+<TD class="confluenceTd"> org.apache.felix </TD>
+<TD class="confluenceTd"> org.osgi.core </TD>
+<TD class="confluenceTd"> 1.2.0 </TD>
+<TD class="confluenceTd"> provided </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> org.apache.felix </TD>
+<TD class="confluenceTd"> org.osgi.compendium </TD>
+<TD class="confluenceTd"> 1.2.0 </TD>
+<TD class="confluenceTd"> provided </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> javax.servlet </TD>
+<TD class="confluenceTd"> servlet-api </TD>
+<TD class="confluenceTd"> 2.4 </TD>
+<TD class="confluenceTd"> provided </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> javax.jcr </TD>
+<TD class="confluenceTd"> jcr </TD>
+<TD class="confluenceTd"> 1.0 </TD>
+<TD class="confluenceTd"> provided </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> org.slf4j </TD>
+<TD class="confluenceTd"> slf4j-api </TD>
+<TD class="confluenceTd"> 1.5.2 </TD>
+<TD class="confluenceTd"> provided </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> junit </TD>
+<TD class="confluenceTd"> junit </TD>
+<TD class="confluenceTd"> 4.3 </TD>
+<TD class="confluenceTd"> test </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> org.jmock </TD>
+<TD class="confluenceTd"> jmock-junit4 </TD>
+<TD class="confluenceTd"> 2.2.0 </TD>
+<TD class="confluenceTd"> test </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> org.slf4j </TD>
+<TD class="confluenceTd"> slf4j-simple </TD>
+<TD class="confluenceTd"> 1.5.2 </TD>
+<TD class="confluenceTd"> test </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+
+
+<P>All dependencies per module are fully described in terms of version, scope, and classifier by the respective project.</P>
+
+<P>The version of the module dependency should be selected according to the following rule: The lowest version providing the functionality required by the module (or bundle). By required functionality we bascially mean provided API.</P>
+
+<P>Generally there is a constant flow of releases of dependent libraries. In general this should not cause the dependency version number of a using module to be increased. There is one exception though: If the fixed library version contains a bug fix, which has an influence on the operation of the module, an increase in the version number is indicated and should also be applied.</P>
+
+
+<H2><A name="DependencyManagement-References"></A>References</H2>
+
+<UL>
+	<LI><A href="http://markmail.org/message/5qpmsukdk4mdacdy" class="external-link" rel="nofollow">Dependency ManagementLink to this message</A> &ndash; Discussion thread about reducing Maven 2 <TT>DependencyManagement</TT></LI>
+	<LI><A href="https://issues.apache.org/jira/browse/SLING-811" class="external-link" rel="nofollow">SLING-811</A> &ndash; The actual issue governing the changes to the project descriptors</LI>
+</UL>
+
+        <DIV class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+Last modified by fmeschbe on 2009-04-07 07:01:55.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>
+

Added: websites/staging/sling/trunk/content/site/development.html
==============================================================================
--- websites/staging/sling/trunk/content/site/development.html (added)
+++ websites/staging/sling/trunk/content/site/development.html Wed Dec 12 09:16:44 2012
@@ -0,0 +1,114 @@
+
+<!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 - Development</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="" 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="" title="Development">Development</A>
+        </DIV>
+<H1><A name="Development-Development"></A>Development</H1>
+
+<P>Welcome to the wonderful world of extending Sling. Refer to these pages to find out how we envision the extension of Sling and how to do it.</P>
+
+
+<H2><A name="Development-UsingSlingasyourDevelopmentFramework"></A>Using Sling as your Development Framework</H2>
+
+<P>Look here for more information on developper support when your are using Sling to build your own applications.</P>
+
+<UL>
+	<LI><A href="getting-and-building-sling.html" title="Getting and Building Sling">Getting and Building Sling</A></LI>
+	<LI><A href="embedding-sling.html" title="Embedding Sling">Embedding Sling</A></LI>
+	<LI><A href="logging.html" title="Logging">Logging</A></LI>
+	<LI><A href="client-request-logging.html" title="Client Request Logging">Client Request Logging</A></LI>
+	<LI><A href="monitoring-requests.html" title="Monitoring Requests">Monitoring Requests</A></LI>
+	<LI><A href="repository-based-development.html" title="Repository Based Development">Repository Based Development</A></LI>
+	<LI><A href="sling-testing-tools.html" title="Sling Testing Tools">Sling Testing Tools</A></LI>
+</UL>
+
+
+
+<H2><A name="Development-Maven2stuff"></A>Maven 2 stuff</H2>
+
+<P>Sling is using Apache Maven as it build system. Over time we have created a number of Maven 2 Plugins and gathered a whole range of knowledge about using Maven.</P>
+
+<UL>
+	<LI><A href="maventipsandtricks.html" title="MavenTipsAndTricks">Maven Tips &amp; Tricks</A></LI>
+	<LI><A href="sling.html" title="Sling">Maven Sling Plugin</A></LI>
+	<LI><A href="jspc.html" title="JspC">Maven JspC Plugin</A></LI>
+	<LI><A href="maven-launchpad-plugin.html" title="Maven Launchpad Plugin">Maven Launchpad Plugin</A></LI>
+	<LI><A href="maven-archetypes.html" title="Maven Archetypes">Maven Archetypes</A></LI>
+</UL>
+
+
+
+<H3><A name="Development-SlingDevelopment"></A>Sling Development</H3>
+
+<P>Last but not least, here is some more information on how we ourselves are working on Sling</P>
+
+<UL>
+	<LI><A href="dependency-management.html" title="Dependency Management">Dependency Management</A></LI>
+	<LI><A href="version-policy.html" title="Version Policy">Version Policy</A></LI>
+	<LI><A href="issue-tracker.html" title="Issue Tracker">Issue Tracker</A></LI>
+	<LI><A href="release-management.html" title="Release Management">Release Management</A></LI>
+</UL>
+
+        <DIV class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+Last modified by fmeschbe on 2011-09-04 04:46:52.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>
+