incubator-sling-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r818667 [9/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...
Date Tue, 22 May 2012 09:41:27 GMT
Added: websites/staging/sling/trunk/content/documentation/development/sling.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/development/sling.html (added)
+++ websites/staging/sling/trunk/content/documentation/development/sling.html Tue May 22 09:41:22 2012
@@ -0,0 +1,338 @@
+<!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 Sling 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 Sling Plugin</h1>
+      <p>The Maven Sling Plugin provides a number of goals which may be of help while developping bundles for Sling. To run the plugin you need at least Maven 2.x and JDK 1.5 or higher. Maven Sling Plugin provides the following goals:</p>
+<p>| <a href="">sling:deploy</a> | Deploy a OSGi-bundle into a running Sling instance. |
+| <a href="">sling:deploy-file</a> | Deploy a OSGi-bundle into a running Sling instance without requiring a project descriptor file. |</p>
+<p>| <a href="">sling:install-file</a> | Install a OSGi-bundle into a running Sling instance without requiring a project descriptor file. |</p>
+<h2 id="usage">Usage</h2>
+<p>You should specify the version in your project's plugin configuration:</p>
+<div class="codehilite"><pre><span class="nt">&lt;project&gt;</span>
+  ...
+  <span class="nt">&lt;build&gt;</span>
+    <span class="c">&lt;!-- To define the plugin version in your parent POM --&gt;</span>
+    <span class="nt">&lt;pluginManagement&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-sling-plugin<span class="nt">&lt;/artifactId&gt;</span>
+          <span class="nt">&lt;version&gt;</span>2.0.5-SNAPSHOT<span class="nt">&lt;/version&gt;</span>
+        <span class="nt">&lt;/plugin&gt;</span>
+        ...
+      <span class="nt">&lt;/plugins&gt;</span>
+    <span class="nt">&lt;/pluginManagement&gt;</span>
+    <span class="c">&lt;!-- To use the plugin goals in your POM or parent POM --&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-sling-plugin<span class="nt">&lt;/artifactId&gt;</span>
+        <span class="nt">&lt;version&gt;</span>2.0.5-SNAPSHOT<span class="nt">&lt;/version&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>
+
+
+<p>For more information, see <a href="">"Guide to Configuring Plug-ins"</a></p>
+<p>{anchor:deploy}</p>
+<h2 id="the-deploy-goal">The <code>deploy</code> goal</h2>
+<p>The <code>deploy</code> goal uploads a bundle to a Sling OSGi Bundle Repository server implemented by the <em>sling-obr</em> bundle, which may be located on a remote system. The plugin places an HTTP <code>POST</code> request to the server sending the bundle file.&nbsp;</p>
+<h3 id="use">Use</h3>
+<p>To use the <code>deploy</code> goal of the Maven Sling 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-sling-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>deploy-bundle<span class="nt">&lt;/id&gt;</span>
+            <span class="nt">&lt;goals&gt;</span>
+              <span class="nt">&lt;goal&gt;</span>deploy<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>
+
+
+<h3 id="configuration">Configuration</h3>
+<p>The <code>deploy</code> goal may be configured in the <code>&lt;configuration&gt;</code> element using the following properties:
+| Parameter | Default Value | System Property Overwrite | Description |
+|--|--|--|--|
+| <code>skip</code> | <code>false</code> | <code>sling.deploy.skip</code> | Whether to skip this step even though it has been configured in the project to be executed. The main use of this setting is preventing deployment of the bundle to a Sling OSGi Bundle Repository server if it is known that there is none or if such an upload is not required. |
+| <code>buildDirectory</code> | <code>$\{project.build.directory</code>} | - | The path of the file to be installed |
+| <code>jarName</code> | <code>$\{project.build.finalName}.jar</code> | - | The name of the file to be installed |
+| <code>obr</code> | - | <code>obr</code> | The URL of the running Sling instance to which the bundle is installed. Note that this parameter is required and has no defualt value. It must always be specified in the configuration section or on the command line. |
+{anchor:deploy-file}</p>
+<h2 id="the-deploy-file-goal">The <code>deploy-file</code> goal</h2>
+<p>The <code>deploy-file</code> goal is equivalent to the <code>deploy</code> goal except, that the <code>deploy-file</code> does not require a project descriptor file while the <code>deploy</code> goal does. In other words the <code>deploy-file</code> goal may used to upload any bundle file available to a Sling OBR server instance.</p>
+<h3 id="use_1">Use</h3>
+<p>The <code>deploy-file</code> goal may only be used from the command line by explicitly calling it as in:</p>
+<div class="codehilite"><pre><span class="nv">$</span> <span class="nv">mvn</span> <span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">sling:maven</span><span class="o">-</span><span class="n">sling</span><span class="o">-</span><span class="n">plugin:deploy</span><span class="o">-</span><span class="n">file</span> <span class="o">-</span><span class="n">Dsling</span><span class="o">.</span><span class="n">file</span><span class="o">=</span><span class="sr">&lt;file&gt;</span> <span class="o">-</span><span class="n">Dobr</span><span class="o">=</span><span class="sr">&lt;url&gt;</span>
+</pre></div>
+
+
+<p>Specifying the bundle file to upload with the <code>sling.file</code> property is required.</p>
+<h3 id="configuration_1">Configuration</h3>
+<p>The <code>deploy-file</code> supports similar configuration parameters as the <code>deploy</code> goal with the exception of the <code>skip</code> parameter which makes no sense. In addition, all parameters must be specified on the command line by setting system properties. The <code>bundleFileName</code> parameter specified as the <code>sling.file</code> system property as well as the <code>obr</code> URL are required by the <code>deploy-file</code> goal.
+| Parameter | Default Value | System Property Overwrite | Description |
+|--|--|--|--|
+| <code>bundleFileName</code> | <code>$\{project.build.directory}/$\{project.build.finalName}.jar</code> | <code>sling.file</code> | The path and name of the file to be installed |
+| <code>obr</code> | - | <code>obr</code> | The URL of the running Sling instance to which the bundle is installed. Note that this parameter is required and has no defualt value. It must always be specified in the configuration section or on the command line. |
+Example: To deploy the bundle file <code>someBundle.jar</code> to the OBR running at <code>[http://obr.sample.org]()</code> you might use the goal as follows:</p>
+<div class="codehilite"><pre><span class="nv">$</span> <span class="nv">mvn</span> <span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">sling:maven</span><span class="o">-</span><span class="n">sling</span><span class="o">-</span><span class="n">plugin:deploy</span><span class="o">-</span><span class="n">file</span> <span class="o">-</span><span class="n">Dsling</span><span class="o">.</span><span class="n">file</span><span class="o">=</span><span class="n">someBundle</span><span class="o">.</span><span class="n">jar</span> <span class="o">-</span><span class="n">Dobr</span><span class="o">=</span><span class="n">http:</span><span class="sr">//o</span><span class="n">br</span><span class="o">.</span><span class="n">sample</span><span class="o">.</span><span class="n">org</span>
+</pre></div>
+
+
+<p>{anchor:install}</p>
+<h2 id="the-install-goal">The <code>install</code> goal</h2>
+<p>The <code>install</code> goal uploads a bundle to a running sling instance, which may be located on a remote system. The plugin places an HTTP <code>POST</code> request to the sling instance sending the bundle file together with flags indicating whether to start the bundle and what start level to assign the bundle. It's also possible to HTTP <code>PUT</code> instead of <code>POST</code> for WebDAV.</p>
+<h3 id="use_2">Use</h3>
+<p>To use the <code>install</code> goal of the Maven Sling 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-sling-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>install-bundle<span class="nt">&lt;/id&gt;</span>
+            <span class="nt">&lt;goals&gt;</span>
+              <span class="nt">&lt;goal&gt;</span>install<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>
+
+
+<h3 id="configuration_2">Configuration</h3>
+<p>The <code>install</code> goal may be configured in the <code>&lt;configuration&gt;</code> element using the following properties:
+| Parameter | Default Value | System Property Overwrite | Description |
+|--|--|--|--|
+| <code>skip</code> | <code>false</code> | <code>sling.install.skip</code> | Whether to skip this step even though it has been configured in the project to be executed. The main use of this setting is preventing installation of the bundle to a running Sling installation if it is known that there is none or if such an upload is not required, for example when building the bundle in an automated build system such as Confluence. |
+| <code>bundleFileName</code> | <code>$\{project.build.directory}/$\{project.build.finalName}.jar</code> | <code>sling.file</code> | The path and name of the file to be installed |
+| <code>bundleStart</code> | <code>true</code> | <code>sling.bundle.start</code> | Whether to start the bundle after installing it. If the bundle is just updated, this parameter is ignored even if the bundle is currently stopped |
+| <code>bundleStartLevel</code> | <code>20</code> | <code>sling.bundle.startlevel</code> | The start level to set on the installed bundle. If the bundle is already installed and therefore is only updated this parameter is ignored. The parameter is also ignored if the running Sling instance has no StartLevel service (which is unusual actually) |
+| <code>slingUrl</code> | <code>http{</code>}<code>://localhost:8080/sling</code> | <code>sling.url</code> | The URL of the running Sling instance to which the bundle is installed |
+| <code>user</code> | <code>admin</code> | <code>sling.user</code> | The name of the user to authenticate as with the running Sling instance given by the <code>slingUrl</code> parameter |
+| <code>password</code> | <code>admin</code> | <code>sling.password</code> | The password of the user to authenticate as with the running Sling instance given by the <code>slingUrl</code> parameter |</p>
+<p>| <code>usePut</code> | <code>false</code> | <code>sling.usePut</code> | If a simple HTTP PUT should be used instead of the standard POST to the  felix console. In the uninstall goal, a HTTP DELETE will be  used. |
+| <code>refreshPackages</code> | <code>true</code> | <code>sling.refreshPackages</code> | Whether to refresh the packages after installing the uploaded bundle. If this property is set to <code>true</code>, the <code>PackageAdmin.refreshPackages(Bundle\[\]())</code> method is called after installing or updating the bundle. |
+{anchor:install-file}</p>
+<h2 id="the-install-file-goal">The <code>install-file</code> goal</h2>
+<p>The <code>install-file</code> goal is equivalent to the <code>install</code> goal except, that the <code>install-file</code> does not require a project descriptor file while the <code>install</code> goal does. In other words the <code>install-file</code> goal may used to upload any bundle file available to a running Sling instance.</p>
+<h3 id="use_3">Use</h3>
+<p>The <code>install-file</code> goal may only be used from the command line by explicitly calling it as in:</p>
+<div class="codehilite"><pre><span class="nv">$</span> <span class="nv">mvn</span> <span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">sling:maven</span><span class="o">-</span><span class="n">sling</span><span class="o">-</span><span class="n">plugin:install</span><span class="o">-</span><span class="n">file</span> <span class="o">-</span><span class="n">Dsling</span><span class="o">.</span><span class="n">file</span><span class="o">=</span><span class="sr">&lt;file&gt;</span>
+</pre></div>
+
+
+<p>Specifying the bundle file to upload with the <code>sling.file</code> property is required.</p>
+<h3 id="configuration_3">Configuration</h3>
+<p>The <code>install-file</code> supports the same configuration parameters as the <code>install</code> goal with the exception of the <code>skip</code> parameter which makes no sense. In addition, all parameters must be specified on the command line by setting system properties. The <code>bundleFileName</code> parameter specified as the <code>sling.file</code> system property is required by the <code>install-file</code> goal.</p>
+<p>For a description of the parameters see the configuration section of the <a href=""><code>install</code> goal</a> above.</p>
+<p>Example: To upload the bundle file <code>someBundle.jar</code> you might use the goal as follows:</p>
+<div class="codehilite"><pre><span class="nv">$</span> <span class="nv">mvn</span> <span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">sling:maven</span><span class="o">-</span><span class="n">sling</span><span class="o">-</span><span class="n">plugin:install</span><span class="o">-</span><span class="n">file</span> <span class="o">-</span><span class="n">Dsling</span><span class="o">.</span><span class="n">file</span><span class="o">=</span><span class="n">someBundle</span><span class="o">.</span><span class="n">jar</span>
+</pre></div>
+
+
+<p>{anchor:uninstall}</p>
+<h2 id="the-uninstall-goal">The <code>uninstall</code> goal</h2>
+<p>The <code>uninstall</code> goal uninstalls a bundle from a running sling instance, which may be located on a remote system. The plugin uninstalles a bundle via a HTTP <code>POST{</code>}request. It's also possible to use HTTP <code>DELETE</code> instead of <code>POST</code> for WebDAV.</p>
+<h3 id="use_4">Use</h3>
+<p>To use the <code>uninstall</code> goal of the Maven Sling 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-sling-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>uninstall-bundle<span class="nt">&lt;/id&gt;</span>
+            <span class="nt">&lt;goals&gt;</span>
+              <span class="nt">&lt;goal&gt;</span>uninstall<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>
+
+
+<h3 id="configuration_4">Configuration</h3>
+<p>The <code>uninstall</code> goal may be configured in the <code>&lt;configuration&gt;</code> element using the following properties:
+| Parameter | Default Value | System Property Overwrite | Description |
+|--|--|--|--|
+| <code>bundleFileName</code> | <code>$\{project.build.directory}/$\{project.build.finalName}.jar</code> | <code>sling.file</code> | The path and name of the file to be uninstalled |
+| <code>slingUrl</code> | <code>http{</code>}<code>://localhost:8080/sling</code> | <code>sling.url</code> | The URL of the running Sling instance to which the bundle should be uninstalled |
+| <code>user</code> | <code>admin</code> | <code>sling.user</code> | The name of the user to authenticate as with the running Sling instance given by the <code>slingUrl</code> parameter |
+| <code>password</code> | <code>admin</code> | <code>sling.password</code> | The password of the user to authenticate as with the running Sling instance given by the <code>slingUrl</code> parameter |
+| <code>usePut</code> | <code>false</code> | <code>sling.usePut</code> | In the uninstall goal, a HTTP DELETE will be used. |
+{anchor:validate}</p>
+<h2 id="the-validate-goal">The <code>validate</code> goal</h2>
+<p>The <code>validate</code> goal checks the JSON code of a bundle.</p>
+<h3 id="use_5">Use</h3>
+<p>To use the <code>validate</code> goal of the Maven Sling 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-sling-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>validate-bundle<span class="nt">&lt;/id&gt;</span>
+            <span class="nt">&lt;goals&gt;</span>
+              <span class="nt">&lt;goal&gt;</span>validate<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>
+
+
+<h3 id="configuration_5">Configuration</h3>
+<p>The <code>validate</code> goal may be configured in the <code>&lt;configuration&gt;</code> element using the following properties:
+| Parameter | Default Value | System Property Overwrite | Description |
+|--|--|--|--|
+| <code>skip</code> | <code>false</code> | <code>sling.validation.skip</code> | Whether to skip the validation |
+| <code>skipJson</code> | <code>false</code> | <code>sling.validation.skipJson</code> | Whether to skip the JSON validation. At the time, there's no difference between <code>skip</code> and <code>skipJson</code> because only JSON files will be validated by now. |</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/version-policy.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/development/version-policy.html (added)
+++ websites/staging/sling/trunk/content/documentation/development/version-policy.html Tue May 22 09:41:22 2012
@@ -0,0 +1,248 @@
+<!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 - Version Policy</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>Version Policy</h1>
+      <p>This page is about how we assign versions to exported packages and bundles and defines when to increase which part of the version number.</p>
+<p>{info}
+Please note that this page is currently in draft stage and still being discussed.
+{info}</p>
+<div class="toc">
+<ul>
+<li><a href="#introduction">Introduction</a></li>
+<li><a href="#version-number-syntax">Version Number Syntax</a></li>
+<li><a href="#evolution-of-exported-package-versions">Evolution of Exported Package Versions</a></li>
+<li><a href="#evolution-of-bundle-versions">Evolution of Bundle Versions</a></li>
+<li><a href="#examples">Examples</a><ul>
+<li><a href="#pure-api-bundle">Pure API Bundle</a></li>
+<li><a href="#implementation-bundle-providing-api">Implementation Bundle providing API</a></li>
+<li><a href="#pure-implementation-bundle">Pure Implementation Bundle</a></li>
+</ul>
+</li>
+<li><a href="#importing-packages">Importing Packages</a></li>
+<li><a href="#references">References</a></li>
+</ul>
+</div>
+<h2 id="introduction">Introduction</h2>
+<p>In comments to SLING-1176 Ian Boston wrote:</p>
+<p>{quote}
+The exports in bundle/api/pom.xml look like they might become problematic from a support point of view, although we probably can't avoid this. [...]() [The problem is the] manual maintenance of the version numbers. (not a big problem but needs to be done)
+{quote}</p>
+<p>I agree, that this is a problem. So let me reasonate on this a bit ;-)</p>
+<p>As a reference you might want to read <a href="">my blog post on version numbers</a> and also what the [Eclipse guys have to say|http://wiki.eclipse.org/index.php/Version_Numbering] (great read, btw). The OSGi Alliance has come up with a good definition for [Semantic Versioning|http://www.osgi.org/wiki/uploads/Links/SemanticVersioning.pdf] to which the definitions described below perfectly match.</p>
+<p>For Sling we have three kinds of version numbers:</p>
+<ol>
+<li>Big Sling Releases</li>
+<li>Sling Bundles</li>
+<li>Package Exports</li>
+</ol>
+<p><em>Big Sling Releases</em></p>
+<p>For <em>Big Sling releases</em> we already have an ample solution in that we just use a single number increased from release to release. Just remember that a <em>Big Sling release</em> is a convenience release of existing released Sling bundles.</p>
+<p><em>Sling Bundles</em></p>
+<p>For <em>Sling Bundles</em> version numbers are just defined as the <code>&lt;version&gt;</code> element of the bundle's POM. The only restriction here is, that we decided to use even numbers for releases and odd numbers for SNAPSHOTs. Whether and when which version part is increased is not explicitly defined yet.</p>
+<p><em>Package Exports</em></p>
+<p>For <em>Package Exports</em> the situation is more problematic since there are a number of places to set exported package version number:</p>
+<ul>
+<li>In a <code>packageinfo</code> file inside the package (picked up by the Maven Bundle Plugin to set the export version)</li>
+<li>Explicitly in the <code>&lt;Export-Package&gt;</code> element of the Maven Bundle Plugin configuration</li>
+<li>By reference to the bundle version number using the <code>$\{pom.version</code>} variable.</li>
+</ul>
+<p>Upto now, we mostly used the <code>$\{pom.version</code> notation linking the exported package version to the bundle version. Over time this mechanism leads to a number of problems:</p>
+<ul>
+<li>For bundles with more than one package exported, the exported packages will evolve independently. As a consequence their versionin should also evolve independently. An example of such a bundle is the Sling API bundle of course.</li>
+<li>Linking the package export version number to the bundle version number confuses the actual semantics of both version numbers. The package export version number only indicates the version of the actual package while the bundle version number indicates a development state of the overall bundle. This will generally not be the same.</li>
+<li>The version of the exported package is increased on each bundle release, even though nothing may have changed on the export. In such a situation the version of the export should stay the same.</li>
+</ul>
+<p>That said, the reuse of the bundle version as the package export version still is probably the correct thing to do for legacy library wrappers.</p>
+<p>Consider for example the Sling API bundle, which exports 9 packages. Each of which may evolve independently. Now the <code>resource</code> package is extended causing a minor version increase. Should the version numbers of the other exports also be increased ? Thus acting as if there was some API change ?</p>
+<p>I would say, no. Particularly if some API implementation bundle is restricting the import version of the API implemented. Such an implementation would immediately stop working because the version has been increased. But since there has been no change, the implementation would still be correct.</p>
+<p>So, I think, we should evolve the exported package versions independently from each other and even independently from the bundle version.</p>
+<p>This places more burden on the developer when deciding on the exported package version - in fact this requires such a decision as compared to have Maven take the decision by just setting the bundle version.</p>
+<p>The only problem is: Where shall this be noted ? In the POM or in the <code>packageinfo</code> file ? If we would place the <code>packageinfo</code> file just beneath the class source files, I would say, in the <code>packageinfo</code> file.</p>
+<p>But this would require defining the class source locations as resource location in the POM (at least for <code>packageinfo</code>) files.</p>
+<p>I am not sure ....</p>
+<p>This has not been discussed at large, but I would assume, that the POM is still the correct place to take note of the version of the exported packages.</p>
+<p><em>Future</em></p>
+<p>The newest versions of the BND library also support an <code>@Export</code> annotation in the <code>package-info.java</code> pseudo class file. This pseudo class is supported starting with Java 5 to take package level annotations (like the <code>@Export</code> annotation) and as a replacement of the <code>package-info.html</code> file.</p>
+<p>Using this syntax something like the following would be easily possible:</p>
+<div class="codehilite"><pre><span class="o">/**</span>
+ <span class="o">*</span> <span class="n">This</span> <span class="n">is</span> <span class="n">the</span> <span class="n">Package</span> <span class="n">Level</span> <span class="n">JavaDoc</span>
+ <span class="o">*/</span>
+<span class="nv">@Export</span><span class="p">(</span><span class="n">version</span> <span class="o">=</span> <span class="s">&quot;1.0&quot;</span><span class="p">)</span>
+<span class="nb">package</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">api</span><span class="o">.</span><span class="n">auth</span><span class="p">;</span>
+<span class="nb">import</span> <span class="n">aQute</span><span class="o">.</span><span class="n">bnd</span><span class="o">.</span><span class="n">annotation</span><span class="o">.</span><span class="n">Export</span><span class="p">;</span>
+</pre></div>
+
+
+<p>See <a href="">Bnd Experimental</a> for details. Unfortunately the current Maven Bundle Plugin version does not support updating to the most recent BND library versions due to incompatibilities.</p>
+<h2 id="version-number-syntax">Version Number Syntax</h2>
+<p>As a small reminder, this is how a version number is constructed:  In OSGi version numbers are composed of four (4) segments: 3 integers and a string named major.minor.micro.qualifier.</p>
+<p>Each segment captures a different intent:</p>
+<div class="codehilite"><pre><span class="o">*</span> <span class="n">the</span> <span class="n">major</span> <span class="n">segment</span> <span class="n">indicates</span> <span class="n">breakage</span> <span class="n">in</span> <span class="n">the</span> <span class="n">API</span>
+<span class="o">*</span> <span class="n">the</span> <span class="n">minor</span> <span class="n">segment</span> <span class="n">indicates</span> <span class="o">*</span><span class="n">externally</span> <span class="n">visible</span><span class="o">*</span> <span class="n">changes</span>
+<span class="o">*</span> <span class="n">the</span> <span class="n">micro</span> <span class="n">segment</span> <span class="n">indicates</span> <span class="n">bug</span> <span class="n">fixes</span>
+<span class="o">*</span> <span class="n">the</span> <span class="n">qualifier</span> <span class="n">segment</span> <span class="n">is</span> <span class="ow">not</span> <span class="n">generally</span> <span class="n">used</span> <span class="n">but</span> <span class="n">may</span> <span class="n">be</span> <span class="n">used</span> <span class="n">to</span> <span class="n">convey</span> <span class="n">more</span> <span class="n">information</span> <span class="n">about</span> <span class="n">a</span> <span class="n">particular</span> <span class="n">build</span><span class="p">,</span> <span class="n">such</span> <span class="n">as</span> <span class="n">a</span> <span class="n">build</span> <span class="nb">time</span> <span class="ow">or</span> <span class="n">an</span> <span class="n">SVN</span> <span class="n">revision</span> <span class="n">number</span><span class="o">.</span>
+</pre></div>
+
+
+<h2 id="evolution-of-exported-package-versions">Evolution of Exported Package Versions</h2>
+<p>Version numbers of exported packages evolve independently from each other. Depending on the changes applied, the micro, minor, or major segement is increased. Whenever the major segment is increased, the minor and micro segments are reset to zero. Whenever the minor segment is increased, the micro segment is reset to zero.</p>
+<p>Segments are increased according to the above listing.</p>
+<p>This requires committers to think well about changes they apply to exported packages:</p>
+<ul>
+<li>Removing interfaces, methods or constants is likely an API breakage and thus requires a major version increase. In Sling we try to prevent this from happening.</li>
+<li>Adding new methods to interfaces is likely just an <em>externally visible</em> change and thus requires a minor version increase</li>
+<li>Fixing a bug in an exported class just requires a minor version increase.</li>
+</ul>
+<p>JavaDoc updates generally do not constitute a reason to evolve the version number. The exception is that if the JavaDoc update is caused by a API limitation, it might be conceivable to increase the version number of the exported package. A decision on this will have to be taken on a case-by-case basis.</p>
+<h2 id="evolution-of-bundle-versions">Evolution of Bundle Versions</h2>
+<p>Version numbers of bundles evolve depending on the evolution of the exported packages but also depending on the evolution of the private code, which is not exported.</p>
+<p>As a rule of thumb, the following reasons apply for increasing the segments of bundle version numbers:</p>
+<ul>
+<li>Increasing the major version number of any of the exported packages or restructuring the bundle such that major parts are removed from the bundle (and either completely removed or moved to other bundle(s)).</li>
+<li>Increasing the minor version number of any of the exported packages or refactoring the internal code or implementing a package exported by another bundle whose minor (or even major) version number has increased. Also functional extensions of the internal bundle classes consitutes a reason to increase the minor version number.</li>
+<li>Increasing the micro version number of any of the exported packages or bug fixes.</li>
+</ul>
+<p>Note, that this definition does not require the bundle and epxorted package version numbers to be synchronized in any way. While doing so might help in a first or second step, over time it will become close to impossible to keep the versions in sync. So rather than trying to keep the versions in sync, we should make sure, we increase the versions correctly.</p>
+<h2 id="examples">Examples</h2>
+<h3 id="pure-api-bundle">Pure API Bundle</h3>
+<p>An example of an almost <em>Pure API Bundle</em> is the Sling API bundle. This bundle exports 9 packages. Some are really stable -- e.g. the <code>org.apache.sling.api</code> package or the <code>org.apache.sling.wrappers</code> package -- and some are being worked on at the moment -- e.g. the <code>org.apache.sling.resource</code> package.</p>
+<p>To not break existing users of the unmodified packages, the exported versions of these packages must not be increased.</p>
+<p>To signal to users of evolving packages, that there might be new and interesting functionality, the version number must be increased according to above definition. This also conveys to the implementor(s) of the API, that they have to take some action.</p>
+<p>A hypothetical evolution of version numbers shown on two packages and the bundle version might be as follows</p>
+<p>| Description | <code>api</code> package | <code>resource</code> package | bundle |
+| Initial Release | 1.0.0 | 1.0.0 | 1.0.0 |
+| Bug fix in a <code>resource</code> class | 1.0.0 | 1.0.2 | 1.0.2 |
+| New API in the <code>resource</code> package | 1.0.0 | 1.1.0 | 1.1.0 |
+| New API in the <code>api</code> package | 1.1.0 | 1.1.0 | 1.2.0 |
+| API breakage in the <code>api</code> package | 2.0.0 | 1.1.0 | 2.0.0 |</p>
+<h3 id="implementation-bundle-providing-api">Implementation Bundle providing API</h3>
+<p>An example of such a hybrid bundle is the Sling Engine bundle. This bundle exports two packages themselves defining API and contains a number of internal packages which actually implement parts of the Sling API.</p>
+<p>A hypothetical evolution of version numbers shown on one exported package and the bundle version might be as follows</p>
+<p>| Description | <code>engine</code> package | bundle |
+| Initial Release | 1.0.0 | 1.0.0 |
+| Bug fix in a <code>engine</code> class | 1.0.2 | 1.0.2 |
+| Bug fix in an internal calss | 1.0.2 | 1.0.4 |
+| New API in the <code>engine</code> package | 1.1.0 | 1.1.0 |
+| Implement new API from <code>api</code> 1.1.0 | 1.1.0 | 1.2.0 |
+| Refactor internal classes | 1.1.0 | 1.3.0 |
+| Implement API from <code>api</code> 2.0.0 | 1.1.0 | 2.0.0 |</p>
+<h3 id="pure-implementation-bundle">Pure Implementation Bundle</h3>
+<p>For Pure Implementation Bundles only the bundle version numbers are maintained because there is no exported package whose version number needs to be managed. This makes the decision process of version number evolution very simple.</p>
+<h2 id="importing-packages">Importing Packages</h2>
+<p>When importing packages a version number will automatically be generated by the Maven Bundle Plugin as follows:</p>
+<ul>
+<li>If the providing package exports a package with an explicit version number, that exact version number will be used as the lower bound</li>
+<li>If such a lower bound exists, the upper bound is exclusive the next major version number.</li>
+</ul>
+<p>For example if importing the <code>api</code> package exported at version 1.2.3, the <code>Import-Package</code> statement is generated as</p>
+<div class="codehilite"><pre><span class="n">Import</span><span class="o">-</span><span class="n">Package:</span> <span class="n">api</span><span class="p">;</span><span class="n">version</span><span class="o">=</span><span class="p">[</span><span class="mf">1.2.3</span><span class="p">,</span><span class="mf">2.0.0</span><span class="p">)</span>
+</pre></div>
+
+
+<p>This default works well for consumers of the API, since according to above definitions an API is guaranteed to not contain breakages if the major version number is not increased.</p>
+<p>For bundles implementing the API, this default does not work well, since from their point of view an <em>externally visible</em> change in fact constitutes a breakage, because the implementation is not complete. So if a bundle implements a package a manually crafted import version should be defined which includes the export version of the defining bundle but excludes the next minor version.</p>
+<p>For example implementing the <code>api</code> package exported at version 1.2.3, would require the following manually created <code>Import-Package</code> statement:</p>
+<div class="codehilite"><pre><span class="n">Import</span><span class="o">-</span><span class="n">Package:</span> <span class="n">api</span><span class="p">;</span><span class="n">version</span><span class="o">=</span><span class="p">[</span><span class="mf">1.2.3</span><span class="p">,</span><span class="mf">1.3.0</span><span class="p">)</span>
+</pre></div>
+
+
+<p>This allows for the implementation to work correctly with bug fixed package exports but as soon as there are any <em>externally visible</em> changes, the implementation bundle has to be adapted -- even if this just means increasing the upper version bound in the <code>Import-Package</code> statement thus guaranteeing compliance (again).</p>
+<p><em>Future</em></p>
+<p>Recent versions of the BND library support automatic differntiation between use and implementation of API and to set the import version ranges accordingly. See <a href="">Bnd Experimental</a> for details. Unfortunately the current Maven Bundle Plugin version does not support updating to the most recent BND library versions due to incompatibilities.</p>
+<h2 id="references">References</h2>
+<p><a href="">Version Numbers</a> -- The mail thread discussing version numbering
+<a href="">On Version Numbers</a> -- Blog about version numbers
+<a href="">Version Numbering</a> -- An Eclipse paper on assigning version numbers. Very good read.
+<a href="">Semantic Versioning</a> -- An OSGi Alliance paper on semantic versioning.
+<a href="">Bnd Experimental</a> -- Experimental extensions to the BND library; unfortunately these extensions are not yet usable with Maven Bundle Plugin 2.1.0 due to API changes in the BND library not supported by the plugin.</p>
+      <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+        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/getting-started.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/getting-started.html (added)
+++ websites/staging/sling/trunk/content/documentation/getting-started.html Tue May 22 09:41:22 2012
@@ -0,0 +1,112 @@
+<!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 Started</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>
+      </div>
+      <h1>Getting Started</h1>
+      <p>We're on the way to update the documentation to make it more easy to get in touch with Sling. At the moment we can give you the following starting points:</p>
+<ul>
+<li><a href="/documentation/getting-started/discover-sling-in-15-minutes.html">Discover Sling in 15 minutes</a></li>
+</ul>
+<h2 id="where-to-head-from-here">Where to head from here</h2>
+<p>We recommend you read through following topics to get as fast as possible into Sling: </p>
+<ul>
+<li><a href="/documentation/development/getting-and-building-sling.html">Getting and building Sling</a></li>
+<li><a href="/documentation/the-sling-engine/architecture.html">Architecture</a></li>
+<li><a href="/documentation/the-sling-engine/dispatching-requests.html">Dispatching Requests</a></li>
+<li><a href="/documentation/the-sling-engine/resources.html">Resources</a></li>
+<li><a href="">Setting up an Sling-Project with Eclipse</a></li>
+<li><a href="/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html">Manipulating Content - The SlingPostServlet (servlets.post)</a></li>
+<li><a href="/documentation/the-sling-engine/request-parameters.html">Request Parameters</a></li>
+<li><a href="/documentation/the-sling-engine/authentication.html">Authentication</a></li>
+<li><a href="/documentation/the-sling-engine/eventing-and-jobs.html">Eventing and Jobs</a></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/getting-started/discover-sling-in-15-minutes.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/getting-started/discover-sling-in-15-minutes.html (added)
+++ websites/staging/sling/trunk/content/documentation/getting-started/discover-sling-in-15-minutes.html Tue May 22 09:41:22 2012
@@ -0,0 +1,235 @@
+<!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 - Discover Sling in 15 minutes</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/getting-started.html">Getting Started</a>
+      </div>
+      <h1>Discover Sling in 15 minutes</h1>
+      <p>The Sling Launchpad is a ready-to-run Sling configuration, providing an embedded JCR content repository and web server, a selection of Sling components, documentation and examples. The Launchpad makes it easy to get started with Sling and to develop script-based applications.</p>
+<p>This page will help you get started with the Launchpad. Fifteen minutes should be enough to get an overview of what Sling does.</p>
+<p>While simple to run and understand, the Launchpad is a full-featured instance of Sling, an example configuration that we have created with the most common modules and configurations. The full functionality of Sling is available by loading additional Sling (or custom) OSGi bundles as needed, using the Launchpad's web-based OSGi management console.</p>
+<h2 id="see-also">See Also</h2>
+<p>Example applications and mini-applications for Sling can be found under http://svn.apache.org/repos/asf/sling/trunk/samples/ (each application has a <code>README.txt</code> file, see these for more details).</p>
+<p>Once you grok the basic examples of this page, we recommend studying the <em>espblog</em> and <em>webloader</em> samples for more complete examples. The <em>javashell</em> sample is useful to play with JCR java code (or any java code, for that matter) interactively.</p>
+<h2 id="prerequisites">Prerequisites</h2>
+<p>We'll start with the self-runnable jar from the Sling distribution, you only need a Java 5 JDK. Download the latest release from the Sling <a href="/downloads.html">Downloads</a> page or by clicking this link: [org.apache.sling.launchpad-6-standalone.jar|http://www.apache.org/dyn/closer.cgi/sling/org.apache.sling.launchpad-6-standalone.jar]. Alternatively you can deploy the [Sling Web application|http://www.apache.org/dyn/closer.cgi/sling/org.apache.sling.launchpad-6.war] into any decent Servlet Container such as Jetty or Tomcat or you can [build the current source yourself|Getting and Building Sling].</p>
+<p>To show the simplicity of the REST-style approach taken by Sling the examples below will be using <a href="">cURL</a>. Any HTTP client would do, but cURL is the easiest to document in a reproducible way.</p>
+<p>A WebDAV client makes editing server-side scripts much more convenient, but to make our examples easy to reproduce, we're using cURL below to create and update files in the JCR repository, via the Sling WebDAV server.</p>
+<h2 id="start-the-launchpad">Start the Launchpad</h2>
+<p>After downloading the Sling Launchpad self-runnable jar just start it as follows:</p>
+<div class="codehilite"><pre><span class="nv">$</span> <span class="nv">java</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="mi">6</span><span class="o">-</span><span class="n">standalone</span><span class="o">.</span><span class="n">jar</span>
+</pre></div>
+
+
+<p>This starts the Sling embedded Web Server on port 8080 and writes application files into the <code>sling</code> folder found in the current working directory.</p>
+<p>Once started, look at <a href="">http://localhost:8080/system/console/bundles</a> with your browser. Use <em>admin</em> with password <em>admin</em> if Sling asks you for a login. Sling then displays the <em>Felix Web Management Console</em> page.</p>
+<p>On the bundles page, all bundles should be marked <em>Active</em>. They're all <a href="">OSGi</a> bundles powered by [Apache Felix|http://felix.apache.org], but that doesn't really matter to us right now.</p>
+<p>{tip:title=Log files}
+If things go wrong, have a look at the <code>sling/logs/error.log</code> log file - that's where Sling writes any error messages.
+{tip}</p>
+<h2 id="create-some-content">Create some content</h2>
+<p>Until we have ready-to-test forms, you can create content with cURL, or you can create an HTML form that posts to the specified URL.</p>
+<p>To create a content node (nodes are a <a href="">JCR</a> concept, a unit of storage) with cURL, use:</p>
+<div class="codehilite"><pre><span class="n">curl</span> <span class="o">-</span><span class="n">u</span> <span class="n">admin:admin</span> <span class="o">-</span><span class="n">F</span><span class="s">&quot;sling:resourceType=foo/bar&quot;</span> <span class="o">-</span><span class="n">F</span><span class="s">&quot;title=some title&quot;</span> <span class="n">http:</span><span class="sr">//</span><span class="n">localhost:8080</span><span class="sr">/content/m</span><span class="n">ynode</span>
+</pre></div>
+
+
+<p>The resulting node can be seen at <a href="">http://localhost:8080/content/mynode.html</a>, or as json format under [http://localhost:8080/content/mynode.json|http://localhost:8080/content/mynode.json]. Lets try with cURL:</p>
+<div class="codehilite"><pre><span class="nv">$</span> <span class="nv">curl</span> <span class="n">http:</span><span class="sr">//</span><span class="n">localhost:8080</span><span class="sr">/content/m</span><span class="n">ynode</span><span class="o">.</span><span class="n">json</span>
+<span class="p">{</span><span class="s">&quot;title&quot;</span><span class="p">:</span><span class="s">&quot;some title&quot;</span><span class="p">,</span><span class="s">&quot;sling:resourceType&quot;</span><span class="p">:</span><span class="s">&quot;foo/bar&quot;</span><span class="p">,</span><span class="s">&quot;jcr:primaryType&quot;</span><span class="p">:</span><span class="s">&quot;nt:unstructured&quot;</span><span class="p">}</span>
+</pre></div>
+
+
+<p>This returns the properties of the <code>/content/mynode</code> in JSON format as we have created it above. The additional property <code>jcr:primaryType</code> is a special JCR property indicating the JCR primary node type.</p>
+<p>{tip:title=Monitoring requests}
+Sling provides a simple tool (an OSGi console plugin) to monitor HTTP requests, which helps understand how things work internally. See the <a href="/documentation/development/monitoring-requests.html">Monitoring Requests</a> page for details.
+{tip}</p>
+<h2 id="render-your-content-using-server-side-javascript-esp">Render your content using server-side javascript (ESP)</h2>
+<p>Sling uses scripts or servlets to render and process content.</p>
+<p>Several scripting languages are available as additional Sling modules (packaged as OSGi <em>bundles</em> that can be installed via the Sling management console), but the launchpad currently includes the ESP (server-side ECMAscript), JSP (Java Server Pages), and Groovy language modules by default.</p>
+<p>To select a script, Sling uses the node's <em>sling:resourceType</em> property, if it is set.</p>
+<p>That is the case in our example, so the following script will be used by Sling to render the node in HTML, if the script is found at <em>/apps/foo/bar/html.esp</em> in the repository.</p>
+<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV class="codeHeader panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;"><B>html.esp</B></DIV><DIV class="codeContent panelContent">
+    <html>
+      <body>
+        <h1>&lt;%= currentNode.title %&gt;</h1>
+      </body>
+    </html></p>
+<p>To select the script, Sling:
+<em> looks under </em>/apps<em>
+</em> and appends the <em>sling:resourceType</em> value of our node ( which is <em>foo/bar</em> ) 
+<em> and appends </em>html.esp<em>, as the extension of our URL is </em>html<em> and the language of our script is </em>esp*.</p>
+<p>Store this script under <em>/apps/foo/bar/html.esp</em>, either using a WebDAV client (connected to <a href="">http://admin:admin@localhost:8080/</a>), or using cURL as shown here, after creating the <em>html.esp</em> script in the current directory on your system:</p>
+<div class="codehilite"><pre><span class="n">curl</span> <span class="o">-</span><span class="n">X</span> <span class="n">MKCOL</span> <span class="o">-</span><span class="n">u</span> <span class="n">admin:admin</span> <span class="n">http:</span><span class="sr">//</span><span class="n">localhost:8080</span><span class="sr">/apps/</span><span class="n">foo</span>
+<span class="n">curl</span> <span class="o">-</span><span class="n">X</span> <span class="n">MKCOL</span> <span class="o">-</span><span class="n">u</span> <span class="n">admin:admin</span> <span class="n">http:</span><span class="sr">//</span><span class="n">localhost:8080</span><span class="sr">/apps/</span><span class="n">foo</span><span class="o">/</span><span class="n">bar</span>
+</pre></div>
+
+
+<p>create a local file <em>html.esp</em> and copy above content.</p>
+<div class="codehilite"><pre><span class="n">curl</span> <span class="o">-</span><span class="n">u</span> <span class="n">admin:admin</span> <span class="o">-</span><span class="n">T</span> <span class="n">html</span><span class="o">.</span><span class="n">esp</span> <span class="n">http:</span><span class="sr">//</span><span class="n">localhost:8080</span><span class="sr">/apps/</span><span class="n">foo</span><span class="sr">/bar/</span><span class="n">html</span><span class="o">.</span><span class="n">esp</span>
+</pre></div>
+
+
+<p>The HTML rendering of your node, at <a href="">http://localhost:8080/content/mynode.html</a>, is now created by this ESP script. You should see the node's title alone as an <h1> element in that page.</p>
+<p>A script named <em>POST.esp</em> instead of <em>html.esp</em> would be called for a POST request, <em>DELETE.esp</em> for DELETE, <em>xml.esp</em> for a GET request with a <em>.xml</em> extension, etc. See <a href="">URL to Script Resolution</a> on the Sling wiki for more info.</p>
+<p>Servlets can also be easily "wired" to handle specific resource types, extensions, etc., in the simplest case by using SCR annotations in the servlet source code. Servlets and scripts are interchangeable when it comes to processing Sling requests.</p>
+<h2 id="what-next">What next?</h2>
+<p>These simple examples show how Sling uses scripts to work with JCR data, based on <em>sling:resourceType</em> or node types.</p>
+<p>There's much more to Sling of course - you'll find some additional simple examples below, and above in the <em>see also</em> section.</p>
+<p>We are working on debugging features to help trace the way Sling processes requests. Have a look at <a href="">SLING-3</a> to see what's possible already.</p>
+<h1 id="additional-examples">Additional examples</h1>
+<h2 id="let-sling-generate-the-path-of-a-newly-created-node">Let Sling generate the path of a newly created node.</h2>
+<p>To create a node with a unique path at a given location, end the URL of the POST request with <em>/</em>.</p>
+<p>In this case, the Sling response redirects to the URL of the created node.</p>
+<p>Start by creating a new <em>/blog</em> folder:</p>
+<div class="codehilite"><pre><span class="n">curl</span> <span class="o">-</span><span class="n">X</span> <span class="n">POST</span> <span class="o">-</span><span class="n">u</span> <span class="n">admin:admin</span> <span class="s">&quot;http://localhost:8080/content/blog&quot;</span>
+</pre></div>
+
+
+<p>And create a node with a Sling-generated name under it:</p>
+<div class="codehilite"><pre><span class="n">curl</span> <span class="o">-</span><span class="n">D</span> <span class="o">-</span> <span class="o">-</span><span class="n">u</span> <span class="n">admin:admin</span> <span class="o">-</span><span class="n">F</span><span class="s">&quot;title=Adventures with Sling&quot;</span> <span class="s">&quot;http://localhost:8080/content/blog/&quot;</span>
+</pre></div>
+
+
+<p>Using cURL's <em>-D</em> option shows the full HTTP response, which includes a <em>Location</em> header to indicate where the new node was created:</p>
+<div class="codehilite"><pre><span class="n">Location:</span> <span class="sr">/blog/</span><span class="n">adventures_with_slin</span>
+</pre></div>
+
+
+<p>The actual node name might not be <em>adventures</em>with<em>slin</em> - depending on existing content in your repository, Sling will find a unique name for this new node, based on several well-know property values like title, description, etc. which are used for this if provided.</p>
+<p>So, in our case, our new node can be displayed in HTML via the <a href="">http://localhost:8080/blog/adventures<em>with</em>slin.html</a> URL.</p>
+<p>Note that we didn't set a <em>sling:resourceType</em> property on our node, so if you want to render that node with a script, you'll have to store the script under <em>/apps/nt/unstructured/html.esp</em>.</p>
+<h2 id="add-a-page-header-with-slinginclude">Add a page header with sling.include</h2>
+<p>The <em>sling.include</em> function can be called from scripts to include the rendered result of another node.</p>
+<p>In this example, we create a node at <em>/content/header</em>, rendered with a logo using an <em>html.esp</em> script, then use that header at the top of the <em>html.esp</em> script that we created previously for the <em>foo/bar</em> resource type.</p>
+<p>Start by checking that <a href="">http://localhost:8080/content/mynode.html</a> is rendered using the <em>html.esp</em> script created above.</p>
+<p>Create this script and name it <em>header.esp</em>:</p>
+<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV class="codeHeader panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;"><B>header.esp</B></DIV><DIV class="codeContent panelContent">
+    <div>
+      <p style="color:blue;">
+        <img src="/images/sling.jpg" align="right"/>
+        &lt;%= currentNode.headline %&gt;
+      </p>
+    </div></p>
+<p>Upload it so that it is used to render resources having <em>sling:resourceType=foo/header</em>:</p>
+<div class="codehilite"><pre><span class="n">curl</span> <span class="o">-</span><span class="n">X</span> <span class="n">MKCOL</span> <span class="o">-</span><span class="n">u</span> <span class="n">admin:admin</span> <span class="n">http:</span><span class="sr">//</span><span class="n">localhost:8080</span><span class="sr">/apps/</span><span class="n">foo</span><span class="sr">/header/</span>
+<span class="n">curl</span> <span class="o">-</span><span class="n">u</span> <span class="n">admin:admin</span> <span class="o">-</span><span class="n">T</span> <span class="n">header</span><span class="o">.</span><span class="n">esp</span> <span class="n">http:</span><span class="sr">//</span><span class="n">localhost:8080</span><span class="sr">/apps/</span><span class="n">foo</span><span class="sr">/header/</span><span class="n">html</span><span class="o">.</span><span class="n">esp</span>
+</pre></div>
+
+
+<p>Create the header node:</p>
+<div class="codehilite"><pre><span class="n">curl</span> <span class="o">-</span><span class="n">u</span> <span class="n">admin:admin</span> <span class="o">-</span><span class="n">F</span><span class="s">&quot;sling:resourceType=foo/header&quot;</span> <span class="o">-</span><span class="n">F</span><span class="s">&quot;headline=Hello, Sling world&quot;</span> <span class="n">http:</span><span class="sr">//</span><span class="n">localhost:8080</span><span class="sr">/content/</span><span class="n">header</span>
+</pre></div>
+
+
+<p>Upload the logo that the script uses (using sling.jpg or another logo in the current directory):</p>
+<div class="codehilite"><pre><span class="n">curl</span> <span class="o">-</span><span class="n">X</span> <span class="n">MKCOL</span> <span class="o">-</span><span class="n">u</span> <span class="n">admin:admin</span> <span class="n">http:</span><span class="sr">//</span><span class="n">localhost:8080</span><span class="sr">/images/</span>
+<span class="n">curl</span> <span class="o">-</span><span class="n">u</span> <span class="n">admin:admin</span> <span class="o">-</span><span class="n">T</span> <span class="n">sling</span><span class="o">.</span><span class="n">jpg</span> <span class="n">http:</span><span class="sr">//</span><span class="n">localhost:8080</span><span class="sr">/images/s</span><span class="n">ling</span><span class="o">.</span><span class="n">jpg</span>
+</pre></div>
+
+
+<p>And check that the header is rendered with the logo at <a href="">http://localhost:8080/content/header.html</a>.</p>
+<p>Now, update the html.esp script that we created for our first example above, to include the header:</p>
+<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV class="codeHeader panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;"><B>html.esp</B></DIV><DIV class="codeContent panelContent">
+    <html>
+      <body>
+        <div id="header">
+          &lt;% sling.include("/content/header"); %&gt;
+        </div>
+        <h1>&lt;%= currentNode.title %&gt;</h1>
+      </body>
+    </html></p>
+<p>And upload it again to replace the previous version:</p>
+<div class="codehilite"><pre><span class="n">curl</span> <span class="o">-</span><span class="n">u</span> <span class="n">admin:admin</span> <span class="o">-</span><span class="n">T</span> <span class="n">html</span><span class="o">.</span><span class="n">esp</span> <span class="n">http:</span><span class="sr">//</span><span class="n">localhost:8080</span><span class="sr">/apps/</span><span class="n">foo</span><span class="sr">/bar/</span><span class="n">html</span><span class="o">.</span><span class="n">esp</span>
+</pre></div>
+
+
+<p>The <a href="">http://localhost:8080/content/mynode.html</a>, once refreshed, now shows the blue headline and logo, and this layout also applies to any node created with <em>sling:resourceType=foo/bar</em>.</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/the-sling-engine.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/the-sling-engine.html (added)
+++ websites/staging/sling/trunk/content/documentation/the-sling-engine.html Tue May 22 09:41:22 2012
@@ -0,0 +1,121 @@
+<!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 - The Sling Engine</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>
+      </div>
+      <h1>The Sling Engine</h1>
+      <h2 id="general">General</h2>
+<ul>
+<li><a href="/documentation/the-sling-engine/architecture.html">Architecture</a></li>
+<li><a href="/documentation/the-sling-engine/authentication.html">Authentication</a></li>
+</ul>
+<h2 id="request-handling">Request Handling</h2>
+<ul>
+<li><a href="/documentation/the-sling-engine/dispatching-requests.html">Dispatching Requests</a></li>
+<li><a href="/documentation/the-sling-engine/url-decomposition.html">URL decomposition</a></li>
+<li><a href="/documentation/the-sling-engine/request-listeners.html">Request Listeners</a></li>
+<li><a href="/documentation/the-sling-engine/filters.html">Filters</a></li>
+<li><a href="/documentation/the-sling-engine/servlets.html">Servlets and Scripts</a></li>
+<li><a href="/documentation/the-sling-engine/errorhandling.html">Errorhandling</a></li>
+<li><a href="/documentation/the-sling-engine/request-parameters.html">Request Parameters</a></li>
+</ul>
+<h2 id="resources">Resources</h2>
+<ul>
+<li><a href="/documentation/the-sling-engine/resources.html">Resources</a></li>
+<li><a href="/documentation/the-sling-engine/wrap-or-decorate-resources.html">Wrap or Decorate Resources</a></li>
+<li><a href="/documentation/the-sling-engine/mappings-for-resource-resolution.html">Mappings for Resource Resolution</a></li>
+</ul>
+<h2 id="misc">Misc</h2>
+<ul>
+<li><a href="/documentation/the-sling-engine/adapters.html">Adapters</a></li>
+<li><a href="/documentation/the-sling-engine/eventing-and-jobs.html">Eventing and Jobs</a></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>



Mime
View raw message