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

svn commit: r818667 [7/18] - in /websites/staging/sling/trunk/content: ./ authentication/ documentation/ documentation/bundles/ documentation/development/ documentation/getting-started/ documentation/the-sling-engine/ documentation/the-sling-engine/aut...

Added: websites/staging/sling/trunk/content/documentation/development/getting-and-building-sling.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/development/getting-and-building-sling.html (added)
+++ websites/staging/sling/trunk/content/documentation/development/getting-and-building-sling.html Tue May 22 09:41:22 2012
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+  <head>
+    <title>Apache Sling - Getting and Building Sling</title>
+    <link rel="stylesheet" href="/css/site.css" type="text/css" media="all">
+    <link rel="icon" href="http://sling.apache.org/site/media.data/favicon.ico">
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+  </head>
+  <body>
+    <div class="title">
+      <div class="logo">
+        <a href="http://sling.apache.org/site/index.html">
+          <img border="0" alt="Apache Sling" src="http://sling.apache.org/site/media.data/logo.png">
+        </a>
+      </div>
+      <div class="header">
+        <a href="http://www.apache.org/">
+          <img border="0" alt="Apache" src="http://sling.apache.org/site/media.data/apache.png">
+        </a>
+      </div>
+    </div>
+    
+    <div class="menu"> 
+      <p><strong>Documentation</strong> <br />
+<a href="/getting-started.html">Getting Started</a> <br />
+<a href="/the-sling-engine.html">The Sling Engine</a> <br />
+<a href="/development.html">Development</a> <br />
+<a href="/bundles.html">Bundles</a> <br />
+<a href="/tutorials-how-tos.html">Tutorials &amp; How-Tos</a> <br />
+<a href="/configuration.html">Configuration</a> <br />
+<a href="http://s.apache.org/sling.wiki">Wiki</a> <br />
+<a href="http://s.apache.org/sling.faq">FAQ</a> <br />
+<a href="/sitemap.html">Site Map</a></p>
+<p><strong>API Docs</strong>  <br />
+<a href="http://sling.apache.org/apidocs/sling6/index.html">Sling 6</a> <br />
+<a href="http://sling.apache.org/apidocs/sling5/index.html">Sling 5</a> <br />
+</p>
+<p><strong>Project info</strong> <br />
+<a href="http://sling.apache.org/site/downloads.cgi">Downloads</a> <br />
+<a href="http://www.apache.org/licenses/">License</a> <br />
+<a href="/contributing.html">Contributing</a> <br />
+<a href="/news.html">News</a> <br />
+<a href="/links.html">Links</a> <br />
+<a href="/project-information.html">Project Information</a> <br />
+<a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a> <br />
+<a href="http://svn.apache.org/viewvc/sling/trunk">Browse Source Repository</a> <br />
+<a href="/security.html">Security</a> <br />
+</p>
+<p><strong>Sponsorship</strong> <br />
+<a href="http://www.apache.org/foundation/thanks.html">Thanks</a> <br />
+<a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a> <br />
+<a href="http://www.apache.org/foundation/buy_stuff.html">Buy Stuff</a> <br />
+</p>
+<iframe 
+    src="http://www.apache.org/ads/button.html"
+    style="border-width:0; float: left" frameborder="0" 
+    scrolling="no"
+    width="135" 
+    height="135">
+</iframe>
+    </div>
+    
+    <div class="main">
+      <div class="breadcrump" style="font-size: 80%;">
+        <a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/documentation.html">Documentation</a>&nbsp;&raquo&nbsp;<a href="/documentation/development.html">Development</a>
+      </div>
+      <h1>Getting and Building Sling</h1>
+      <p>A quick guide for getting the Sling source, then building and running the resulting Sling instance; either without or with Eclipse.</p>
+<p>Sling can easily be built:
+<em> from the command line (using SVN and the Maven command line tool)
+</em> or using Eclipse</p>
+<p>Note that you don't <em>have</em> to build Sling yourself, if you don't need the bleeding-edge stuff you can get prebuilt binaries from the <a href="/downloads.html">Downloads</a> page.</p>
+<p>A full build of Sling takes 5-10 minutes on a recent computer once your local Maven repository is up to date. The first build may take much longer than that if you start with an empty local Maven repository, as Maven will then download its plugins and all the required dependencies.</p>
+<h2 id="prerequisites">Prerequisites</h2>
+<p>Before you begin, you need to have the following tools installed on your system:
+<em> Java 5 or higher; Java 6 recommended
+</em> <a href="">Maven</a> 3.0.2 or later; enforced by the Sling parent pom</p>
+<p>If you want to set up Eclipse (not required to build Sling) you'll also need the following installed:
+<em> Eclipse (tested with 3.4.2 and 3.5.x on Win XP, SP3, 3.6.x on Win7, 3.7 on MacOS X 10.6); just a plain installation of the platform runtime binary and the JDT will be adequate (you can install the IDE for Java Developers for convenience) 
+</em> M2Eclipse plugin for Eclipse (sonatype) -&gt; <a href="">instructions</a>
+* <a href="">Subversive plugin</a> or [Subclipse-plugin|http://subclipse.tigris.org] for Eclipse</p>
+<h2 id="environment-setup">Environment Setup</h2>
+<p>The full build process requires quite a lot of resources, so you may run into limits. The following hints should show you what to setup before building Sling.</p>
+<h3 id="java-heap-space">Java Heap Space</h3>
+<ul>
+<li><em>Problem</em> - Build aborts with reports of <code>java.lang.OutOfMemoryError: Java heap space</code>. Alternatively the build may randomly fail during the integration tests.</li>
+<li><em>Platforms</em> - This happens on all platforms</li>
+<li><em>Fix</em> - Increase the values of the maximum heap and perm space for the build by setting or extending the <code>MAVEN_OPTS</code> environment variable.</li>
+</ul>
+<p>For 32bit platforms you should use</p>
+<div class="codehilite"><pre><span class="n">MAVEN_OPTS</span><span class="o">=</span><span class="s">&quot;-Xmx256M -XX:MaxPermSize=256m&quot;</span>
+</pre></div>
+
+
+<p>For 64bit platforms, you should use</p>
+<div class="codehilite"><pre><span class="n">MAVEN_OPTS</span><span class="o">=</span><span class="s">&quot;-Xmx512M -XX:MaxPermSize=512m&quot;</span>
+</pre></div>
+
+
+<p>For more information see <a href="">SLING-443</a> and [SLING-1782|https://issues.apache.org/jira/browse/SLING-1782].</p>
+<h3 id="environment-variable-space">Environment Variable Space</h3>
+<ul>
+<li>
+<p><em>Problem</em> - Build aborts when trying to launch the integration tests with the message</p>
+<p>[INFO] Error while executing forked tests.; nested exception is org.apache.maven.surefire.booter.shade.org.codehaus.plexus.util.cli.CommandLineException: Error setting up environmental variables</p>
+<p>error=12, Not enough space</p>
+</li>
+</ul>
+<p>This problem is caused by insufficient swap space. When running the integration tests in the <code>launchpad/testing</code> modules, a process is launched by calling the <code>exec</code> system call. This copies the process (copy-on-write, though) and thus allocates as much virtual memory as is owned by the parent process. This may fail if swap space is exhausted.
+<em> </em>Platform<em> - OpenSolaris
+</em> <em>Fix</em> - If this issue persists you will need to check your system requirements and configuration with regard to swap, before taking action - if necessary.</p>
+<h2 id="configuring-maven">Configuring Maven</h2>
+<p>See <a href="/documentation/development/maventipsandtricks.html">MavenTipsAndTricks</a>.</p>
+<h2 id="getting-the-sling-source">Getting the Sling Source</h2>
+<h3 id="with-svn">With SVN</h3>
+<ol>
+<li>
+<p>Checkout Sling from the Repository.</p>
+<p>$ svn checkout http://svn.apache.org/repos/asf/sling/trunk sling</p>
+</li>
+</ol>
+<h3 id="with-eclipse-subversive-or-subclipse">With Eclipse Subversive or Subclipse</h3>
+<p>First note how simple the above SVN instructions are...but if you <em>really</em> want to do this, read on.</p>
+<p>If you use the Subversive plugin make sure you have installed the "Subversive Integration for M2Eclipse Project" which can be found under the following Eclipse update site: <a href="">http://community.polarion.com/projects/subversive/download/integrations/update-site/</a>.</p>
+<p>Also, make sure that you have installed either the "Maven SCM handler for Subclipse" or the "Maven SCM handler for Subversive".</p>
+<h4 id="create-a-new-workspace">Create a new workspace</h4>
+<p>It's best to create a new workspace for the sling project:
+1. Menu: File-&gt;Switch Workspace-&gt;Other...
+1. Enter a path for the new workspace and click OK
+1. When Eclipse has restarted it's time to adjust some configs
+1. Turn off automatic build (Menu: Project-&gt;Build Automatically)
+1. Go to menu: Eclipse-&gt;Preferences, in the preferences dialog select Java -&gt; Compiler -&gt; Errors/Warnings
+1. Expand the "Deprecated and restricted API" and change "Forbidden references (access rules)" from "Error" to "Warning"
+1. Click OK</p>
+<h4 id="checkout-the-sling-source">Checkout the Sling source</h4>
+<ol>
+<li>Menu: File-&gt;Import</li>
+<li>In the Import wizard select Maven-&gt;"Check out Maven Projects from SCM"</li>
+<li>Click next</li>
+<li>In the "SCM URL" field pick "SVN" and enter the url "http://svn.apache.org/repos/asf/sling/trunk"</li>
+<li>Click Finish</li>
+</ol>
+<p>Eclipse will now start to download the source and import the Maven projects. You might encounter some "Problem Occured" dialogs about "An internal error...", but just click OK on those and let Eclipse continue with the import. Be warned: This could take some time (it was 30 minutes on my laptop)!</p>
+<p>Possibly something in sling-builder might get a bit messed up (I didn't experience that problem, but Pontus reported it) then you can simply fix it with revert:
+1. In the Project Explorer right-click on the "sling-builder" project and select the Team-&gt;Revert... menu
+1. A couple of changes will be displayed
+1. Click OK</p>
+<h2 id="building-sling">Building Sling</h2>
+<h3 id="with-the-maven-command-line-tool">With the Maven command line tool</h3>
+<ol>
+<li>
+<p>Enter the directory, then do a full build and local install (below are unix/linux commands, slightly different under windows)</p>
+<p>$ cd sling
+$ export MAVEN_OPTS="-Xmx256m -XX:MaxPermSize=128m"
+$ mvn -s /dev/null clean install</p>
+</li>
+</ol>
+<p>Note: On windows just leave out <code>/dev/null</code> and make sure you have an empty settings.xml file for maven (located in your user directory under .m2).
+1. Enter the <code>launchpad/builder</code> directory and launch Sling for the first time</p>
+<div class="codehilite"><pre><span class="nv">$</span> <span class="nv">cd</span> <span class="n">launchpad</span><span class="o">/</span><span class="n">builder</span>
+<span class="nv">$</span> <span class="nv">java</span> <span class="o">-</span><span class="n">jar</span> <span class="n">target</span><span class="o">/</span><span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">sling</span><span class="o">.</span><span class="n">launchpad</span><span class="o">-*-</span><span class="n">standalone</span><span class="o">.</span><span class="n">jar</span> <span class="o">-</span><span class="n">c</span> <span class="n">test</span> <span class="o">-</span><span class="n">f</span> <span class="o">-</span>
+</pre></div>
+
+
+<p>{note}
+When starting Sling inside the <code>launchpad/builder</code> folder you should not use the default Sling Home folder name <code>sling</code> because this folder is removed when running <code>mvn clean</code>.
+{note}</p>
+<p>Messages should now be printed to the console which is being used as the "log file"; the <code>\-f</code> command line option is set to <code>\-</code>, indicating the use of standard output as the log file. The <code>\-c sling</code> command line option instructs Sling to use the <code>sling</code> directory in the current directory for its data store, which is the Apache Felix bundle archive, the Jackrabbit repository data and configuration. You may also specify another directory here, either a relative or absolute path name (See also <a href="/documentation/configuration.html">Configuration</a> for more information). 
+Use the <code>-h</code> option to see the list of flags and options.
+After all messages have been printed you should be able to open the Sling Management Console by pointing your web browser at <code>[http://localhost:8080/system/console]()</code>. You will be prompted for a user name and password. Enter <code>admin</code> for both the user name and the password (this may be set on the <em>Configuration</em> page later). From this console, you can manage the installed bundles, modify configuration objects, dump a configuration status and see some system information.
+To stop Sling, just hit <code>Ctrl-C</code> in the console or click the <em>Stop</em> button on the <em>System Information</em> page of the Sling Management Console.</p>
+<h3 id="with-m2eclipse">With M2Eclipse</h3>
+<ol>
+<li>Make sure you're in the Java perspective (Menu: Window-&gt;Open Perspective)</li>
+<li>Menu: Run-&gt;Run Configurations...</li>
+<li>In the Run Configurationa dialog right-click on "Maven Build" and select "New"</li>
+<li>Change Name to "Build Sling"</li>
+<li>Click "Browse Workspace..." and select "sling-builder"</li>
+<li>Enter "clean install" in Goals</li>
+<li>Click on the JRE tab</li>
+<li>Enter "-Xmx256m -XX:MaxPermSize=128m" in "VM arguments"</li>
+<li>Click Apply</li>
+<li>Click Run</li>
+</ol>
+<h3 id="alternative-setup-in-eclipse-without-m2eclipse-plugin">Alternative setup in Eclipse without M2Eclipse plugin</h3>
+<p>In the case that you do not want to use the M2Eclipse plugin there's another setup that lets you have the automatic build turned on:
+1. Checkout the whole sling trunk (with subversive or the subclipse plugin) from SVN to a single project
+1. Then manually add all <code>src/main/java</code> and <code>src/test/java</code> of the bundles to the project as source folders
+1. Add all required libraries to the build path
+1. Now you can build either in Eclipse or even better use "mvn clean install" on the command line</p>
+<p>If you use "mvn clean install" to build Sling be sure you have set MAVEN_OPTS to "-Xmx384m -XX:PermSize=256m" otherwise you will probably get OutOfmemory errors.</p>
+<p>Congratulations ! You should now have a running Sling instance, that you can start playing around with.</p>
+<h2 id="further-tips-and-tricks">Further Tips and Tricks</h2>
+<h3 id="debug-sling-in-eclipse">Debug Sling in Eclipse</h3>
+<p>You can use remote debugging to debug Sling in Eclipse, here's a little How-To
+1. start Sling from the command line with</p>
+<div class="codehilite"><pre><span class="n">java</span> <span class="o">-</span><span class="n">Xmx384M</span> <span class="o">-</span><span class="n">agentlib:jdwp</span><span class="o">=</span><span class="n">transport</span><span class="o">=</span><span class="n">dt_socket</span><span class="p">,</span><span class="n">address</span><span class="o">=</span><span class="mi">30303</span><span class="p">,</span><span class="n">server</span><span class="o">=</span><span class="n">y</span><span class="p">,</span><span class="n">suspend</span><span class="o">=</span><span class="n">n</span> <span class="o">-</span><span class="n">jar</span> <span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">sling</span><span class="o">.</span><span class="n">launchpad</span><span class="o">.</span><span class="n">app</span><span class="o">-</span><span class="mi">6</span><span class="o">-</span><span class="n">SNAPSHOT</span><s
 pan class="o">.</span><span class="n">jar</span>
+</pre></div>
+
+
+<ol>
+<li>Open Menu Run-&gt; Debug configurations</li>
+<li>Right-click on "Remote Java Applications"</li>
+<li>Choose "New"</li>
+<li>In the "Connect" tab choose the Eclipse Sling Project for the field "Project" with the browse button</li>
+<li>Let the Connection type be "Standard (Socket Attach)"</li>
+<li>The host should be localhost</li>
+<li>Set the Port to 30303</li>
+<li>On the source tab click the "Add" button</li>
+<li>Select "Java Project"</li>
+<li>Select all Sling projects and click OK</li>
+<li>Click "Debug"</li>
+</ol>
+<p>Now you should be able to set breakpoints, evaluate properties, and so on as usual.</p>
+<h3 id="debug-maven-tests-in-eclipse">Debug Maven Tests in Eclipse</h3>
+<p>In the same way as you can debug the sling app, you are also able to debug a maven test. Just run the maven tests like this</p>
+<div class="codehilite"><pre><span class="n">mvn</span> <span class="o">-</span><span class="n">Dmaven</span><span class="o">.</span><span class="n">surefire</span><span class="o">.</span><span class="n">debug</span> <span class="n">test</span>
+</pre></div>
+
+
+<p>The tests will automatically pause and await a remote debugger on port 5005. You can then attach to the running tests using Eclipse. You can setup a "Remote Java Application" launch configuration via the menu command "Run" &gt; "Open Debug Dialog..." (see above).
+For more information on this see the <a href="">Maven Surefire Docu</a>.</p>
+<h3 id="simple-way-to-develop-new-bundle-in-eclipse-for-sling">Simple way to develop new bundle in Eclipse for Sling</h3>
+<p>The easiest way that I found is to create a new folder in the existing Eclipse workspace. After that you can follow these steps:
+<em> Start by copying and adapting an existing Sling pom.xml (eg. the pom.xml from the espblog sample)
+</em> Generate the Eclipse project files using mvn eclipse:eclipse
+<em> Choose File/Import in Eclipse and select "Existing projects into workspace"
+</em> Now you can create, edit and compile the files in Eclipse
+<em> To create the bundle jar and install it, just use the command line "mvn clean install" in the project directory
+</em> If you have a running Sling app you can install the bundle from the command line with "mvn -P autoInstallBundle clean install -Dsling.url=<a href="">http://localhost:8080/system/console</a>"</p>
+<p>If adding dependencies to the poms, run mvn eclipse:eclipse again and refresh the project in Eclipse. Debugging works as described above.</p>
+      <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+        Rev. 1341376 by fmeschbe on Tue, 22 May 2012 09:41:06 +0000
+      </div>
+      <div class="trademarkFooter"> 
+        Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project
+        logo are trademarks of The Apache Software Foundation. All other marks mentioned
+        may be trademarks or registered trademarks of their respective owners.
+      </div>
+    </div>
+  </body>
+</html>

Added: websites/staging/sling/trunk/content/documentation/development/issue-tracker.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/development/issue-tracker.html (added)
+++ websites/staging/sling/trunk/content/documentation/development/issue-tracker.html Tue May 22 09:41:22 2012
@@ -0,0 +1,216 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+  <head>
+    <title>Apache Sling - Issue Tracker</title>
+    <link rel="stylesheet" href="/css/site.css" type="text/css" media="all">
+    <link rel="icon" href="http://sling.apache.org/site/media.data/favicon.ico">
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+  </head>
+  <body>
+    <div class="title">
+      <div class="logo">
+        <a href="http://sling.apache.org/site/index.html">
+          <img border="0" alt="Apache Sling" src="http://sling.apache.org/site/media.data/logo.png">
+        </a>
+      </div>
+      <div class="header">
+        <a href="http://www.apache.org/">
+          <img border="0" alt="Apache" src="http://sling.apache.org/site/media.data/apache.png">
+        </a>
+      </div>
+    </div>
+    
+    <div class="menu"> 
+      <p><strong>Documentation</strong> <br />
+<a href="/getting-started.html">Getting Started</a> <br />
+<a href="/the-sling-engine.html">The Sling Engine</a> <br />
+<a href="/development.html">Development</a> <br />
+<a href="/bundles.html">Bundles</a> <br />
+<a href="/tutorials-how-tos.html">Tutorials &amp; How-Tos</a> <br />
+<a href="/configuration.html">Configuration</a> <br />
+<a href="http://s.apache.org/sling.wiki">Wiki</a> <br />
+<a href="http://s.apache.org/sling.faq">FAQ</a> <br />
+<a href="/sitemap.html">Site Map</a></p>
+<p><strong>API Docs</strong>  <br />
+<a href="http://sling.apache.org/apidocs/sling6/index.html">Sling 6</a> <br />
+<a href="http://sling.apache.org/apidocs/sling5/index.html">Sling 5</a> <br />
+</p>
+<p><strong>Project info</strong> <br />
+<a href="http://sling.apache.org/site/downloads.cgi">Downloads</a> <br />
+<a href="http://www.apache.org/licenses/">License</a> <br />
+<a href="/contributing.html">Contributing</a> <br />
+<a href="/news.html">News</a> <br />
+<a href="/links.html">Links</a> <br />
+<a href="/project-information.html">Project Information</a> <br />
+<a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a> <br />
+<a href="http://svn.apache.org/viewvc/sling/trunk">Browse Source Repository</a> <br />
+<a href="/security.html">Security</a> <br />
+</p>
+<p><strong>Sponsorship</strong> <br />
+<a href="http://www.apache.org/foundation/thanks.html">Thanks</a> <br />
+<a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a> <br />
+<a href="http://www.apache.org/foundation/buy_stuff.html">Buy Stuff</a> <br />
+</p>
+<iframe 
+    src="http://www.apache.org/ads/button.html"
+    style="border-width:0; float: left" frameborder="0" 
+    scrolling="no"
+    width="135" 
+    height="135">
+</iframe>
+    </div>
+    
+    <div class="main">
+      <div class="breadcrump" style="font-size: 80%;">
+        <a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/documentation.html">Documentation</a>&nbsp;&raquo&nbsp;<a href="/documentation/development.html">Development</a>
+      </div>
+      <h1>Issue Tracker</h1>
+      <p>Apache Sling uses Jira for tracking bug reports and requests for improvements, new features, and other changes.</p>
+<p>The issue tracker is available at https://issues.apache.org/jira/browse/SLING and is readable by everyone. A Jira account is needed to create new issues and to comment on existing issues. Use the <a href="">registration form</a> to request an account if you do not already have one.</p>
+<p>See below for guidelines on creating and managing issues.</p>
+<h2 id="issue-type">Issue type</h2>
+<p>When creating a new issue, select the issue type based as follows:</p>
+<table>
+<thead>
+<tr>
+<th>Issue type</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><em>Bug</em></td>
+<td>Bug reports are used for cases where Sling fails not function as it should (as defined by some documentation). If you are not certain whether the issue you've found is actually a bug, please ask the <a href="">Sling mailing lists</a> first for help.</td>
+</tr>
+<tr>
+<td><em>New Feature</em></td>
+<td>Use a feature request when Sling does not have some functionality you need.</td>
+</tr>
+<tr>
+<td><em>Improvement</em></td>
+<td>Use an improvement request to suggest improvements to existing features. Typical improvement requests are about updating documentation, increasing stability and performance, simplifying the implementation, or other such changes that make Sling better without introducing new features or fixing existing bugs.</td>
+</tr>
+<tr>
+<td><em>Test</em></td>
+<td>Use this type when contributing test cases for existing features. Normally test cases should be contributed as a part of the original feature request or as regression tests associated with bug reports, but sometimes you just want to extend test coverage by introducing new test cases. This issue type is for such cases.</td>
+</tr>
+<tr>
+<td><em>Task</em></td>
+<td>Used only for issues related to project infrastructure.</td>
+</tr>
+</tbody>
+</table>
+<h2 id="summary">Summary</h2>
+<p>The issue summary should be a short and clear statement that indicates the scope of the issue. You are probably being too verbose if you exceed the length of the text field. Use the Environment and Description fields to provide more detailed information.</p>
+<h2 id="issue-priority">Issue priority</h2>
+<p>Issue priority should be set according to the following:</p>
+<table>
+<thead>
+<tr>
+<th>Issue priority</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><em>Blocker</em></td>
+</tr>
+<tr>
+<td><em>Critical</em></td>
+</tr>
+<tr>
+<td><em>Major</em></td>
+</tr>
+<tr>
+<td><em>Minor</em></td>
+</tr>
+<tr>
+<td><em>Trivial</em></td>
+</tr>
+</tbody>
+</table>
+<h2 id="issue-states">Issue States</h2>
+<p>Sling issues can transition through a number of states while being processed:</p>
+<table>
+<thead>
+<tr>
+<th>State</th>
+<th>Description</th>
+<th>Next States in Workflow</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><em>Open</em></td>
+<td>The issue has just been created</td>
+<td><em>In Pogress</em></td>
+</tr>
+<tr>
+<td><em>In Progress</em></td>
+<td>Work has started on the issue</td>
+<td><em>Documentation Required</em>, <em>Testcase Required</em>, <em>Documentation/Testcase required</em>, <em>Resolved</em>, <em>Open</em></td>
+</tr>
+<tr>
+<td><em>Documentation Required</em></td>
+<td>Implementation work has finished for this issue. To complete it documentation must be created and/or updated.</td>
+<td><em>Resolved</em></td>
+</tr>
+<tr>
+<td><em>Testcase Required</em></td>
+<td>Implementation work has finished for this issue. To complete it test cases must be created and/or updated.</td>
+<td><em>Resolved</em></td>
+</tr>
+<tr>
+<td><em>Documentation/Testcase Required</em></td>
+<td>Implementation work has finished for this issue. To complete it documentation and test cases must be created and/or updated.</td>
+<td><em>Resolved</em>, <em>Documentation Required</em>, <em>Testcase Required</em></td>
+</tr>
+<tr>
+<td><em>Resolved</em></td>
+<td>The issue has been resolved from the developers point of view. Documentation and Testcases have been created and updated as required. Issue is ready for release.</td>
+<td><em>Reopened</em>, <em>Closed</em></td>
+</tr>
+<tr>
+<td><em>Reopened</em></td>
+<td>A resolved issue has been recognized to contain bugs or to be incomplete and thus has been reopened.</td>
+<td><em>In Progress</em>, <em>Resolved</em></td>
+</tr>
+<tr>
+<td><em>Closed</em></td>
+<td>Work on this issue has finished and it is included in the release.</td>
+<td>--</td>
+</tr>
+</tbody>
+</table>
+<p>Users generally create issues and provide feedback while work on the issue is in progress. When the developer thinks the issue has been resolved, he resolves the issue. At this point, the user may test the resolution and reopen the issue if it has not really be solved. Otherwise the user may just acknowledge the fix.</p>
+<p>Developers transition the issue through the workflow while working on it. When done with the issue, they mark the issue resolved with the appropriate resolution and ask the reporting user to confirm.</p>
+<p>Issues are closed once the project against which it has been reported has been released. Issues once closed cannot be opened again. Rather new issues should be created against the new release to have broken implementations fixed or extended.</p>
+<h2 id="patches">Patches</h2>
+<p>When reporting a bug, requesting a feature or propose an improvement, it is a good thing to attach a patch to the issue. This may speed up issue processing and helps you being recognized as a good community member leading to closer involvement with Sling.</p>
+      <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+        Rev. 1341376 by fmeschbe on Tue, 22 May 2012 09:41:06 +0000
+      </div>
+      <div class="trademarkFooter"> 
+        Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project
+        logo are trademarks of The Apache Software Foundation. All other marks mentioned
+        may be trademarks or registered trademarks of their respective owners.
+      </div>
+    </div>
+  </body>
+</html>

Added: websites/staging/sling/trunk/content/documentation/development/jspc.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/development/jspc.html (added)
+++ websites/staging/sling/trunk/content/documentation/development/jspc.html Tue May 22 09:41:22 2012
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+  <head>
+    <title>Apache Sling - Maven JspC Plugin</title>
+    <link rel="stylesheet" href="/css/site.css" type="text/css" media="all">
+    <link rel="icon" href="http://sling.apache.org/site/media.data/favicon.ico">
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+  </head>
+  <body>
+    <div class="title">
+      <div class="logo">
+        <a href="http://sling.apache.org/site/index.html">
+          <img border="0" alt="Apache Sling" src="http://sling.apache.org/site/media.data/logo.png">
+        </a>
+      </div>
+      <div class="header">
+        <a href="http://www.apache.org/">
+          <img border="0" alt="Apache" src="http://sling.apache.org/site/media.data/apache.png">
+        </a>
+      </div>
+    </div>
+    
+    <div class="menu"> 
+      <p><strong>Documentation</strong> <br />
+<a href="/getting-started.html">Getting Started</a> <br />
+<a href="/the-sling-engine.html">The Sling Engine</a> <br />
+<a href="/development.html">Development</a> <br />
+<a href="/bundles.html">Bundles</a> <br />
+<a href="/tutorials-how-tos.html">Tutorials &amp; How-Tos</a> <br />
+<a href="/configuration.html">Configuration</a> <br />
+<a href="http://s.apache.org/sling.wiki">Wiki</a> <br />
+<a href="http://s.apache.org/sling.faq">FAQ</a> <br />
+<a href="/sitemap.html">Site Map</a></p>
+<p><strong>API Docs</strong>  <br />
+<a href="http://sling.apache.org/apidocs/sling6/index.html">Sling 6</a> <br />
+<a href="http://sling.apache.org/apidocs/sling5/index.html">Sling 5</a> <br />
+</p>
+<p><strong>Project info</strong> <br />
+<a href="http://sling.apache.org/site/downloads.cgi">Downloads</a> <br />
+<a href="http://www.apache.org/licenses/">License</a> <br />
+<a href="/contributing.html">Contributing</a> <br />
+<a href="/news.html">News</a> <br />
+<a href="/links.html">Links</a> <br />
+<a href="/project-information.html">Project Information</a> <br />
+<a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a> <br />
+<a href="http://svn.apache.org/viewvc/sling/trunk">Browse Source Repository</a> <br />
+<a href="/security.html">Security</a> <br />
+</p>
+<p><strong>Sponsorship</strong> <br />
+<a href="http://www.apache.org/foundation/thanks.html">Thanks</a> <br />
+<a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a> <br />
+<a href="http://www.apache.org/foundation/buy_stuff.html">Buy Stuff</a> <br />
+</p>
+<iframe 
+    src="http://www.apache.org/ads/button.html"
+    style="border-width:0; float: left" frameborder="0" 
+    scrolling="no"
+    width="135" 
+    height="135">
+</iframe>
+    </div>
+    
+    <div class="main">
+      <div class="breadcrump" style="font-size: 80%;">
+        <a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/documentation.html">Documentation</a>&nbsp;&raquo&nbsp;<a href="/documentation/development.html">Development</a>
+      </div>
+      <h1>Maven JspC Plugin</h1>
+      <p>The Maven JspC Plugin provides a single goal <code>jspc</code> which is by default executed in the <code>compile</code> phase of the Maven build process. This goal takes all JSP source files from a configured location (<code>src/main/scripts</code> by default) and compiles them into classes in a configurable location (<code>target/jspc-plugin-generated</code> by default). In addition, for each compiled JSP a Declarative Services descriptor is generated and written to a descriptor file (<code>OSGI-INF/jspServiceComponents.xml</code> in the output location). This descriptor will then be read by the Service Component Runtime of the deployment OSGi framework to register all contained JSP as <code>javax.servlet.Servlet</code> services.</p>
+<h2 id="use">Use</h2>
+<p>To use the Maven JspC Plugin define the following elements in the <code>&lt;plugins&gt;</code> section of the POM:</p>
+<div class="codehilite"><pre><span class="cp">&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;</span>
+<span class="nt">&lt;project&gt;</span>
+    ....
+    <span class="nt">&lt;build&gt;</span>
+        ....
+        <span class="nt">&lt;plugins&gt;</span>
+            ....
+            <span class="nt">&lt;plugin&gt;</span>
+                <span class="nt">&lt;groupId&gt;</span>org.apache.sling<span class="nt">&lt;/groupId&gt;</span>
+                <span class="nt">&lt;artifactId&gt;</span>maven-jspc-plugin<span class="nt">&lt;/artifactId&gt;</span>
+                <span class="nt">&lt;executions&gt;</span>
+                    <span class="nt">&lt;execution&gt;</span>
+                        <span class="nt">&lt;id&gt;</span>compile-jsp<span class="nt">&lt;/id&gt;</span>
+                        <span class="nt">&lt;goals&gt;</span>
+                            <span class="nt">&lt;goal&gt;</span>jspc<span class="nt">&lt;/goal&gt;</span>
+                        <span class="nt">&lt;/goals&gt;</span>
+                    <span class="nt">&lt;/execution&gt;</span>
+                <span class="nt">&lt;/executions&gt;</span>
+            <span class="nt">&lt;/plugin&gt;</span>
+            ....
+        <span class="nt">&lt;plugins&gt;</span>
+        ....
+    <span class="nt">&lt;build&gt;</span>
+    ....
+<span class="nt">&lt;project&gt;</span>
+</pre></div>
+
+
+<h2 id="configuration">Configuration</h2>
+<p>The Maven JspC Plugin may be configured in the <code>&lt;configuration&gt;</code> element using the following properties:</p>
+<table>
+<thead>
+<tr>
+<th>Parameter</th>
+<th>Default Value</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>sourceDirectory</code></td>
+<td><code>$\{project.build.scriptSourceDirectory</code>}</td>
+<td>Location of the JSP source file; may be overwritten using the <code>jspc.sourceDirectory</code> system property.</td>
+</tr>
+<tr>
+<td><code>outputDirectory</code></td>
+<td><code>$\{project.build.directory}/jspc-plugin-generated</code></td>
+<td>Target directory for the compiled JSP classes; may be overwritten using the <code>jspc.outputDirectory</code> system propertiy.</td>
+</tr>
+<tr>
+<td><code>compilerTargetVM</code></td>
+<td><code>1.5</code></td>
+<td>The Target Virtual Machine Version to generate class files for; may be overwritten using the <code>jspc.compilerTargetVM</code> system property.</td>
+</tr>
+<tr>
+<td><code>compilerSourceVM</code></td>
+<td><code>1.5</code></td>
+<td>The Compiler Source Version of the Java source generated from the JSP files before compiling into classes; may be overwritten using the <code>jspc.compilerSourceVM</code> system property.</td>
+</tr>
+<tr>
+<td><code>servletPackage</code></td>
+<td><code>org.apache.jsp</code></td>
+<td>The root package name for the generated class files; may be overwritten using the <code>jspc.servletPackage</code> system property.</td>
+</tr>
+</tbody>
+</table>
+<h2 id="notes">Notes</h2>
+<p>The generated JSP classes as well as the Declarative Services descriptor are automatically copied to the generated bundle jar file if the Maven Bundle Plugin (from the Apache Felix) project is used to build the project package.</p>
+      <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+        Rev. 1341376 by fmeschbe on Tue, 22 May 2012 09:41:06 +0000
+      </div>
+      <div class="trademarkFooter"> 
+        Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project
+        logo are trademarks of The Apache Software Foundation. All other marks mentioned
+        may be trademarks or registered trademarks of their respective owners.
+      </div>
+    </div>
+  </body>
+</html>

Added: websites/staging/sling/trunk/content/documentation/development/logging.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/development/logging.html (added)
+++ websites/staging/sling/trunk/content/documentation/development/logging.html Tue May 22 09:41:22 2012
@@ -0,0 +1,276 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+  <head>
+    <title>Apache Sling - Logging</title>
+    <link rel="stylesheet" href="/css/site.css" type="text/css" media="all">
+    <link rel="icon" href="http://sling.apache.org/site/media.data/favicon.ico">
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+  </head>
+  <body>
+    <div class="title">
+      <div class="logo">
+        <a href="http://sling.apache.org/site/index.html">
+          <img border="0" alt="Apache Sling" src="http://sling.apache.org/site/media.data/logo.png">
+        </a>
+      </div>
+      <div class="header">
+        <a href="http://www.apache.org/">
+          <img border="0" alt="Apache" src="http://sling.apache.org/site/media.data/apache.png">
+        </a>
+      </div>
+    </div>
+    
+    <div class="menu"> 
+      <p><strong>Documentation</strong> <br />
+<a href="/getting-started.html">Getting Started</a> <br />
+<a href="/the-sling-engine.html">The Sling Engine</a> <br />
+<a href="/development.html">Development</a> <br />
+<a href="/bundles.html">Bundles</a> <br />
+<a href="/tutorials-how-tos.html">Tutorials &amp; How-Tos</a> <br />
+<a href="/configuration.html">Configuration</a> <br />
+<a href="http://s.apache.org/sling.wiki">Wiki</a> <br />
+<a href="http://s.apache.org/sling.faq">FAQ</a> <br />
+<a href="/sitemap.html">Site Map</a></p>
+<p><strong>API Docs</strong>  <br />
+<a href="http://sling.apache.org/apidocs/sling6/index.html">Sling 6</a> <br />
+<a href="http://sling.apache.org/apidocs/sling5/index.html">Sling 5</a> <br />
+</p>
+<p><strong>Project info</strong> <br />
+<a href="http://sling.apache.org/site/downloads.cgi">Downloads</a> <br />
+<a href="http://www.apache.org/licenses/">License</a> <br />
+<a href="/contributing.html">Contributing</a> <br />
+<a href="/news.html">News</a> <br />
+<a href="/links.html">Links</a> <br />
+<a href="/project-information.html">Project Information</a> <br />
+<a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a> <br />
+<a href="http://svn.apache.org/viewvc/sling/trunk">Browse Source Repository</a> <br />
+<a href="/security.html">Security</a> <br />
+</p>
+<p><strong>Sponsorship</strong> <br />
+<a href="http://www.apache.org/foundation/thanks.html">Thanks</a> <br />
+<a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a> <br />
+<a href="http://www.apache.org/foundation/buy_stuff.html">Buy Stuff</a> <br />
+</p>
+<iframe 
+    src="http://www.apache.org/ads/button.html"
+    style="border-width:0; float: left" frameborder="0" 
+    scrolling="no"
+    width="135" 
+    height="135">
+</iframe>
+    </div>
+    
+    <div class="main">
+      <div class="breadcrump" style="font-size: 80%;">
+        <a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/documentation.html">Documentation</a>&nbsp;&raquo&nbsp;<a href="/documentation/development.html">Development</a>
+      </div>
+      <h1>Logging</h1>
+      <h2 id="introduction">Introduction</h2>
+<p>Logging in Sling is supported by the <code>org.apache.sling.commons.log</code> bundle, which is one of the first bundles installed and started by the Sling Launcher. The <code>org.apache.sling.commons.log</code> bundle has the following tasks:</p>
+<ul>
+<li>Implements the OSGi Log Service Specification and registers the <code>LogService</code> and <code>LogReader</code> services</li>
+<li>Exports three commonly used logging APIs:
+      <strong> <a href="">Simple Logging Facade for Java (SLF4J)</a>
+    <br />
+</strong> <a href="">Apache Commons Logging</a>
+      <strong> <a href="">log4j</a>
+    <br />
+</strong> <a href="">java.util.logging</a> (as of r1169918)</li>
+<li>Configures logging through our own implementation of the SLF4J backend API</li>
+</ul>
+<h2 id="initial-configuration">Initial Configuration</h2>
+<p>The <code>org.apache.sling.commons.log</code> bundle gets the initial configuration from the following <code>BundleContext</code> properties:</p>
+<table>
+<thead>
+<tr>
+<th>Property</th>
+<th>Default</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>org.apache.sling.commons.log.level</code></td>
+<td><code>INFO</code></td>
+<td>Sets the initial logging level of the root logger. This may be any of the defined logging levels <code>DEBUG</code>, <code>INFO</code>, <code>WARN</code>, <code>ERROR</code> and <code>FATAL</code>.</td>
+</tr>
+<tr>
+<td><code>org.apache.sling.commons.log.file</code></td>
+<td>undefined</td>
+<td>Sets the log file to which log messages are written. If this property is empty or missing, log messages are written to <code>System.out</code>.</td>
+</tr>
+<tr>
+<td><code>org.apache.sling.commons.log.file.number</code></td>
+<td>5</td>
+<td>The number of rotated files to keep.</td>
+</tr>
+<tr>
+<td><code>org.apache.sling.commons.log.file.size</code></td>
+<td>'.'yyyy-MM-dd</td>
+<td>Defines how the log file is rotated (by schedule or by size) and when to rotate. See the section <em>Log File Rotation</em> below for full details on log file rotation.</td>
+</tr>
+<tr>
+<td><code>org.apache.sling.commons.log.pattern</code></td>
+<td>{0,date,dd.MM.yyyy HH:mm:ss.SSS} *{4}* [{2}]() {3} {5}</td>
+<td>The <code>MessageFormat</code> pattern to use for formatting log messages with the root logger.</td>
+</tr>
+<tr>
+<td><code>org.apache.sling.commons.log.julenabled</code></td>
+<td>n/a</td>
+<td>Enables the <code>java.util.logging</code> support.</td>
+</tr>
+</tbody>
+</table>
+<h2 id="user-configuration">User Configuration</h2>
+<p>User Configuration after initial configuration is provided by the Configuration Admin Service. To this avail two <code>org.osgi.services.cm.ManagedServiceFactory</code> services are registered under the PIDs <code>org.apache.sling.commons.log.LogManager.factory.writer</code> and <code>org.apache.sling.commons.log.LogManager.factory.config</code> which may receive configuration.</p>
+<h3 id="logger-configuration">Logger Configuration</h3>
+<p>Loggers (or Categories) can be configured to log to specific files at specific levels using configurable patterns. To this avail factory configuration instances with factory PID <code>org.apache.sling.commons.log.LogManager.factory.config</code> may be created and configured with the Configuration Admin Service.</p>
+<p>The following properties may be set:</p>
+<table>
+<thead>
+<tr>
+<th>Property</th>
+<th>Type</th>
+<th>Default</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>org.apache.sling.commons.log.level</code></td>
+<td>String</td>
+<td><code>INFO</code></td>
+<td>Sets the logging level of the loggers. This may be any of the defined logging levels <code>DEBUG</code>, <code>INFO</code>, <code>WARN</code>, <code>ERROR</code> and <code>FATAL</code>.</td>
+</tr>
+<tr>
+<td><code>org.apache.sling.commons.log.file</code></td>
+<td>String</td>
+<td>undefined</td>
+<td>Sets the log file to which log messages are written. If this property is empty or missing, log messages are written to <code>System.out</code>. This property should refer to the file name of a configured Log Writer (see below). If no Log Writer is configured with the same file name an implicit Log Writer configuration with default configuration is created.</td>
+</tr>
+<tr>
+<td><code>org.apache.sling.commons.log.pattern</code></td>
+<td>String</td>
+<td>{0,date,dd.MM.yyyy HH:mm:ss.SSS} *{4}* [{2}]() {3} {5}</td>
+<td>The <code>java.util.MessageFormat</code> pattern to use for formatting log messages with the root logger. This is a <code>java.util.MessageFormat</code> pattern supporting up to six arguments: {0} The timestamp of type <code>java.util.Date</code>, {1} the log marker, {2} the name of the current thread, {3} the name of the logger, {4} the debug level and {5} the actual debug message. If the log call includes a Throwable, the stacktrace is just appended to the message regardless of the pattern.</td>
+</tr>
+<tr>
+<td><code>org.apache.sling.commons.log.names</code></td>
+<td>String<a href=""></a></td>
+<td>--</td>
+<td>A list of logger names to which this configuration applies.</td>
+</tr>
+</tbody>
+</table>
+<p>Note that multiple Logger Configurations may refer to the same Log Writer Configuration. If no Log Writer Configuration exists whose file name matches the file name set on the Logger Configuration an implicit Log Writer Configuration with default setup (daily log rotation) is internally created. </p>
+<h3 id="log-writer-configuration">Log Writer Configuration</h3>
+<p>Log Writer Configuration is used to setup file output and log file rotation characteristics for log writers used by the Loggers.</p>
+<p>The following properties may be set:</p>
+<table>
+<thead>
+<tr>
+<th>Property</th>
+<th>Default</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>org.apache.sling.commons.log.file</code></td>
+<td>undefined</td>
+<td>Sets the log file to which log messages are written. If this property is empty or missing, log messages are written to <code>System.out</code>.</td>
+</tr>
+<tr>
+<td><code>org.apache.sling.commons.log.file.number</code></td>
+<td>5</td>
+<td>The number of rotated files to keep.</td>
+</tr>
+<tr>
+<td><code>org.apache.sling.commons.log.file.size</code></td>
+<td>'.'yyyy-MM-dd</td>
+<td>Defines how the log file is rotated (by schedule or by size) and when to rotate. See the section <em>Log File Rotation</em> below for full details on log file rotation.</td>
+</tr>
+</tbody>
+</table>
+<p>See the section <em>Log File Rotation</em> below for full details on the <code>org.apache.sling.commons.log.file.size</code> and <code>org.apache.sling.commons.log.file.number</code> properties.</p>
+<h2 id="log-file-rotation">Log File Rotation</h2>
+<p>Log files can grow rather quickly and fill up available disk space. To cope with this growth log files may be rotated in two ways: At specific times or when the log file reaches a configurable size. The first method is called <em>Scheduled Rotation</em> and is used by specifying a <code>SimpleDateFormat</code> pattern as the log file "size". The second method is called <em>Size Rotation</em> and is used by setting a maximum file size as the log file size.</p>
+<p>As of version 2.0.6 of the Sling Commons Log bundle, the default value for log file scheduling is <code>'.'yyyy-MM-dd</code> causing daily log rotation. Previously log rotation defaulted to a 10MB file size limit.</p>
+<h3 id="scheduled-rotation">Scheduled Rotation</h3>
+<p>The rolling schedule is specified by setting the <code>org.apache.sling.commons.log.file.size</code> property to a <code>java.text.SimpleDateFormat</code> pattern. Literal text (such as a leading dot) to be included must be <em>enclosed</em> within a pair of single quotes. A formatted version of the date pattern is used as the suffix for the rolled file name.</p>
+<p>For example, if the log file is configured as <code>/foo/bar.log</code> and the pattern set to <code>'.'yyyy-MM-dd</code>, on 2001-02-16 at midnight, the logging file <code>/foo/bar.log</code> will be renamed to <code>/foo/bar.log.2001-02-16</code> and logging for 2001-02-17 will continue in a new <code>/foo/bar.log</code> file until it rolls over the next day.</p>
+<p>It is possible to specify monthly, weekly, half-daily, daily, hourly, or minutely rollover schedules.</p>
+<table>
+<thead>
+<tr>
+<th>DatePattern</th>
+<th>Rollover schedule</th>
+<th>Example</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>'.'yyyy-MM</code></td>
+<td>Rollover at the beginning of each month</td>
+<td>At midnight of May 31st, 2002 <code>/foo/bar.log</code> will be copied to <code>/foo/bar.log.2002-05</code>. Logging for the month of June will be output to <code>/foo/bar.log</code> until it is also rolled over the next month.</td>
+</tr>
+<tr>
+<td><code>'.'yyyy-ww</code></td>
+<td>Rollover at the first day of each week. The first day of the week depends on the locale.</td>
+<td>Assuming the first day of the week is Sunday, on Saturday midnight, June 9th 2002, the file <code>/foo/bar.log</code> will be copied to <code>/foo/bar.log.2002-23</code>. Logging for the 24th week of 2002 will be output to <code>/foo/bar.log</code> until it is rolled over the next week.</td>
+</tr>
+<tr>
+<td><code>'.'yyyy-MM-dd</code></td>
+<td>Rollover at midnight each day.</td>
+<td>At midnight, on March 8th, 2002, <code>/foo/bar.log</code> will be copied to <code>/foo/bar.log.2002-03-08</code>. Logging for the 9th day of March will be output to <code>/foo/bar.log</code> until it is rolled over the next day.</td>
+</tr>
+<tr>
+<td><code>'.'yyyy-MM-dd-a</code></td>
+<td>Rollover at midnight and midday of each day.</td>
+<td>at noon, on March 9th, 2002, <code>/foo/bar.log</code> will be copied to  <code>/foo/bar.log.2002-03-09-AM</code>. Logging for the afternoon of the 9th will be output to <code>/foo/bar.log</code> until it is rolled over at midnight.</td>
+</tr>
+<tr>
+<td><code>'.'yyyy-MM-dd-HH</code></td>
+<td>Rollover at the top of every hour.</td>
+<td>At approximately 11:00.000 o'clock on March 9th, 2002, <code>/foo/bar.log</code> will be copied to <code>/foo/bar.log.2002-03-09-10</code>. Logging for the 11th hour of the 9th of March will be output to <code>/foo/bar.log</code> until it is rolled over at the beginning of the next hour.</td>
+</tr>
+<tr>
+<td><code>'.'yyyy-MM-dd-HH-mm</code></td>
+<td>Rollover at the beginning of every minute.</td>
+<td>At approximately 11:23,000, on March 9th, 2001, <code>/foo/bar.log</code> will be copied to <code>/foo/bar.log.2001-03-09-10-22</code>. Logging for the minute of 11:23 (9th of March) will be output to <code>/foo/bar.log</code> until it is rolled over the next minute.</td>
+</tr>
+</tbody>
+</table>
+<p>Do not use the colon ":" character in anywhere in the pattern option. The text before the colon is interpeted as the protocol specificaion of a URL which is probably not what you want.</p>
+<p>Note that Scheduled Rotation ignores the <code>org.apache.sling.commons.log.file.number</code> property since the old log files are not numbered but "dated".</p>
+<h3 id="size-rotation">Size Rotation</h3>
+<p>Log file rotation by size is specified by setting the <code>org.apache.sling.commons.log.file.size</code> property to a plain number or a number plus a size multiplier. The size multiplier may be any of <code>K</code>, <code>KB</code>, <code>M</code>, <code>MB</code>, <code>G</code>, or <code>GB</code> where the case is ignored and the meaning is probably obvious.</p>
+<p>When using Size Rotation, the <code>org.apache.sling.commons.log.file.number</code> defines the number of old log file generations to keep. For example to keep 5 old log files indexed by 0 through 4, set the <code>org.apache.sling.commons.log.file.number</code> to <code>5</code> (which happens to be the default).</p>
+      <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+        Rev. 1341376 by fmeschbe on Tue, 22 May 2012 09:41:06 +0000
+      </div>
+      <div class="trademarkFooter"> 
+        Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project
+        logo are trademarks of The Apache Software Foundation. All other marks mentioned
+        may be trademarks or registered trademarks of their respective owners.
+      </div>
+    </div>
+  </body>
+</html>

Added: websites/staging/sling/trunk/content/documentation/development/maven-archetypes.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/development/maven-archetypes.html (added)
+++ websites/staging/sling/trunk/content/documentation/development/maven-archetypes.html Tue May 22 09:41:22 2012
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+  <head>
+    <title>Apache Sling - Maven Archetypes</title>
+    <link rel="stylesheet" href="/css/site.css" type="text/css" media="all">
+    <link rel="icon" href="http://sling.apache.org/site/media.data/favicon.ico">
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+  </head>
+  <body>
+    <div class="title">
+      <div class="logo">
+        <a href="http://sling.apache.org/site/index.html">
+          <img border="0" alt="Apache Sling" src="http://sling.apache.org/site/media.data/logo.png">
+        </a>
+      </div>
+      <div class="header">
+        <a href="http://www.apache.org/">
+          <img border="0" alt="Apache" src="http://sling.apache.org/site/media.data/apache.png">
+        </a>
+      </div>
+    </div>
+    
+    <div class="menu"> 
+      <p><strong>Documentation</strong> <br />
+<a href="/getting-started.html">Getting Started</a> <br />
+<a href="/the-sling-engine.html">The Sling Engine</a> <br />
+<a href="/development.html">Development</a> <br />
+<a href="/bundles.html">Bundles</a> <br />
+<a href="/tutorials-how-tos.html">Tutorials &amp; How-Tos</a> <br />
+<a href="/configuration.html">Configuration</a> <br />
+<a href="http://s.apache.org/sling.wiki">Wiki</a> <br />
+<a href="http://s.apache.org/sling.faq">FAQ</a> <br />
+<a href="/sitemap.html">Site Map</a></p>
+<p><strong>API Docs</strong>  <br />
+<a href="http://sling.apache.org/apidocs/sling6/index.html">Sling 6</a> <br />
+<a href="http://sling.apache.org/apidocs/sling5/index.html">Sling 5</a> <br />
+</p>
+<p><strong>Project info</strong> <br />
+<a href="http://sling.apache.org/site/downloads.cgi">Downloads</a> <br />
+<a href="http://www.apache.org/licenses/">License</a> <br />
+<a href="/contributing.html">Contributing</a> <br />
+<a href="/news.html">News</a> <br />
+<a href="/links.html">Links</a> <br />
+<a href="/project-information.html">Project Information</a> <br />
+<a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a> <br />
+<a href="http://svn.apache.org/viewvc/sling/trunk">Browse Source Repository</a> <br />
+<a href="/security.html">Security</a> <br />
+</p>
+<p><strong>Sponsorship</strong> <br />
+<a href="http://www.apache.org/foundation/thanks.html">Thanks</a> <br />
+<a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a> <br />
+<a href="http://www.apache.org/foundation/buy_stuff.html">Buy Stuff</a> <br />
+</p>
+<iframe 
+    src="http://www.apache.org/ads/button.html"
+    style="border-width:0; float: left" frameborder="0" 
+    scrolling="no"
+    width="135" 
+    height="135">
+</iframe>
+    </div>
+    
+    <div class="main">
+      <div class="breadcrump" style="font-size: 80%;">
+        <a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/documentation.html">Documentation</a>&nbsp;&raquo&nbsp;<a href="/documentation/development.html">Development</a>
+      </div>
+      <h1>Maven Archetypes</h1>
+      <p>Sling includes four Maven archetypes to quick start development. See <a href="">http://maven.apache.org/archetype/maven-archetype-plugin/</a> for general information on using Maven archetypes. The Maven groupId for all Sling archetypes is <code>org.apache.sling</code>.</p>
+<h3 id="sling-launchpad-standalone-archetype">sling-launchpad-standalone-archetype</h3>
+<p>This archetype generates a Maven project which will build a standalone Launchpad JAR file using the default bundle set. For demonstration purposes, the generated project includes an extra bundle list file (<code>src/main/bundles/list</code>) which includes Apache Felix FileInstall as well as a test configuration file (<code>src/test/config/sling.properties</code>).</p>
+<h3 id="sling-launchpad-webapp-archetype">sling-launchpad-webapp-archetype</h3>
+<p>This archetype generates a Maven project which will build a Launchpad WAR file using the default bundle set. For demonstration purposes, the generated project includes an extra bundle list file (<code>src/main/bundles/list</code>) which includes Apache Felix FileInstall as well as a test configuration file (<code>src/test/config/sling.properties</code>).</p>
+<h3 id="sling-intitial-content-archetype">sling-intitial-content-archetype</h3>
+<p>This archetype generates a Maven project which will build an OSGi bundle that supports JCR NodeType registration (in <code>SLING-INF/nodetypes/nodetypes.cnd</code>) and initial content loading (in <code>SLING-INF/scripts</code> and <code>SLING-INF/content</code>).</p>
+<h3 id="sling-servlet-archetype">sling-servlet-archetype</h3>
+<p>This archetype generates a Maven project which will build an OSGi bundle containing two Servlets registered with Sling, one registered by path and one registered by resource type.</p>
+<h3 id="sling-bundle-archetype">sling-bundle-archetype</h3>
+<p>This archetype generates a Maven project which will build a basic OSGi bundle including support for the Felix SCR Annotations. It is pre-configured to install using the Felix Web Console when the profile <code>autoInstallBundle</code> is activated.</p>
+<h3 id="sling-jcrinstall-bundle-archetype">sling-jcrinstall-bundle-archetype</h3>
+<p>This archetype generates a Maven project which will build a basic OSGi bundle including support for the Felix SCR Annotations. It is pre-configured to install using a WebDAV PUT into the JCR when the profile <code>autoInstallBundle</code> is activated.</p>
+      <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+        Rev. 1341376 by fmeschbe on Tue, 22 May 2012 09:41:06 +0000
+      </div>
+      <div class="trademarkFooter"> 
+        Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project
+        logo are trademarks of The Apache Software Foundation. All other marks mentioned
+        may be trademarks or registered trademarks of their respective owners.
+      </div>
+    </div>
+  </body>
+</html>

Added: websites/staging/sling/trunk/content/documentation/development/maven-launchpad-plugin.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/development/maven-launchpad-plugin.html (added)
+++ websites/staging/sling/trunk/content/documentation/development/maven-launchpad-plugin.html Tue May 22 09:41:22 2012
@@ -0,0 +1,221 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+  <head>
+    <title>Apache Sling - Maven Launchpad Plugin</title>
+    <link rel="stylesheet" href="/css/site.css" type="text/css" media="all">
+    <link rel="icon" href="http://sling.apache.org/site/media.data/favicon.ico">
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+  </head>
+  <body>
+    <div class="title">
+      <div class="logo">
+        <a href="http://sling.apache.org/site/index.html">
+          <img border="0" alt="Apache Sling" src="http://sling.apache.org/site/media.data/logo.png">
+        </a>
+      </div>
+      <div class="header">
+        <a href="http://www.apache.org/">
+          <img border="0" alt="Apache" src="http://sling.apache.org/site/media.data/apache.png">
+        </a>
+      </div>
+    </div>
+    
+    <div class="menu"> 
+      <p><strong>Documentation</strong> <br />
+<a href="/getting-started.html">Getting Started</a> <br />
+<a href="/the-sling-engine.html">The Sling Engine</a> <br />
+<a href="/development.html">Development</a> <br />
+<a href="/bundles.html">Bundles</a> <br />
+<a href="/tutorials-how-tos.html">Tutorials &amp; How-Tos</a> <br />
+<a href="/configuration.html">Configuration</a> <br />
+<a href="http://s.apache.org/sling.wiki">Wiki</a> <br />
+<a href="http://s.apache.org/sling.faq">FAQ</a> <br />
+<a href="/sitemap.html">Site Map</a></p>
+<p><strong>API Docs</strong>  <br />
+<a href="http://sling.apache.org/apidocs/sling6/index.html">Sling 6</a> <br />
+<a href="http://sling.apache.org/apidocs/sling5/index.html">Sling 5</a> <br />
+</p>
+<p><strong>Project info</strong> <br />
+<a href="http://sling.apache.org/site/downloads.cgi">Downloads</a> <br />
+<a href="http://www.apache.org/licenses/">License</a> <br />
+<a href="/contributing.html">Contributing</a> <br />
+<a href="/news.html">News</a> <br />
+<a href="/links.html">Links</a> <br />
+<a href="/project-information.html">Project Information</a> <br />
+<a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a> <br />
+<a href="http://svn.apache.org/viewvc/sling/trunk">Browse Source Repository</a> <br />
+<a href="/security.html">Security</a> <br />
+</p>
+<p><strong>Sponsorship</strong> <br />
+<a href="http://www.apache.org/foundation/thanks.html">Thanks</a> <br />
+<a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a> <br />
+<a href="http://www.apache.org/foundation/buy_stuff.html">Buy Stuff</a> <br />
+</p>
+<iframe 
+    src="http://www.apache.org/ads/button.html"
+    style="border-width:0; float: left" frameborder="0" 
+    scrolling="no"
+    width="135" 
+    height="135">
+</iframe>
+    </div>
+    
+    <div class="main">
+      <div class="breadcrump" style="font-size: 80%;">
+        <a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/documentation.html">Documentation</a>&nbsp;&raquo&nbsp;<a href="/documentation/development.html">Development</a>
+      </div>
+      <h1>Maven Launchpad Plugin</h1>
+      <p>The Maven Launchpad Plugin provides goals which facilitate the creation of OSGi applications. It supports the following runtime scenarios:
+<em> A WAR file suitable for running in a JavaEE servlet container.
+</em> A standalone Java application, with HTTP support from the Felix HttpService implementation
+* Inside Apache Karaf</p>
+<p>In addition, the Maven Launchpad Plugin supports the publishing of an application descriptor, in the form of a <em>bundle list</em>, as a Maven artifact. This descriptor can then be used by downstream application builders as the basis for other applications. In Sling, this is embodied by two Maven projects:
+<em> <a href="">org.apache.sling.launchpad</a> - produces an application descriptor.
+</em> <a href="">org.apache.sling.launchpad.testing</a> - uses the application descriptor from <code>org.apache.sling.launchpad</code> and adds two bundles.</p>
+<p>Maven Launchpad Plugin provides the following goals: 
+| Goals | Description | 
+|--|--|
+| launchpad:prepare-package | Create the file system structure required by Sling's Launchpad framework. | 
+| launchpad:attach-bundle-list | Attach the bundle list descriptor to the current project as a Maven artifact. | 
+| launchpad:create-karaf-descriptor | Create an Apache Karaf Feature descriptor. | 
+| launchpad:create-bundle-jar | Create a JAR file containing the bundles in a Launchpad-structured JAR file. | 
+| launchpad:check-bundle-list-for-snapshots | Validate that the bundle list does not contain any SNAPSHOT versions. | 
+| launchpad:run | Run a Launchpad application. |
+| launchpad:start | Start a Launchpad application. |
+| launchpad:stop | Stop a Launchpad application. |
+| launchpad:output-bundle-list | Output the bundle list to the console as XML. (added in version 2.0.8) |</p>
+<h3 id="general-configuration">General Configuration</h3>
+<p>In general, the bulk of the configuration of the Maven Launchpad Plugin is concerned with setting up the bundle list which all of the goals will use. This bundle list is created using the following steps:
+1. If <code>includeDefaultBundles</code> is <code>true</code> (the default), the default bundle list is loaded. By default, this is <code>org.apache.sling.launchpad:org.apache.sling.launchpad:RELEASE:xml:bundlelist</code>, but can be overridden by setting the <code>defaultBundleList</code> plugin parameter.
+1. If <code>includeDefaultBundles</code> is <code>false</code>, an empty list is created.
+1. If the bundle list file exists (by default, at <code>src/main/bundles/list.xml</code>), the bundles defined in it are added to the bundle list.
+1. If the <code>additionalBundles</code> plugin parameter is defined, those bundles are added to the bundle list.
+1. If the <code>bundleExclusions</code> plugin parameter is defined, those bundles are removed from the bundle list.</p>
+<p>When a bundle is added to the bundle list, if a bundle with the same groupId, artifactId, type, and classifier is already in the bundle list, the version of the existing bundle is modified. However, the start level of a bundle is never changed once that bundle is added to the bundle list.</p>
+<p>The plugin may also contribute bundles to (or remove bundles from) the bundle list as it sees fit.</p>
+<h3 id="framework-configuration">Framework Configuration</h3>
+<p>For the <code>run</code> and <code>start</code> goals, the plugin will look for a file named <code>src/test/config/sling.properties</code>. If this file is present, it will be filtered using standard Maven filtering and used to populate the OSGi framework properties. This can be used, for example, to specify a <code>repository.xml</code> file to be used during development:</p>
+<div class="codehilite"><pre>sling.repository.config.file.url=<span class="cp">${</span><span class="n">basedir</span><span class="cp">}</span>/src/test/config/repository.xml
+</pre></div>
+
+
+<h2 id="bundle-list-files">Bundle List Files</h2>
+<p>The bundle list file uses a simple XML syntax representing a list of bundles organized into start levels:</p>
+<div class="codehilite"><pre><span class="cp">&lt;?xml version=&quot;1.0&quot;?&gt;</span>
+<span class="nt">&lt;bundles&gt;</span>
+    <span class="nt">&lt;startLevel</span> <span class="na">level=</span><span class="s">&quot;0&quot;</span><span class="nt">&gt;</span>
+        <span class="nt">&lt;bundle&gt;</span>
+            <span class="nt">&lt;groupId&gt;</span>commons-io<span class="nt">&lt;/groupId&gt;</span>
+            <span class="nt">&lt;artifactId&gt;</span>commons-io<span class="nt">&lt;/artifactId&gt;</span>
+            <span class="nt">&lt;version&gt;</span>1.4<span class="nt">&lt;/version&gt;</span>
+        <span class="nt">&lt;/bundle&gt;</span>
+        <span class="nt">&lt;bundle&gt;</span>
+            <span class="nt">&lt;groupId&gt;</span>commons-collections<span class="nt">&lt;/groupId&gt;</span>
+            <span class="nt">&lt;artifactId&gt;</span>commons-collections<span class="nt">&lt;/artifactId&gt;</span>
+            <span class="nt">&lt;version&gt;</span>3.2.1<span class="nt">&lt;/version&gt;</span>
+        <span class="nt">&lt;/bundle&gt;</span>
+    <span class="nt">&lt;/startLevel&gt;</span>
+
+    <span class="nt">&lt;startLevel</span> <span class="na">level=</span><span class="s">&quot;10&quot;</span><span class="nt">&gt;</span>
+        <span class="nt">&lt;bundle&gt;</span>
+            <span class="nt">&lt;groupId&gt;</span>org.apache.felix<span class="nt">&lt;/groupId&gt;</span>
+            <span class="nt">&lt;artifactId&gt;</span>org.apache.felix.eventadmin<span class="nt">&lt;/artifactId&gt;</span>
+            <span class="nt">&lt;version&gt;</span>1.0.0<span class="nt">&lt;/version&gt;</span>
+        <span class="nt">&lt;/bundle&gt;</span>
+    <span class="nt">&lt;/startLevel&gt;</span>
+
+    <span class="nt">&lt;startLevel</span> <span class="na">level=</span><span class="s">&quot;15&quot;</span><span class="nt">&gt;</span>
+        <span class="nt">&lt;bundle&gt;</span>
+            <span class="nt">&lt;groupId&gt;</span>org.apache.sling<span class="nt">&lt;/groupId&gt;</span>
+            <span class="nt">&lt;artifactId&gt;</span>org.apache.sling.jcr.api<span class="nt">&lt;/artifactId&gt;</span>
+            <span class="nt">&lt;version&gt;</span>2.0.2-incubator<span class="nt">&lt;/version&gt;</span>
+        <span class="nt">&lt;/bundle&gt;</span>
+    <span class="nt">&lt;/startLevel&gt;</span>
+<span class="nt">&lt;/bundles&gt;</span>
+</pre></div>
+
+
+<p>Within each <code>bundle</code> element, <code>type</code> and <code>classifier</code> are also supported.</p>
+<h2 id="artifact-definition">Artifact Definition</h2>
+<p>The <code>defaultBundleList</code>, <code>jarWebSupport</code>, <code>additionalBundles</code>, and <code>bundleExclusions</code> parameters are configured with artifact definitions. This is done using a syntax similar to Maven dependency elements:</p>
+<div class="codehilite"><pre><span class="nt">&lt;configuration&gt;</span>
+...
+  <span class="nt">&lt;jarWebSupport&gt;</span>
+    <span class="nt">&lt;groupId&gt;</span>GROUP_ID<span class="nt">&lt;/groupId&gt;</span>
+    <span class="nt">&lt;artifactId&gt;</span>ARTIFACT_ID<span class="nt">&lt;/artifactId&gt;</span>
+    <span class="nt">&lt;version&gt;</span>VERSION<span class="nt">&lt;/version&gt;</span>
+    <span class="c">&lt;!-- type and classifier can also be specified if needed --&gt;</span>
+  <span class="nt">&lt;/jarWebSupport&gt;</span>
+...
+<span class="nt">&lt;/configuration&gt;</span>
+</pre></div>
+
+
+<p>For example, to use Pax Web instead of Felix HttpService as the HttpService provider, use the following:</p>
+<div class="codehilite"><pre><span class="nt">&lt;configuration&gt;</span>
+...
+  <span class="nt">&lt;jarWebSupport&gt;</span>
+    <span class="nt">&lt;groupId&gt;</span>org.ops4j.pax.web<span class="nt">&lt;/groupId&gt;</span>
+    <span class="nt">&lt;artifactId&gt;</span>pax-web-service<span class="nt">&lt;/artifactId&gt;</span>
+    <span class="nt">&lt;version&gt;</span>RELEASE<span class="nt">&lt;/version&gt;</span>
+    <span class="c">&lt;!-- type and classifier can also be specified if needed --&gt;</span>
+  <span class="nt">&lt;/jarWebSupport&gt;</span>
+...
+<span class="nt">&lt;/configuration&gt;</span>
+</pre></div>
+
+
+<p>In the case of <code>additionalBundles</code> and <code>bundleExclusions</code>, these are arrays of definitions, so an intermediate <code>bundle</code> element is necessary:</p>
+<div class="codehilite"><pre><span class="nt">&lt;configuration&gt;</span>
+...
+  <span class="nt">&lt;additionalBundles&gt;</span>
+    <span class="nt">&lt;bundle&gt;</span>
+      <span class="nt">&lt;groupId&gt;</span>GROUP_ID<span class="nt">&lt;/groupId&gt;</span>
+      <span class="nt">&lt;artifactId&gt;</span>ARTIFACT_ID<span class="nt">&lt;/artifactId&gt;</span>
+      <span class="nt">&lt;version&gt;</span>VERSION<span class="nt">&lt;/version&gt;</span>
+      <span class="c">&lt;!-- type and classifier can also be specified if needed --&gt;</span>
+    <span class="nt">&lt;/bundle&gt;</span>
+  <span class="nt">&lt;/additionalBundles&gt;</span>
+...
+<span class="nt">&lt;/configuration&gt;</span>
+</pre></div>
+
+
+<p>By default, bundles are added to start level 0. To change, this use the <code>startLevel</code> element within each additional bundle definition.</p>
+<h2 id="integration-testing">Integration Testing</h2>
+<p>For integration testing examples, see <code>/samples/inplace-integration-test</code> and <code>launchpad/testing</code> in the Sling source tree.</p>
+<h2 id="bundle-list-rewriting">Bundle List Rewriting</h2>
+<p>The Maven Launchpad Plugin supports the use of rules to rewrite the bundle list. These rules are executed by the <a href="">Drools</a> rule engine. Typically, this is used along with Maven profiles. For example, Sling's testing project includes a profile called <code>test-reactor-sling-bundles</code>. When activated, this profile runs a Drools rule file which scans the project list from the Maven reactor and modifies the version number for bundles which were contained within the reactor.</p>
+<p>In order for rules to interact with the Maven build, the following global variables are made available:</p>
+<ul>
+<li><code>mavenSession</code> - an instance of <code>org.apache.maven.execution.MavenSession</code>.</li>
+<li><code>mavenProject</code> - an instance of <code>org.apache.maven.project.MavenProject</code>.</li>
+</ul>
+      <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+        Rev. 1341376 by fmeschbe on Tue, 22 May 2012 09:41:06 +0000
+      </div>
+      <div class="trademarkFooter"> 
+        Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project
+        logo are trademarks of The Apache Software Foundation. All other marks mentioned
+        may be trademarks or registered trademarks of their respective owners.
+      </div>
+    </div>
+  </body>
+</html>

Added: websites/staging/sling/trunk/content/documentation/development/maventipsandtricks.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/development/maventipsandtricks.html (added)
+++ websites/staging/sling/trunk/content/documentation/development/maventipsandtricks.html Tue May 22 09:41:22 2012
@@ -0,0 +1,133 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+  <head>
+    <title>Apache Sling - MavenTipsAndTricks</title>
+    <link rel="stylesheet" href="/css/site.css" type="text/css" media="all">
+    <link rel="icon" href="http://sling.apache.org/site/media.data/favicon.ico">
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+  </head>
+  <body>
+    <div class="title">
+      <div class="logo">
+        <a href="http://sling.apache.org/site/index.html">
+          <img border="0" alt="Apache Sling" src="http://sling.apache.org/site/media.data/logo.png">
+        </a>
+      </div>
+      <div class="header">
+        <a href="http://www.apache.org/">
+          <img border="0" alt="Apache" src="http://sling.apache.org/site/media.data/apache.png">
+        </a>
+      </div>
+    </div>
+    
+    <div class="menu"> 
+      <p><strong>Documentation</strong> <br />
+<a href="/getting-started.html">Getting Started</a> <br />
+<a href="/the-sling-engine.html">The Sling Engine</a> <br />
+<a href="/development.html">Development</a> <br />
+<a href="/bundles.html">Bundles</a> <br />
+<a href="/tutorials-how-tos.html">Tutorials &amp; How-Tos</a> <br />
+<a href="/configuration.html">Configuration</a> <br />
+<a href="http://s.apache.org/sling.wiki">Wiki</a> <br />
+<a href="http://s.apache.org/sling.faq">FAQ</a> <br />
+<a href="/sitemap.html">Site Map</a></p>
+<p><strong>API Docs</strong>  <br />
+<a href="http://sling.apache.org/apidocs/sling6/index.html">Sling 6</a> <br />
+<a href="http://sling.apache.org/apidocs/sling5/index.html">Sling 5</a> <br />
+</p>
+<p><strong>Project info</strong> <br />
+<a href="http://sling.apache.org/site/downloads.cgi">Downloads</a> <br />
+<a href="http://www.apache.org/licenses/">License</a> <br />
+<a href="/contributing.html">Contributing</a> <br />
+<a href="/news.html">News</a> <br />
+<a href="/links.html">Links</a> <br />
+<a href="/project-information.html">Project Information</a> <br />
+<a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a> <br />
+<a href="http://svn.apache.org/viewvc/sling/trunk">Browse Source Repository</a> <br />
+<a href="/security.html">Security</a> <br />
+</p>
+<p><strong>Sponsorship</strong> <br />
+<a href="http://www.apache.org/foundation/thanks.html">Thanks</a> <br />
+<a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a> <br />
+<a href="http://www.apache.org/foundation/buy_stuff.html">Buy Stuff</a> <br />
+</p>
+<iframe 
+    src="http://www.apache.org/ads/button.html"
+    style="border-width:0; float: left" frameborder="0" 
+    scrolling="no"
+    width="135" 
+    height="135">
+</iframe>
+    </div>
+    
+    <div class="main">
+      <div class="breadcrump" style="font-size: 80%;">
+        <a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/documentation.html">Documentation</a>&nbsp;&raquo&nbsp;<a href="/documentation/development.html">Development</a>
+      </div>
+      <h1>MavenTipsAndTricks</h1>
+      <p>Here's our collection of tips and tricks for building Sling with <a href="">Maven</a>.</p>
+<h1 id="maven-local-repository">Maven local repository</h1>
+<p>The first time you run a Maven build, or when Maven needs additional build components, it downloads plugins and dependencies under its <em>local repository</em> folder on your computer. By default, this folder is named <em>.m2/repository</em> in your home directory.</p>
+<p>Maven uses this repository as a cache for artifacts that it might need for future builds, which means that the first Sling build usually takes much longer than usual, as Maven needs to download many tools and dependencies into its local repository while the build progresses.</p>
+<p>The build might fail if one of those downloads fails, in that case it might be worth retrying the build, to check if that was just a temporary connection problem, or if there's a more serious error.</p>
+<p>In some cases, the local Maven repository might get corrupted - if your build fails on a computer and works on another one, clearing the local repository before restarting the build might be worth trying.</p>
+<h1 id="maven-settings">Maven settings</h1>
+<h2 id="ignore-your-local-settings">Ignore your local settings</h2>
+<p>To make sure you're getting the same results as we are when building Sling, it is recommend to ignore any local settings.</p>
+<p>On unixish platforms, using</p>
+<div class="codehilite"><pre><span class="n">mvn</span> <span class="o">-</span><span class="n">s</span> <span class="sr">/dev/</span><span class="n">null</span> <span class="o">...</span>
+</pre></div>
+
+
+<p>does the trick.</p>
+<p>{note}
+Does anyone have a similar command-line option that works under Windows?
+{note}</p>
+<h1></h1>
+<h1 id="maven_opts">MAVEN_OPTS</h1>
+<p>The MAVEN_OPTS environment variable defines options for the JVM that executes Maven.</p>
+<p>Set it according to your platform, i.e. <code>export MAVEN*OPTS=...</code> on unixish systems or <code>set MAVEN*OPTS=...</code> on Windows.</p>
+<h2 id="increase-jvm-memory-if-needed">Increase JVM memory if needed</h2>
+<p>If getting an OutOfMemoryException when running mvn, try setting</p>
+<div class="codehilite"><pre><span class="n">MAVEN_OPTS</span><span class="o">=</span><span class="s">&quot;-Xmx256M -XX:MaxPermSize=256m&quot;</span>
+</pre></div>
+
+
+<p>to allocate 256MB of RAM to Maven.</p>
+<h2 id="debugging-code-launched-by-maven">Debugging code launched by Maven</h2>
+<p>To run the Sling launchpad webapp in debug mode from Maven, for example, use something like</p>
+<div class="codehilite"><pre><span class="n">MAVEN_OPTS</span><span class="o">=</span><span class="s">&quot;-agentlib:jdwp=transport=dt_socket,address=30303,server=y,suspend=n&quot;</span>
+</pre></div>
+
+
+<p>And then connect to port 30303 with a remote JVM debugger (most IDEs do this).</p>
+<h2 id="avoid-spaces-in-maven-repository-and-workspace-paths">Avoid spaces in Maven repository and workspace paths</h2>
+<p>Some Maven plugins do not like spaces in paths. It is better to avoid putting your Maven repository, or your code, under paths like <em>Documents and Settings</em>, for example.</p>
+      <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+        Rev. 1341376 by fmeschbe on Tue, 22 May 2012 09:41:06 +0000
+      </div>
+      <div class="trademarkFooter"> 
+        Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project
+        logo are trademarks of The Apache Software Foundation. All other marks mentioned
+        may be trademarks or registered trademarks of their respective owners.
+      </div>
+    </div>
+  </body>
+</html>