incubator-sling-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r841833 [13/28] - in /websites/staging/sling/trunk/content: ./ site/ site/46-line-blog.data/ site/authentication.data/ site/documentation.data/ site/first-steps.data/ site/getting-and-building-sling.data/ site/how-to-manage-events-in-sling....
Date Wed, 12 Dec 2012 09:17:17 GMT
Added: websites/staging/sling/trunk/content/site/internationalization-support.html
==============================================================================
--- websites/staging/sling/trunk/content/site/internationalization-support.html (added)
+++ websites/staging/sling/trunk/content/site/internationalization-support.html Wed Dec 12 09:16:44 2012
@@ -0,0 +1,219 @@
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<HTML>
+  <HEAD>
+    <TITLE>Apache Sling - Internationalization Support</TITLE>
+    <LINK rel="stylesheet" href="http://incubator.apache.org/sling/site/media.data/site.css" type="text/css" media="all">
+    <LINK rel="icon" href="http://incubator.apache.org/sling/site/media.data/favicon.ico">
+    <META http-equiv="Content-Type" content="text/html;charset=UTF-8">
+  </HEAD>
+  <BODY>
+    <DIV class="title">
+      <DIV class="logo">
+        <A href="http://incubator.apache.org/sling/site/index.html">
+          <IMG border="0" alt="Apache Sling" src="http://incubator.apache.org/sling/site/media.data/logo.png">
+        </A>
+      </DIV>
+      <DIV class="header">
+        <A href="http://incubator.apache.org/">
+          <IMG border="0" alt="Apache Incubator" src="http://incubator.apache.org/images/apache-incubator-logo.png">
+        </A>
+      </DIV>
+    </DIV>
+    <DIV class="menu">
+                                    <P style="display: none"></P>
+
+<UL>
+	<LI><A href="documentation.html" title="Documentation">Documentation</A></LI>
+	<LI><A href="advanced-topics.html" title="Advanced Topics">Advanced Topics</A></LI>
+	<LI><A href="development.html" title="Development">Development</A></LI>
+	<LI><SPAN class="nobr"><A href="http://incubator.apache.org/sling/site/downloads.cgi" title="Visit page outside Confluence" rel="nofollow">Downloads<SUP><IMG class="rendericon" src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"></SUP></A></SPAN></LI>
+	<LI><A href="contributing.html" title="Contributing">Contributing</A></LI>
+	<LI><A href="links.html" title="Links">Links</A></LI>
+	<LI><SPAN class="nobr"><A href="http://cwiki.apache.org/SLING/faq.html" title="Visit page outside Confluence" rel="nofollow">FAQ<SUP><IMG class="rendericon" src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"></SUP></A></SPAN></LI>
+	<LI><SPAN class="nobr"><A href="http://cwiki.apache.org/SLING/" title="Visit page outside Confluence" rel="nofollow">Wiki<SUP><IMG class="rendericon" src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"></SUP></A></SPAN></LI>
+	<LI><A href="project-information.html" title="Project Information">Project Information</A></LI>
+	<LI><SPAN class="nobr"><A href="http://incubator.apache.org/sling/apidocs/sling5/index.html" title="Visit page outside Confluence" rel="nofollow">Sling 5 API<SUP><IMG class="rendericon" src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"></SUP></A></SPAN></LI>
+	<LI><SPAN class="nobr"><A href="http://www.apache.org/foundation/thanks.html" title="Visit page outside Confluence" rel="nofollow">Sponsors<SUP><IMG class="rendericon" src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"></SUP></A></SPAN></LI>
+	<LI><SPAN class="nobr"><A href="http://www.apache.org/foundation/sponsorship.html" title="Visit page outside Confluence" rel="nofollow">Sponsorship<SUP><IMG class="rendericon" src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"></SUP></A></SPAN>
+
+<IFRAME src="http://www.apache.org/ads/button.html" style="border-width:0; float: left" frameborder="0" scrolling="no" width="135" height="135"></IFRAME>
+<P style="height: 100px"></P>
+</LI>
+</UL>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        </DIV>
+    <DIV class="main">
+        <DIV class="breadcrump" style="font-size: 80%;">
+<A href="apache-sling.html" title="Apache Sling Website">Apache Sling Website</A>&nbsp;&gt;&nbsp;<A href="apache-sling.html" title="Apache Sling">Apache Sling</A>&nbsp;&gt;&nbsp;<A href="advanced-topics.html" title="Advanced Topics">Advanced Topics</A>&nbsp;&gt;&nbsp;<A href="" title="Internationalization Support">Internationalization Support</A>
+        </DIV>
+<H1><A name="InternationalizationSupport-InternationalizationSupport"></A>Internationalization Support</H1>
+
+<P>Internationalization support in Sling consists of four methods in the <TT>SlingHttpServletRequest</TT> interface:</P>
+
+<UL>
+	<LI><TT>getLocale()</TT> &ndash; Returns the primary <TT>Locale</TT> for the current request. This method is inherited from the <TT>javax.servlet.ServletRequest</TT> interface.</LI>
+	<LI><TT>getLocales()</TT> &ndash; Returns the <TT>Locale</TT> instances for the current request. This method is inherited from the <TT>javax.servlet.ServletRequest</TT> interface.</LI>
+	<LI><TT>getResourceBundle(Locale)</TT> &ndash; Returns a <TT>ResourceBundle</TT> for the given <TT>Locale</TT>. This method is specific to Sling.</LI>
+	<LI><TT>getResourceBundle(String, Locale)</TT> &ndash; Returns a <TT>ResourceBundle</TT> of a given base name for the given <TT>Locale</TT>. This method is specific to Sling.</LI>
+</UL>
+
+
+
+<P>These methods have a default implementation in the <TT>org.apache.sling.core</TT> bundle and an extended and extensible implementation in the <TT>org.apache.sling.i18n</TT> bundle.</P>
+
+
+<H2><A name="InternationalizationSupport-DefaultImplementationinthe%7B%7Borg.apache.sling.core%7D%7DBundle"></A>Default Implementation in the <TT>org.apache.sling.core</TT> Bundle</H2>
+
+<P>The default implementation of the above mentioned four methods in the sling.core bundle is contained in the bundle-private class <TT>org.apache.sling.impl.SlingHttpServletRequestImpl</TT> which is the primary implementation of the <TT>SlingHttpServletRequest</TT> interface:</P>
+
+<UL>
+	<LI><TT>getLocale()</TT> &ndash; Returns the <TT>Locale</TT> from the request object of the servlet container in which Sling is running. As per the Servlet API specification, this is either the primary Locale of the <TT>Accept-Language</TT> request header or the server default locale.</LI>
+	<LI><TT>getLocales()</TT> &ndash; Returns the <TT>Enumeration</TT> from the request object of the servlet container in which Sling is running. As per the Servlet API specification, this is either based on the <TT>Accept-Language</TT> request header or just the server default locale.</LI>
+	<LI><TT>getResourceBundle(Locale)</TT> &ndash; Returns a <TT>ResourceBundle</TT> whose <TT>getString(String key)</TT> method returns the <TT>key</TT> as the message and whose <TT>getKeys()</TT> method returns an empty <TT>Enumeration</TT>.</LI>
+	<LI><TT>getResourceBundle(String, Locale)</TT> &ndash; Returns a <TT>ResourceBundle</TT> whose <TT>getString(String key)</TT> method returns the <TT>key</TT> as the message and whose <TT>getKeys()</TT> method returns an empty <TT>Enumeration</TT>.</LI>
+</UL>
+
+
+
+<P>NOTE: Unlike the default implementations of the <TT>ResourceBundle</TT> abstract class in the Java Runtime &ndash; <TT>PropertyResourceBundle</TT> and <TT>ListResourceBundle</TT> &ndash; the <TT>ResourceBundle</TT> returned by the default implementation of the <TT>getResourceBundle(Locale)</TT> and <TT>getResourceBundle(String, Locale)</TT> always returns a string message for any key, which is the key itself. This prevents throwing <TT>MissingResourceException</TT>.</P>
+
+
+
+<H2><A name="InternationalizationSupport-ExtensibleImplementationinthe%7B%7Borg.apache.sling.i18n%7D%7DBundle"></A>Extensible Implementation in the <TT>org.apache.sling.i18n</TT> Bundle</H2>
+
+<P>The <TT>org.apache.sling.i18n</TT> Bundle implements a request level <TT>Filter</TT> providing extensible implementations of the above mentioned three methods. Extensibility is attained by defining two service interfaces:</P>
+
+<UL>
+	<LI><TT>LocaleResolver</TT> &ndash; The <TT>LocaleResolver</TT> interface defines a method which may be implemented by a service outside of the sling.i18n bundle. If no such service is registered the default behaviour is as described above for the sling.core bundle. The service described by this interface is used to implement the <TT>getLocale()</TT> and <TT>getLocales()</TT> method.</LI>
+</UL>
+
+
+<UL>
+	<LI><TT>ResourceBundleProvider</TT> &ndash; The <TT>ResourceBundleProvider</TT> interface defines two methods to acquire a <TT>ResourceBundle</TT> for any <TT>Locale</TT> and an optional base name. This service interface is not intended to be implemented outside of the sling.i18n bundle: A JCR Repository based implementation is contained in the sling.i18n bundle. The <TT>ResourceBundleProvider</TT> service is not only used within the sling.i18n bundle to implement the <TT>SlingHttpServletRequest.getResourceBundle(Locale)</TT> and  <TT>SlingHttpServletRequest.getResourceBundle(String, Locale)</TT> methods. The service may also be used by Sling applications to acquire <TT>ResourceBundle</TT> instances without having a request object by getting the service and calling its <TT>getResourceBundle(Locale)</TT> or <TT>getResourceBundle(String, Locale)</TT> method directly.</LI>
+</UL>
+
+
+
+
+<H3><A name="InternationalizationSupport-JCRRepositorybased%7B%7BResourceBundleProvider%7D%7D"></A>JCR Repository based <TT>ResourceBundleProvider</TT></H3>
+
+<P>The sling.i18n Bundle provides the implementation of the <TT>ResourceBundleProvider</TT> interface, which may also be used outside of Sling requests for service tasks. This implementation gets the messages from a JCR Repository stored below nodes of the mixin node type <TT>mix:language</TT> or <TT>sling:Language</TT>. These language nodes have a <TT>jcr:language</TT> property naming the language of the resources. In the context of the JCR based <TT>ResourceBundleProvider</TT> this is of course expected to be the string value of respective <TT>Locale</TT>.</P>
+
+<P>The (direct) child nodes of the <TT>mix:language</TT> node must contain two special properties naming the key string and the message:</P>
+
+<UL>
+	<LI><TT>sling:key</TT> &ndash; The <TT>sling:key</TT> property is a string property being the key for which the node contains the message(s).</LI>
+	<LI><TT>sling:message</TT> &ndash; The <TT>sling:message</TT> property represents the resource for the key.</LI>
+</UL>
+
+
+<P>The exact location of these nodes is not relevant as the <TT>ResourceBundleProvider</TT> finds them by applying a JCR search. It is only required that the message nodes are located below <TT>mix:language</TT> or <TT>sling:Language</TT> nodes. Such structures may also be scattered in the repository to allow storing message resources next to where they are most likely used, such as request scripts.</P>
+
+
+<H3><A name="InternationalizationSupport-%7B%7BResourceBundle%7D%7Dwithbasenames"></A><TT>ResourceBundle</TT> with base names</H3>
+
+<P>Similar to standard Java <TT>ResourceBundle</TT> instances, Sling <TT>ResourceBundle</TT> instances may be created for base names through any of the <TT>getResourceBundle(String, Locale)</TT> methods. These methods use the base name parameter as a selector for the values of the <TT>sling:basename</TT> property of the <TT>mix:language</TT> or <TT>sling:Language</TT> nodes.</P>
+
+<P>The base name argument can take one three values:</P>
+
+<TABLE class="confluenceTable"><TBODY>
+<TR>
+<TH class="confluenceTh"> Value </TH>
+<TH class="confluenceTh"> <TT>ResourceBundle</TT> selection </TH>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>null</TT> </TD>
+<TD class="confluenceTd"> Selects messages of <TT>mix:language</TT> nodes ignoring the existence or absence of <TT>sling:basename</TT> properties </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> Empty String </TD>
+<TD class="confluenceTd"> Selects messages of <TT>mix:language</TT> nodes which have <TT>sling:basename</TT> properties, ignoring the actual values </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> Any other Value </TD>
+<TD class="confluenceTd"> Selects messages of <TT>mix:language</TT> nodes whose <TT>sling:basename</TT> properties has any value which matches the base name string </TD>
+</TR>
+</TBODY></TABLE>
+
+<P>The <TT>sling:basename</TT> property may be multi-valued, that is the messages of a <TT>mix:language</TT> nodes may belong to multiple base names and thus <TT>ResourceBundle</TT> instances.</P>
+
+
+<H3><A name="InternationalizationSupport-SampleResources"></A>Sample Resources</H3>
+
+<P>Consider the following repository content:</P>
+
+<DIV class="code"><DIV class="codeContent">
+<PRE class="code-java">/libs/languages
+           +-- English (nt:folder, mix:language)
+           |    +-- jcr:language = en
+           |    +-- m1 (sling:messageEntry)
+           |    |    +-- sling:key = <SPAN class="code-quote">&quot;msg001&quot;</SPAN>
+           |    |    +-- slign:message = <SPAN class="code-quote">&quot;This is a message&quot;</SPAN>
+           |    +-- m2 (sling:messageEntry)
+           |         +-- sling:key = <SPAN class="code-quote">&quot;msg002&quot;</SPAN>
+           |         +-- slign:message = <SPAN class="code-quote">&quot;Another message&quot;</SPAN>
+           +-- Deutsch (nt:folder, mix:language)
+                +-- jcr:language = de
+                +-- m1 (sling:messageEntry)
+                |    +-- sling:key = <SPAN class="code-quote">&quot;msg001&quot;</SPAN>
+                |    +-- slign:message = <SPAN class="code-quote">&quot;Das ist ein Text&quot;</SPAN>
+                +-- m2 (sling:messageEntry)
+                     +-- sling:key = <SPAN class="code-quote">&quot;msg002&quot;</SPAN>
+                     +-- slign:message = <SPAN class="code-quote">&quot;Ein anderer Text&quot;</SPAN>
+
+   /apps/myApp
+           +-- English (nt:folder, mix:language)
+           |    +-- jcr:language = en
+           |    +-- mx (sling:messageEntry)
+           |         +-- sling:key = <SPAN class="code-quote">&quot;msgXXX&quot;</SPAN>
+           |         +-- slign:message = <SPAN class="code-quote">&quot;An Application Text&quot;</SPAN>
+           +-- Deutsch (nt:folder, mix:language)
+                +-- jcr:language = de
+                +-- mx (sling:messageEntry)
+                     +-- sling:key = <SPAN class="code-quote">&quot;msgXXX&quot;</SPAN>
+                     +-- slign:message = <SPAN class="code-quote">&quot;Ein Anwendungstext&quot;</SPAN></PRE>
+</DIV></DIV>
+
+<P>This content defines two languages <EM>en</EM> and <EM>de</EM> with three messages <EM>msg001</EM>, <EM>msg002</EM> and <EM>msgXXX</EM> each. The names of the respective nodes have no significance at all because all information required is extracted from the <TT>jcr:language</TT>, <TT>sling:key</TT> and <TT>sling:message</TT> properties.</P>
+
+
+<H3><A name="InternationalizationSupport-JCRNodeTypessupportingtheJCRRepositorybased%7B%7BResourceBundleProvider%7D%7D"></A>JCR Node Types supporting the JCR Repository based <TT>ResourceBundleProvider</TT></H3>
+
+<P>The sling.i18n bundle asserts the following node types:</P>
+
+<DIV class="code"><DIV class="codeHeader"><B>mix:language</B></DIV><DIV class="codeContent">
+<PRE class="code-java">[mix:language]
+    mixin
+  - jcr:language (string)</PRE>
+</DIV></DIV>
+
+<P>The <TT>mix:language</TT> mixin node type allows setting the <TT>jcr:language</TT> property required by the <TT>ResourceBundleProvider</TT> implementation to identify the message <TT>Locale</TT>.</P>
+
+
+<DIV class="code"><DIV class="codeHeader"><B>sling:Language</B></DIV><DIV class="codeContent">
+<PRE class="code-java">[sling:Language]
+    mixin
+  - sling:basename (string)
+  - sling:basename (string) multiple</PRE>
+</DIV></DIV>
+
+<P>The <TT>sling:Language</TT> mixin node type extends the <TT>jcr:language</TT> mixin node type and in addition to the language allows the specification of one more more base names to which the contained messages belong. This property is accessed by the <TT>getResourceBundle(String, Locale)</TT> methods.</P>
+
+
+<DIV class="code"><DIV class="codeHeader"><B>sling:message and sling:messageEntry</B></DIV><DIV class="codeContent">
+<PRE class="code-java">[sling:message]
+    mixin
+  - sling:key (string)
+  - sling:message (undefined)
+
+[sling:messageEntry] &gt; nt:hierarchyNode, sling:message</PRE>
+</DIV></DIV>
+
+<P>The <TT>sling:message</TT> and <TT>slign:messageEntry</TT> are helper node types which may be used to create the nodes with the <TT>sling:key</TT> and <TT>sling:message</TT> properties required by the <TT>ResourceBundleProvider</TT>. The node types themselves are not required but by defining the required properties, they may be of use.</P>
+        <DIV class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+Last modified by fmeschbe on 2008-04-04 16:56:13.0
+        </DIV>
+    </DIV>
+  </BODY>
+</HTML>
+

Added: websites/staging/sling/trunk/content/site/issue-tracker.html
==============================================================================
--- websites/staging/sling/trunk/content/site/issue-tracker.html (added)
+++ websites/staging/sling/trunk/content/site/issue-tracker.html Wed Dec 12 09:16:44 2012
@@ -0,0 +1,217 @@
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<HTML>
+  <HEAD>
+    <TITLE>Apache Sling - Issue Tracker</TITLE>
+    <LINK rel="stylesheet" href="http://sling.apache.org/site/media.data/site.css" type="text/css" media="all">
+    <LINK rel="icon" href="http://sling.apache.org/site/media.data/favicon.ico">
+    <META http-equiv="Content-Type" content="text/html;charset=UTF-8">
+  </HEAD>
+  <BODY>
+    <DIV class="title">
+      <DIV class="logo">
+        <A href="http://sling.apache.org/site/index.html">
+          <IMG border="0" alt="Apache Sling" src="http://sling.apache.org/site/media.data/logo.png">
+        </A>
+      </DIV>
+      <DIV class="header">
+        <A href="http://www.apache.org/">
+          <IMG border="0" alt="Apache" src="http://sling.apache.org/site/media.data/apache.png">
+        </A>
+      </DIV>
+    </DIV>
+    <DIV class="menu">
+<P><B>Documentation</B><BR class="atl-forced-newline">
+<A href="getting-started.html" title="Getting Started">Getting Started</A><BR class="atl-forced-newline">
+<A href="the-sling-engine.html" title="The Sling Engine">The Sling Engine</A><BR class="atl-forced-newline">
+<A href="development.html" title="Development">Development</A><BR class="atl-forced-newline">
+<A href="bundles.html" title="Bundles">Bundles</A><BR class="atl-forced-newline">
+<A href="tutorials-how-tos.html" title="Tutorials & How-Tos">Tutorials &amp; How&#45;Tos</A><BR class="atl-forced-newline">
+<A href="configuration.html" title="Configuration">Configuration</A><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/apidocs/sling6/index.html" class="external-link" rel="nofollow">API docs</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.wiki" class="external-link" rel="nofollow">Wiki</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.faq" class="external-link" rel="nofollow">FAQ</A><BR class="atl-forced-newline"></P>
+
+<P><B>Project info</B><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/site/downloads.cgi" class="external-link" rel="nofollow">Downloads</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/licenses/" class="external-link" rel="nofollow">License</A><BR class="atl-forced-newline">
+<A href="contributing.html" title="Contributing">Contributing</A><BR class="atl-forced-newline">
+<A href="news.html" title="News">News</A><BR class="atl-forced-newline">
+<A href="links.html" title="Links">Links</A><BR class="atl-forced-newline">
+<A href="project-information.html" title="Project Information">Project Information</A><BR class="atl-forced-newline">
+<A href="https://issues.apache.org/jira/browse/SLING" class="external-link" rel="nofollow">Issue Tracker</A><BR class="atl-forced-newline">
+<A href="http://svn.apache.org/viewvc/sling/trunk" class="external-link" rel="nofollow">Browse Source Repository</A><BR class="atl-forced-newline">
+<A href="security.html" title="Security">Security</A><BR class="atl-forced-newline"></P>
+
+<P><B>Sponsorship</B><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/thanks.html" class="external-link" rel="nofollow">Thanks</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/sponsorship.html" class="external-link" rel="nofollow">Become a Sponsor</A><BR>
+<A href="http://www.apache.org/foundation/buy_stuff.html" class="external-link" rel="nofollow">Buy Stuff</A></P>
+
+
+  <IFRAME src="http://www.apache.org/ads/button.html" style="border-width:0; float: left" frameborder="0" scrolling="no" width="135" height="135"></IFRAME>
+  <P style="height: 135px"></P>
+    </DIV>
+    <DIV class="main">
+        <DIV class="breadcrump" style="font-size: 80%;">
+<A href="apache-sling.html" title="Apache Sling Website">Apache Sling Website</A>&nbsp;&gt;&nbsp;<A href="apache-sling.html" title="Apache Sling">Apache Sling</A>&nbsp;&gt;&nbsp;<A href="documentation.html" title="Documentation">Documentation</A>&nbsp;&gt;&nbsp;<A href="development.html" title="Development">Development</A>&nbsp;&gt;&nbsp;<A href="" title="Issue Tracker">Issue Tracker</A>
+        </DIV>
+<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 <A href="https://issues.apache.org/jira/browse/SLING" class="external-link" rel="nofollow">https://issues.apache.org/jira/browse/SLING</A> and is readable by everyone. A Jira account is needed to create new issues and to comment on existing issues. Use the <A href="https://issues.apache.org/jira/secure/Signup!default.jspa" class="external-link" rel="nofollow">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><A name="IssueTracker-Issuetype"></A>Issue type</H2>
+
+<P>When creating a new issue, select the issue type based as follows:</P>
+
+<DIV class="table-wrap">
+<TABLE class="confluenceTable"><TBODY>
+<TR>
+<TH class="confluenceTh"> Issue type     </TH>
+<TH class="confluenceTh"> Description </TH>
+</TR>
+<TR>
+<TD class="confluenceTd">  <B>Bug</B>          </TD>
+<TD class="confluenceTd">  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="project-information.html#ProjectInformation-ProjectInformationMailingLists">Sling mailing lists</A> first for help. </TD>
+</TR>
+<TR>
+<TD class="confluenceTd">  <B>New Feature</B>  </TD>
+<TD class="confluenceTd">  Use a feature request when Sling does not have some functionality you need. </TD>
+</TR>
+<TR>
+<TD class="confluenceTd">  <B>Improvement</B>  </TD>
+<TD class="confluenceTd">  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 class="confluenceTd">  <B>Test</B>         </TD>
+<TD class="confluenceTd">  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 class="confluenceTd">  <B>Task</B>         </TD>
+<TD class="confluenceTd">  Used only for issues related to project infrastructure. </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+
+
+<H2><A name="IssueTracker-Summary"></A>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><A name="IssueTracker-Issuepriority"></A>Issue priority</H2>
+
+<P>Issue priority should be set according to the following:</P>
+
+<DIV class="table-wrap">
+<TABLE class="confluenceTable"><TBODY>
+<TR>
+<TH class="confluenceTh"> Issue priority </TH>
+<TH class="confluenceTh"> Description </TH>
+</TR>
+<TR>
+<TD class="confluenceTd">  <B>Blocker</B>      </TD>
+<TD class="confluenceTd">  Legal or other fundamental issue that makes it impossible to release Jackrabbit code </TD>
+</TR>
+<TR>
+<TD class="confluenceTd">  <B>Critical</B>     </TD>
+<TD class="confluenceTd">  Major loss of functionality that affects many Slingusers </TD>
+</TR>
+<TR>
+<TD class="confluenceTd">  <B>Major</B>        </TD>
+<TD class="confluenceTd">  Important issue that should be resolved soon </TD>
+</TR>
+<TR>
+<TD class="confluenceTd">  <B>Minor</B>        </TD>
+<TD class="confluenceTd">  Nice to have issues </TD>
+</TR>
+<TR>
+<TD class="confluenceTd">  <B>Trivial</B>      </TD>
+<TD class="confluenceTd">  Trivial changes that can be applied whenever someone has extra time </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+
+
+
+<H2><A name="IssueTracker-IssueStates"></A>Issue States</H2>
+
+<P>Sling issues can transition through a number of states while being processed:</P>
+
+<DIV class="table-wrap">
+<TABLE class="confluenceTable"><TBODY>
+<TR>
+<TH class="confluenceTh"> State </TH>
+<TH class="confluenceTh"> Description </TH>
+<TH class="confluenceTh"> Next States in Workflow </TH>
+</TR>
+<TR>
+<TD class="confluenceTd"> <B>Open</B> </TD>
+<TD class="confluenceTd"> The issue has just been created </TD>
+<TD class="confluenceTd"> <EM>In Pogress</EM> </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <B>In Progress</B> </TD>
+<TD class="confluenceTd"> Work has started on the issue </TD>
+<TD class="confluenceTd"> <EM>Documentation Required</EM>, <EM>Testcase Required</EM>, <EM>Documentation/Testcase required</EM>, <EM>Resolved</EM>, <EM>Open</EM> </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <B>Documentation Required</B> </TD>
+<TD class="confluenceTd"> Implementation work has finished for this issue. To complete it documentation must be created and/or updated. </TD>
+<TD class="confluenceTd"> <EM>Resolved</EM> </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <B>Testcase Required</B> </TD>
+<TD class="confluenceTd"> Implementation work has finished for this issue. To complete it test cases must be created and/or updated. </TD>
+<TD class="confluenceTd"> <EM>Resolved</EM> </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <B>Documentation/Testcase Required</B> </TD>
+<TD class="confluenceTd"> Implementation work has finished for this issue. To complete it documentation and test cases must be created and/or updated. </TD>
+<TD class="confluenceTd"> <EM>Resolved</EM>, <EM>Documentation Required</EM>, <EM>Testcase Required</EM> </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <B>Resolved</B> </TD>
+<TD class="confluenceTd"> 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 class="confluenceTd"> <EM>Reopened</EM>, <EM>Closed</EM> </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <B>Reopened</B> </TD>
+<TD class="confluenceTd"> A resolved issue has been recognized to contain bugs or to be incomplete and thus has been reopened. </TD>
+<TD class="confluenceTd"> <EM>In Progress</EM>, <EM>Resolved</EM> </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <B>Closed</B> </TD>
+<TD class="confluenceTd"> Work on this issue has finished and it is included in the release. </TD>
+<TD class="confluenceTd"> &ndash; </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+
+<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><A name="IssueTracker-Patches"></A>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;">
+Last modified by fmeschbe on 2009-09-07 07:29:41.0
+        </DIV>
+        <DIV class="trademarkFooter">
+Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+        </DIV>
+    </DIV>
+  </BODY>
+</HTML>
+

Added: websites/staging/sling/trunk/content/site/jackrabbit-persistence.html
==============================================================================
--- websites/staging/sling/trunk/content/site/jackrabbit-persistence.html (added)
+++ websites/staging/sling/trunk/content/site/jackrabbit-persistence.html Wed Dec 12 09:16:44 2012
@@ -0,0 +1,189 @@
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<HTML>
+  <HEAD>
+    <TITLE>Apache Sling - Jackrabbit Persistence</TITLE>
+    <LINK rel="stylesheet" href="http://sling.apache.org/site/media.data/site.css" type="text/css" media="all">
+    <LINK rel="icon" href="http://sling.apache.org/site/media.data/favicon.ico">
+    <META http-equiv="Content-Type" content="text/html;charset=UTF-8">
+  </HEAD>
+  <BODY>
+    <DIV class="title">
+      <DIV class="logo">
+        <A href="http://sling.apache.org/site/index.html">
+          <IMG border="0" alt="Apache Sling" src="http://sling.apache.org/site/media.data/logo.png">
+        </A>
+      </DIV>
+      <DIV class="header">
+        <A href="http://www.apache.org/">
+          <IMG border="0" alt="Apache" src="http://sling.apache.org/site/media.data/apache.png">
+        </A>
+      </DIV>
+    </DIV>
+    <DIV class="menu">
+<P><B>Documentation</B><BR class="atl-forced-newline">
+<A href="getting-started.html" title="Getting Started">Getting Started</A><BR class="atl-forced-newline">
+<A href="the-sling-engine.html" title="The Sling Engine">The Sling Engine</A><BR class="atl-forced-newline">
+<A href="development.html" title="Development">Development</A><BR class="atl-forced-newline">
+<A href="bundles.html" title="Bundles">Bundles</A><BR class="atl-forced-newline">
+<A href="tutorials-how-tos.html" title="Tutorials & How-Tos">Tutorials &amp; How&#45;Tos</A><BR class="atl-forced-newline">
+<A href="configuration.html" title="Configuration">Configuration</A><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/apidocs/sling6/index.html" class="external-link" rel="nofollow">API docs</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.wiki" class="external-link" rel="nofollow">Wiki</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.faq" class="external-link" rel="nofollow">FAQ</A><BR class="atl-forced-newline"></P>
+
+<P><B>Project info</B><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/site/downloads.cgi" class="external-link" rel="nofollow">Downloads</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/licenses/" class="external-link" rel="nofollow">License</A><BR class="atl-forced-newline">
+<A href="contributing.html" title="Contributing">Contributing</A><BR class="atl-forced-newline">
+<A href="news.html" title="News">News</A><BR class="atl-forced-newline">
+<A href="links.html" title="Links">Links</A><BR class="atl-forced-newline">
+<A href="project-information.html" title="Project Information">Project Information</A><BR class="atl-forced-newline">
+<A href="https://issues.apache.org/jira/browse/SLING" class="external-link" rel="nofollow">Issue Tracker</A><BR class="atl-forced-newline">
+<A href="http://svn.apache.org/viewvc/sling/trunk" class="external-link" rel="nofollow">Browse Source Repository</A><BR class="atl-forced-newline">
+<A href="security.html" title="Security">Security</A><BR class="atl-forced-newline"></P>
+
+<P><B>Sponsorship</B><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/thanks.html" class="external-link" rel="nofollow">Thanks</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/sponsorship.html" class="external-link" rel="nofollow">Become a Sponsor</A><BR>
+<A href="http://www.apache.org/foundation/buy_stuff.html" class="external-link" rel="nofollow">Buy Stuff</A></P>
+
+
+  <IFRAME src="http://www.apache.org/ads/button.html" style="border-width:0; float: left" frameborder="0" scrolling="no" width="135" height="135"></IFRAME>
+  <P style="height: 135px"></P>
+    </DIV>
+    <DIV class="main">
+        <DIV class="breadcrump" style="font-size: 80%;">
+<A href="apache-sling.html" title="Apache Sling Website">Apache Sling Website</A>&nbsp;&gt;&nbsp;<A href="apache-sling.html" title="Apache Sling">Apache Sling</A>&nbsp;&gt;&nbsp;<A href="documentation.html" title="Documentation">Documentation</A>&nbsp;&gt;&nbsp;<A href="tutorials-how-tos.html" title="Tutorials & How-Tos">Tutorials &amp; How-Tos</A>&nbsp;&gt;&nbsp;<A href="" title="Jackrabbit Persistence">Jackrabbit Persistence</A>
+        </DIV>
+<H1><A name="JackrabbitPersistence-JackrabbitPersistence"></A>Jackrabbit Persistence</H1>
+
+<P>Out-of-the-box the embedded Jackrabbit repository used by Sling (the Embedded Jackrabbit Repository bundle) uses Derby to persist the JCR nodes and properties. For some applications or environments it may be required or required to replace Derby with another backing store such as PostgreSQL or Oracle.</P>
+
+<P>This page is based on the journey of Tony Giaccone to get Sling running with a PostgreSQL based Jackrabbit instance.</P>
+
+
+<H2><A name="JackrabbitPersistence-ManagementSummary"></A>Management Summary</H2>
+
+<P>To replace Derby as the persistence manager for Jackrabbit the following steps are required:</P>
+
+<OL>
+	<LI>Provide a JDBC driver for your database as an OSGi bundle</LI>
+	<LI>Reconfigure Jackrabbit to use your database</LI>
+	<LI>(Re-) Start the Embedded Jackrabbit bundle</LI>
+</OL>
+
+
+<P>When you are not using the Derby persistence manager, you may safely remove the Derby bundle from your Sling instance.</P>
+
+
+<H2><A name="JackrabbitPersistence-JDBCDriver"></A>JDBC Driver</H2>
+
+<P>The hardest thing to do is probably getting the JDBC driver for your database. One option is to look at the bundles provided by Spring Source in their repository at <A href="http://www.springsource.com/repository/" class="external-link" rel="nofollow">http://www.springsource.com/repository/</A>.</P>
+
+<P>Another option is to create the bundle on your own using Peter Kriens' <A href="http://www.aqute.biz/Code/Bnd" class="external-link" rel="nofollow">BND Tool</A>:</P>
+
+<OL>
+	<LI>Get the JDBC driver for your database from the driver provider</LI>
+	<LI>Wrap the JDBC driver library into an OSGi bundle:
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+# Example <SPAN class="code-keyword">for</SPAN> PostgreSQL JDBC 3 driver 8.4-701
+$ java -jar bnd.jar wrap postgresql-8.4-701.jdbc3.jar
+$ mv postgresql-8.4-701.jdbc3.bar postgresql-8.4-701.jdbc3-bnd.jar
+</PRE>
+</DIV></DIV></LI>
+	<LI>Deploy the driver to your local Maven 2 Repository (Required if adding the JDBC driver to a Maven build, e.g. using the Sling Launchpad Plugin)
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+$ mvn install:install-file -DgroupId=postgresql -DartifactId=postgresql -Dversion=8.4.701.jdbc3 \
+		-Dpackaging=jar -Dfile=postgresql-8.4-701.jdbc3-bnd.jar 
+</PRE>
+</DIV></DIV></LI>
+</OL>
+
+
+<P>Tony reports no success with the Spring Source bundle, whily the BND approach worked for the PostgreSQL JDBC driver.</P>
+
+
+<H2><A name="JackrabbitPersistence-ReplaceDerbyinarunningSlingInstance"></A>Replace Derby in a running Sling Instance</H2>
+
+<P>To replace Derby in a running Sling instance follow these steps (e.g. through the Web Console at <TT>/system/console</TT>):</P>
+
+<OL>
+	<LI>Uninstall the Apache Derby bundle</LI>
+	<LI>Install the JDBC bundle prepared in the first step</LI>
+	<LI>Stop the Jackrabbit Embedded Repository bundle\<BR>
+This needs to be reconfigured and restarted anyway. So lets just stop it to prevent failures in the next step.</LI>
+	<LI>Refresh the packages (click the <EM>Refresh Packages</EM> button)</LI>
+</OL>
+
+
+<P>Alternatively, you may wish to stop Sling after uninstalling Derby and installing the JDBC bundle. Technically, this is not required, though.</P>
+
+
+<H2><A name="JackrabbitPersistence-ReconfiguringJackrabbit"></A>Reconfiguring Jackrabbit</H2>
+
+<P>To actually use a persistence manager other than the default (Derby) persistence manager, you have to configure Jackrabbit to use it. Create a <TT>repository.xml</TT> file in the <TT>sling/jackrabbit</TT> folder before starting Sling for the first time. If the repository was already started, you can also modify the existing file.</P>
+
+<P>To prepare a repository.xml file before first startup, use the <TT><A href="http://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/repository.xml" class="external-link" rel="nofollow">repository.xml</A></TT> as a template and modify it by replacing the <TT>&lt;PersistenceManager&gt;</TT> elements to refer to the selected persistence manager.</P>
+
+<P>If the file already exists, you can modifiy this existing file and there is no need to get the original from the SVN repository.</P>
+
+<P>For example to use PostgreSQL instead of Derby modify the <TT>&lt;PersistenceManager&gt;</TT> elements as follows:</P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+&lt;Repository&gt;
+    ...
+    &lt;Workspace name=<SPAN class="code-quote">&quot;${wsp.name}&quot;</SPAN>&gt;
+        ...
+        &lt;PersistenceManager class=<SPAN class="code-quote">&quot;org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager&quot;</SPAN>&gt;
+            &lt;param name=<SPAN class="code-quote">&quot;driver&quot;</SPAN> value=<SPAN class="code-quote">&quot;org.postgresql.Driver&quot;</SPAN>/&gt;
+            &lt;param name=<SPAN class="code-quote">&quot;url&quot;</SPAN> value=<SPAN class="code-quote">&quot;jdbc:postgresql:<SPAN class="code-comment">//localhost:5432/YOUR_DB_NAME_HERE&quot;</SPAN>/&gt;
+</SPAN>            &lt;param name=<SPAN class="code-quote">&quot;schema&quot;</SPAN> value=<SPAN class="code-quote">&quot;postgresql&quot;</SPAN>/&gt;
+            &lt;param name=<SPAN class="code-quote">&quot;user&quot;</SPAN> value=<SPAN class="code-quote">&quot;YOUR_USER_HERE&quot;</SPAN>/&gt;
+            &lt;param name=<SPAN class="code-quote">&quot;password&quot;</SPAN> value=<SPAN class="code-quote">&quot;YOUR_PASSWORD_HERE&quot;</SPAN>/&gt;
+            &lt;param name=<SPAN class="code-quote">&quot;schemaObjectPrefix&quot;</SPAN> value=<SPAN class="code-quote">&quot;jcr_${wsp.name}_&quot;</SPAN>/&gt;
+            &lt;param name=<SPAN class="code-quote">&quot;externalBLOBs&quot;</SPAN> value=<SPAN class="code-quote">&quot;<SPAN class="code-keyword">false</SPAN>&quot;</SPAN>/&gt;
+        &lt;/PersistenceManager&gt;
+        ...
+    &lt;/Workspace&gt;
+
+    &lt;Versioning rootPath=<SPAN class="code-quote">&quot;${rep.home}/version&quot;</SPAN>&gt;
+        ...
+        &lt;PersistenceManager class=<SPAN class="code-quote">&quot;org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager&quot;</SPAN>&gt;
+            &lt;param name=<SPAN class="code-quote">&quot;driver&quot;</SPAN> value=<SPAN class="code-quote">&quot;org.postgresql.Driver&quot;</SPAN>/&gt;
+            &lt;param name=<SPAN class="code-quote">&quot;url&quot;</SPAN> value=<SPAN class="code-quote">&quot;jdbc:postgresql:<SPAN class="code-comment">//localhost:5432/YOUR_DB_NAME_HERE&quot;</SPAN>/&gt;
+</SPAN>            &lt;param name=<SPAN class="code-quote">&quot;schema&quot;</SPAN> value=<SPAN class="code-quote">&quot;postgresql&quot;</SPAN>/&gt;
+            &lt;param name=<SPAN class="code-quote">&quot;user&quot;</SPAN> value=<SPAN class="code-quote">&quot;YOUR_USER_HERE&quot;</SPAN>/&gt;
+            &lt;param name=<SPAN class="code-quote">&quot;password&quot;</SPAN> value=<SPAN class="code-quote">&quot;YOUR_PASSWORD_HERE&quot;</SPAN>/&gt;
+            &lt;param name=<SPAN class="code-quote">&quot;schemaObjectPrefix&quot;</SPAN> value=<SPAN class="code-quote">&quot;version_&quot;</SPAN>/&gt;
+            &lt;param name=<SPAN class="code-quote">&quot;externalBLOBs&quot;</SPAN> value=<SPAN class="code-quote">&quot;<SPAN class="code-keyword">false</SPAN>&quot;</SPAN>/&gt;
+        &lt;/PersistenceManager&gt;
+    &lt;/Versioning&gt;
+    ...
+&lt;/Repository&gt;
+</PRE>
+</DIV></DIV>
+
+<P>Modify the <TT>url</TT>, <TT>user</TT>, and <TT>password</TT> parameters to match your database setup.</P>
+
+<P>If you reconfigure Jackrabbit to use the new persistence manager, the existing repository data in the <TT>sling/jackrabbit</TT> directory, except the <TT>repository.xml</TT> file, of course, should now be removed.</P>
+
+<P>Finally either start Sling or start the Jackrabbit Embedded Repository bundle.</P>
+
+
+<H2><A name="JackrabbitPersistence-Credits"></A>Credits</H2>
+
+<P>This description is based on Tony Giaccone's description <A href="http://markmail.org/message/wlbfrukmjjsl33hh" class="external-link" rel="nofollow">Swapping Postgres for Derby</A> sent to the Sling Users mailing list.</P>
+        <DIV class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+Last modified by fmeschbe on 2010-06-15 04:24:41.0
+        </DIV>
+        <DIV class="trademarkFooter">
+Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+        </DIV>
+    </DIV>
+  </BODY>
+</HTML>
+

Added: websites/staging/sling/trunk/content/site/jcr-installer-jcrjcrinstall-and-osgiinstaller.html
==============================================================================
--- websites/staging/sling/trunk/content/site/jcr-installer-jcrjcrinstall-and-osgiinstaller.html (added)
+++ websites/staging/sling/trunk/content/site/jcr-installer-jcrjcrinstall-and-osgiinstaller.html Wed Dec 12 09:16:44 2012
@@ -0,0 +1,210 @@
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<HTML>
+  <HEAD>
+    <TITLE>Apache Sling - JCR Installer (jcr.jcrinstall and osgi.installer)</TITLE>
+    <LINK rel="stylesheet" href="http://sling.apache.org/site/media.data/site.css" type="text/css" media="all">
+    <LINK rel="icon" href="http://sling.apache.org/site/media.data/favicon.ico">
+    <META http-equiv="Content-Type" content="text/html;charset=UTF-8">
+  </HEAD>
+  <BODY>
+    <DIV class="title">
+      <DIV class="logo">
+        <A href="http://sling.apache.org/site/index.html">
+          <IMG border="0" alt="Apache Sling" src="http://sling.apache.org/site/media.data/logo.png">
+        </A>
+      </DIV>
+      <DIV class="header">
+        <A href="http://www.apache.org/">
+          <IMG border="0" alt="Apache" src="http://sling.apache.org/site/media.data/apache.png">
+        </A>
+      </DIV>
+    </DIV>
+    <DIV class="menu">
+<P><B>Documentation</B><BR class="atl-forced-newline">
+<A href="getting-started.html" title="Getting Started">Getting Started</A><BR class="atl-forced-newline">
+<A href="the-sling-engine.html" title="The Sling Engine">The Sling Engine</A><BR class="atl-forced-newline">
+<A href="development.html" title="Development">Development</A><BR class="atl-forced-newline">
+<A href="bundles.html" title="Bundles">Bundles</A><BR class="atl-forced-newline">
+<A href="tutorials-how-tos.html" title="Tutorials & How-Tos">Tutorials &amp; How&#45;Tos</A><BR class="atl-forced-newline">
+<A href="configuration.html" title="Configuration">Configuration</A><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/apidocs/sling6/index.html" class="external-link" rel="nofollow">API docs</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.wiki" class="external-link" rel="nofollow">Wiki</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.faq" class="external-link" rel="nofollow">FAQ</A><BR class="atl-forced-newline"></P>
+
+<P><B>Project info</B><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/site/downloads.cgi" class="external-link" rel="nofollow">Downloads</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/licenses/" class="external-link" rel="nofollow">License</A><BR class="atl-forced-newline">
+<A href="contributing.html" title="Contributing">Contributing</A><BR class="atl-forced-newline">
+<A href="news.html" title="News">News</A><BR class="atl-forced-newline">
+<A href="links.html" title="Links">Links</A><BR class="atl-forced-newline">
+<A href="project-information.html" title="Project Information">Project Information</A><BR class="atl-forced-newline">
+<A href="https://issues.apache.org/jira/browse/SLING" class="external-link" rel="nofollow">Issue Tracker</A><BR class="atl-forced-newline">
+<A href="http://svn.apache.org/viewvc/sling/trunk" class="external-link" rel="nofollow">Browse Source Repository</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/security/" class="external-link" rel="nofollow">Security</A><BR class="atl-forced-newline"></P>
+
+<P><B>Sponsorship</B><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/thanks.html" class="external-link" rel="nofollow">Thanks</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/sponsorship.html" class="external-link" rel="nofollow">Become a Sponsor</A><BR>
+<A href="http://www.apache.org/foundation/buy_stuff.html" class="external-link" rel="nofollow">Buy Stuff</A></P>
+
+
+  <IFRAME src="http://www.apache.org/ads/button.html" style="border-width:0; float: left" frameborder="0" scrolling="no" width="135" height="135"></IFRAME>
+  <P style="height: 135px"></P>
+    </DIV>
+    <DIV class="main">
+        <DIV class="breadcrump" style="font-size: 80%;">
+<A href="apache-sling.html" title="Apache Sling Website">Apache Sling Website</A>&nbsp;&gt;&nbsp;<A href="apache-sling.html" title="Apache Sling">Apache Sling</A>&nbsp;&gt;&nbsp;<A href="documentation.html" title="Documentation">Documentation</A>&nbsp;&gt;&nbsp;<A href="bundles.html" title="Bundles">Bundles</A>&nbsp;&gt;&nbsp;<A href="" title="JCR Installer (jcr.jcrinstall and osgi.installer)">JCR Installer (jcr.jcrinstall and osgi.installer)</A>
+        </DIV>
+<P>The JCR installer modules (collectively known as <EM>JCRInstall</EM>) install OSGi bundles and configurations found in the JCR repository.</P>
+
+<P>The goal is to allow Sling applications to be distributed as &quot;content packages&quot;, which install additional services and configurations when copied to the JCR repository.</P>
+
+<H1><A name="JCRInstaller%28jcr.jcrinstallandosgi.installer%29-Example"></A>Example</H1>
+<P>Here's a quick walkthrough of the JCR installer functionality.</P>
+
+<H2><A name="JCRInstaller%28jcr.jcrinstallandosgi.installer%29-Installation"></A>Installation</H2>
+<P>Start the Sling <A href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/app" class="external-link" rel="nofollow">launchpad/app</A> and install and start the following additional bundles:</P>
+<UL>
+	<LI><A href="run-modes-orgapacheslingrunmode.html" title="Run Modes (org.apache.sling.runmode)">RunMode service</A></LI>
+	<LI>OSGi installer service (<A href="http://svn.apache.org/repos/asf/sling/trunk/installer/osgi/installer" class="external-link" rel="nofollow">org.apache.sling.osgi.installer</A>)</LI>
+	<LI>JCR installer service (<A href="http://svn.apache.org/repos/asf/sling/trunk/installer/jcr/jcrinstall" class="external-link" rel="nofollow">org.apache.sling.jcr.jcrinstall</A>)</LI>
+</UL>
+
+
+<P>To watch the logs produced by these modules, you can filter <TT>sling/logs/error.log</TT> using <TT>egrep 'jcrinstall|osgi.installer'</TT>.</P>
+
+<H2><A name="JCRInstaller%28jcr.jcrinstallandosgi.installer%29-Installandremoveabundle"></A>Install and remove a bundle</H2>
+<P>We'll use the <A href="http://www.knopflerfish.org/releases/2.0.5/jars/desktop_awt/desktop_awt_all-2.0.0.jar" class="external-link" rel="nofollow">Knopflerfish Desktop</A> bundle for this example, it is convenient as it displays a graphical user interface when started.</P>
+
+<P>We use <TT>curl</TT> to create content, to make it easy to reproduce the example by copying and pasting the <TT>curl</TT> commands. Any other way to create content in the repository will work, of course.</P>
+
+<P>By default, JCRInstall picks up bundles found in folders named <EM>install</EM> under <TT>/libs</TT> and <TT>/apps</TT>, so we start by creating such a folder:</P>
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>curl -X MKCOL  http://admin:admin@localhost:8888/apps/jcrtest
+curl -X MKCOL  http://admin:admin@localhost:8888/apps/jcrtest/install
+</PRE>
+</DIV></DIV>
+
+<P>And we copy the bundle to install in that folder (a backslash in command lines means <EM>continued on next line</EM>):</P>
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>curl -T desktop_awt_all-2.0.0.jar \
+  http://admin:admin@localhost:8888/apps/jcrtest/install/desktop_awt_all-2.0.0.jar
+</PRE>
+</DIV></DIV>
+
+<P>That's it. After 2-3 seconds, the bundle should be picked up by JCRInstall, installed and started. If this works you'll see a small <EM>Knopflerfish Desktop</EM> window on your desktop, and Sling's OSGi console can of course be used to check the details.</P>
+
+<P>Removing the bundle from the repository will cause it to be uninstalled, so:</P>
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>curl -X DELETE \
+  http://admin:admin@localhost:8888/apps/jcrtest/install/desktop_awt_all-2.0.0.jar
+</PRE>
+</DIV></DIV>
+
+<P>Should cause the <EM>Knopflerfish Desktop</EM> window to disappear as the bundle is uninstalled.</P>
+
+<P><B>TODO:</B> document folder priorities (/apps over /libs), SNAPSHOT handling, bundle start retries.</P>
+
+<H2><A name="JCRInstaller%28jcr.jcrinstallandosgi.installer%29-Install%2Cmodifyandremoveaconfiguration"></A>Install, modify and remove a configuration</H2>
+<P>JCRInstall installs OSGi configurations from nodes having the <EM>sling:OsgiConfig</EM> node type, found in folders named <EM>install</EM> under the installation roots (/apps and /libs).</P>
+
+<P>Let's try this feature by creating a configuration with two properties:</P>
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>curl \
+  -F &quot;jcr:primaryType=sling:OsgiConfig&quot; \
+  -F foo=bar -F works=yes \
+  http://admin:admin@localhost:8888/apps/jcrtest/install/some.config.pid
+</PRE>
+</DIV></DIV>
+
+<P>And verify the contents of our config node:</P>
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>curl \
+  http://admin:admin@localhost:8888/apps/jcrtest/install/some.config.pid.json
+</PRE>
+</DIV></DIV>
+
+<P>Which should display something like</P>
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>{&quot;foo&quot;:&quot;bar&quot;,
+&quot;jcr:created&quot;:&quot;Wed Aug 26 2009 17:06:40GMT+0200&quot;,
+&quot;jcr:primaryType&quot;:&quot;sling:OsgiConfig&quot;,&quot;works&quot;:&quot;yes&quot;}
+</PRE>
+</DIV></DIV>
+
+<P>At this point, JCRInstall should have picked up our new config and installed it. The logs would confirm that, but we can also use the OSGi console's config status page (<A href="http://localhost:8888/system/console/config" class="external-link" rel="nofollow">http://localhost:8888/system/console/config</A>) to check it. That page should now contain:</P>
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>PID=some.config.pid
+  BundleLocation=Unbound
+  _jcr_config_path=jcrinstall:/apps/jcrtest/install/some.config.pid
+  foo=bars
+  service.pid=some.config.pid
+  works=yes
+</PRE>
+</DIV></DIV>
+
+<P>Indicating that the configuration has been installed.</P>
+
+<P>Let's try modifying the configuration parameters:</P>
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>curl \
+  -F works=updated -F even=more \
+  http://admin:admin@localhost:8888/apps/jcrtest/install/some.config.pid
+</PRE>
+</DIV></DIV>
+
+<P>And check the changes in the console page:</P>
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>PID=some.config.pid
+  BundleLocation=Unbound
+  _jcr_config_path=jcrinstall:/apps/jcrtest/install/some.config.pid
+  even=more
+  foo=bars
+  service.pid=some.config.pid
+  works=updated
+</PRE>
+</DIV></DIV>
+
+<P>We can now delete the configuration node:</P>
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>curl -X DELETE \
+  http://admin:admin@localhost:8888/apps/jcrtest/install/some.config.pid
+</PRE>
+</DIV></DIV>
+
+<P>And verify that the corresponding configuration is gone in the console page (after 1-2 seconds, like for all other JCRInstall operations).</P>
+
+<P><B>TODO:</B> A node named like <TT>o.a.s.foo.bar-a</TT> uses <EM>o.a.s.foo.bar</EM> as its factory PID creating a configuration with an automatically generated PID. The value of <EM>a</EM> is stored as an alias property in the configuration to correlate the configuration object with the repository node - demonstrate that.</P>
+
+<H1><A name="JCRInstaller%28jcr.jcrinstallandosgi.installer%29-RunModes"></A>Run Modes</H1>
+<P><B>TODO:</B> folder names like <EM>install.dev</EM> are included in the repository scanning if the <EM>dev</EM> run mode is active - describe this feature.</P>
+
+<H1><A name="JCRInstaller%28jcr.jcrinstallandosgi.installer%29-AutomatedTests"></A>Automated Tests</H1>
+<P>The following modules contain lots of automated tests (under <TT>src/test</TT>, as usual):</P>
+
+<UL>
+	<LI>OSGi installer integration tests (<A href="http://svn.apache.org/repos/asf/sling/trunk/installer/it" class="external-link" rel="nofollow">org.apache.sling.installer.it</A>)</LI>
+	<LI>JCR installer service (<A href="http://svn.apache.org/repos/asf/sling/trunk/installer/providers/jcr" class="external-link" rel="nofollow">org.apache.sling.installer.providers.jcr</A>)</LI>
+</UL>
+
+
+<P>Many of these tests are fairly readable, and can be used to find out in more detail how these modules work.</P>
+        <DIV class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+Last modified by mykee on 2010-10-06 12:38:17.0
+        </DIV>
+        <DIV class="trademarkFooter">
+Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+        </DIV>
+    </DIV>
+  </BODY>
+</HTML>
+

Added: websites/staging/sling/trunk/content/site/jcr-installer-provider.html
==============================================================================
--- websites/staging/sling/trunk/content/site/jcr-installer-provider.html (added)
+++ websites/staging/sling/trunk/content/site/jcr-installer-provider.html Wed Dec 12 09:16:44 2012
@@ -0,0 +1,218 @@
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<HTML>
+  <HEAD>
+    <TITLE>Apache Sling - JCR Installer Provider</TITLE>
+    <LINK rel="stylesheet" href="http://sling.apache.org/site/media.data/site.css" type="text/css" media="all">
+    <LINK rel="icon" href="http://sling.apache.org/site/media.data/favicon.ico">
+    <META http-equiv="Content-Type" content="text/html;charset=UTF-8">
+  </HEAD>
+  <BODY>
+    <DIV class="title">
+      <DIV class="logo">
+        <A href="http://sling.apache.org/site/index.html">
+          <IMG border="0" alt="Apache Sling" src="http://sling.apache.org/site/media.data/logo.png">
+        </A>
+      </DIV>
+      <DIV class="header">
+        <A href="http://www.apache.org/">
+          <IMG border="0" alt="Apache" src="http://sling.apache.org/site/media.data/apache.png">
+        </A>
+      </DIV>
+    </DIV>
+    <DIV class="menu">
+<P><B>Documentation</B><BR class="atl-forced-newline">
+<A href="getting-started.html" title="Getting Started">Getting Started</A><BR class="atl-forced-newline">
+<A href="the-sling-engine.html" title="The Sling Engine">The Sling Engine</A><BR class="atl-forced-newline">
+<A href="development.html" title="Development">Development</A><BR class="atl-forced-newline">
+<A href="bundles.html" title="Bundles">Bundles</A><BR class="atl-forced-newline">
+<A href="tutorials-how-tos.html" title="Tutorials & How-Tos">Tutorials &amp; How&#45;Tos</A><BR class="atl-forced-newline">
+<A href="configuration.html" title="Configuration">Configuration</A><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/apidocs/sling6/index.html" class="external-link" rel="nofollow">API docs</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.wiki" class="external-link" rel="nofollow">Wiki</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.faq" class="external-link" rel="nofollow">FAQ</A><BR class="atl-forced-newline"></P>
+
+<P><B>Project info</B><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/site/downloads.cgi" class="external-link" rel="nofollow">Downloads</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/licenses/" class="external-link" rel="nofollow">License</A><BR class="atl-forced-newline">
+<A href="contributing.html" title="Contributing">Contributing</A><BR class="atl-forced-newline">
+<A href="news.html" title="News">News</A><BR class="atl-forced-newline">
+<A href="links.html" title="Links">Links</A><BR class="atl-forced-newline">
+<A href="project-information.html" title="Project Information">Project Information</A><BR class="atl-forced-newline">
+<A href="https://issues.apache.org/jira/browse/SLING" class="external-link" rel="nofollow">Issue Tracker</A><BR class="atl-forced-newline">
+<A href="http://svn.apache.org/viewvc/sling/trunk" class="external-link" rel="nofollow">Browse Source Repository</A><BR class="atl-forced-newline">
+<A href="security.html" title="Security">Security</A><BR class="atl-forced-newline"></P>
+
+<P><B>Sponsorship</B><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/thanks.html" class="external-link" rel="nofollow">Thanks</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/sponsorship.html" class="external-link" rel="nofollow">Become a Sponsor</A><BR>
+<A href="http://www.apache.org/foundation/buy_stuff.html" class="external-link" rel="nofollow">Buy Stuff</A></P>
+
+
+  <IFRAME src="http://www.apache.org/ads/button.html" style="border-width:0; float: left" frameborder="0" scrolling="no" width="135" height="135"></IFRAME>
+  <P style="height: 135px"></P>
+    </DIV>
+    <DIV class="main">
+        <DIV class="breadcrump" style="font-size: 80%;">
+<A href="apache-sling.html" title="Apache Sling Website">Apache Sling Website</A>&nbsp;&gt;&nbsp;<A href="apache-sling.html" title="Apache Sling">Apache Sling</A>&nbsp;&gt;&nbsp;<A href="documentation.html" title="Documentation">Documentation</A>&nbsp;&gt;&nbsp;<A href="bundles.html" title="Bundles">Bundles</A>&nbsp;&gt;&nbsp;<A href="" title="JCR Installer Provider">JCR Installer Provider</A>
+        </DIV>
+<P>The JCR installer provider scans the JCR repository for artifacts and provides them to the <A href="osgi-installer.html" title="OSGi Installer">OSGI installer</A>.</P>
+
+<H2><A name="JCRInstallerProvider-ConfigurationandScanning"></A>Configuration and Scanning</H2>
+
+<P>The JCR installer provider can be configured with weighted paths which are scanned. By default, the installer scans in <B>/apps</B> and <B>/libs</B> where artifacts found in <B>/apps</B> get a higher priority. The installer does a deep scan and uses a regular expression to detect folders containing artifacts to be installed. By default, artifacts from within a folder named <EM>install</EM> are provided to the OSGi installer.</P>
+
+<P>If such an install folder contains a binary artifact (e.g. a bundle) this is provided to the OSGi installer. In addition a node of type <EM>sling:OsgiConfig</EM> is provided as a configuration to the installer.</P>
+
+<P>The jcr installer provider does not check or scan the artifacts itself, the detection and installation is deferred to the OSGi installer.</P>
+
+<H3><A name="JCRInstallerProvider-RunmodeSupport"></A>Runmode Support</H3>
+
+<P>The JCR installer supports run modes for installing artifacts. By default folders named <EM>install</EM> are checked for artifacts. If Apache Sling is started with one (or more run modes), all folders named <EM>install.<A href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=SLINGxSITE&title=RUNMODE&linkCreation=true&fromPageId=2852417" class="createlink">RUNMODE</A></EM> are scanned as well. To be precise, the folder name can be followed by any number of run modes separated by comma. For example, if started with run modes <EM>dev</EM>, <EM>a1</EM>, and <EM>public</EM>, folders like <EM>install.dev</EM>, <EM>install.a1</EM>, <EM>install.public</EM> are searched as well as <EM>install.dev.a1</EM>, or <EM>install.a1.dev</EM>.</P>
+
+<P>Artifacts from folders with a run mode get a higher priority. For example by default, an <EM>install</EM> folder underneath <EM>/libs</EM> gets the priority <EM>50</EM>. For each run mode in the folder name, this priority is increased by <EM>1</EM>, so <EM>install.dev</EM> has <EM>51</EM> and <EM>install.a1.dev</EM> is <EM>52</EM>.</P>
+
+<H1><A name="JCRInstallerProvider-Example"></A>Example</H1>
+<P>Here's a quick walkthrough of the JCR installer functionality.</P>
+
+<H2><A name="JCRInstallerProvider-Installation"></A>Installation</H2>
+<P>Start the Sling <A href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/app" class="external-link" rel="nofollow">launchpad/app</A> and install and start the following additional bundles:</P>
+<UL>
+	<LI><A href="run-modes-orgapacheslingrunmode.html" title="Run Modes (org.apache.sling.runmode)">RunMode service</A></LI>
+	<LI>OSGi installer service (<A href="http://svn.apache.org/repos/asf/sling/trunk/installer/core" class="external-link" rel="nofollow">org.apache.sling.osgi.installer</A>)</LI>
+	<LI>JCR installer provider (<A href="http://svn.apache.org/repos/asf/sling/trunk/installer/providers/jcr" class="external-link" rel="nofollow">org.apache.sling.jcr.jcrinstall</A>)</LI>
+</UL>
+
+
+<P>To watch the logs produced by these modules, you can filter <TT>sling/logs/error.log</TT> using <TT>egrep 'jcrinstall|osgi.installer'</TT>.</P>
+
+<H2><A name="JCRInstallerProvider-Installandremoveabundle"></A>Install and remove a bundle</H2>
+<P>We'll use the <A href="http://www.knopflerfish.org/releases/2.0.5/jars/desktop_awt/desktop_awt_all-2.0.0.jar" class="external-link" rel="nofollow">Knopflerfish Desktop</A> bundle for this example, it is convenient as it displays a graphical user interface when started.</P>
+
+<P>We use <TT>curl</TT> to create content, to make it easy to reproduce the example by copying and pasting the <TT>curl</TT> commands. Any other way to create content in the repository will work, of course.</P>
+
+<P>By default, JCRInstall picks up bundles found in folders named <EM>install</EM> under <TT>/libs</TT> and <TT>/apps</TT>, so we start by creating such a folder:</P>
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>curl -X MKCOL  http://admin:admin@localhost:8888/apps/jcrtest
+curl -X MKCOL  http://admin:admin@localhost:8888/apps/jcrtest/install
+</PRE>
+</DIV></DIV>
+
+<P>And we copy the bundle to install in that folder (a backslash in command lines means <EM>continued on next line</EM>):</P>
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>curl -T desktop_awt_all-2.0.0.jar \
+  http://admin:admin@localhost:8888/apps/jcrtest/install/desktop_awt_all-2.0.0.jar
+</PRE>
+</DIV></DIV>
+
+<P>That's it. After 2-3 seconds, the bundle should be picked up by JCRInstall, installed and started. If this works you'll see a small <EM>Knopflerfish Desktop</EM> window on your desktop, and Sling's OSGi console can of course be used to check the details.</P>
+
+<P>Removing the bundle from the repository will cause it to be uninstalled, so:</P>
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>curl -X DELETE \
+  http://admin:admin@localhost:8888/apps/jcrtest/install/desktop_awt_all-2.0.0.jar
+</PRE>
+</DIV></DIV>
+
+<P>Should cause the <EM>Knopflerfish Desktop</EM> window to disappear as the bundle is uninstalled.</P>
+
+
+<H2><A name="JCRInstallerProvider-Install%2Cmodifyandremoveaconfiguration"></A>Install, modify and remove a configuration</H2>
+<P>JCRInstall installs OSGi configurations from nodes having the <EM>sling:OsgiConfig</EM> node type, found in folders named <EM>install</EM> under the installation roots (/apps and /libs).</P>
+
+<P>Let's try this feature by creating a configuration with two properties:</P>
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>curl \
+  -F &quot;jcr:primaryType=sling:OsgiConfig&quot; \
+  -F foo=bar -F works=yes \
+  http://admin:admin@localhost:8888/apps/jcrtest/install/some.config.pid
+</PRE>
+</DIV></DIV>
+
+<P>And verify the contents of our config node:</P>
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>curl \
+  http://admin:admin@localhost:8888/apps/jcrtest/install/some.config.pid.json
+</PRE>
+</DIV></DIV>
+
+<P>Which should display something like</P>
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>{&quot;foo&quot;:&quot;bar&quot;,
+&quot;jcr:created&quot;:&quot;Wed Aug 26 2009 17:06:40GMT+0200&quot;,
+&quot;jcr:primaryType&quot;:&quot;sling:OsgiConfig&quot;,&quot;works&quot;:&quot;yes&quot;}
+</PRE>
+</DIV></DIV>
+
+<P>At this point, JCRInstall should have picked up our new config and installed it. The logs would confirm that, but we can also use the OSGi console's config status page (<A href="http://localhost:8888/system/console/config" class="external-link" rel="nofollow">http://localhost:8888/system/console/config</A>) to check it. That page should now contain:</P>
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>PID=some.config.pid
+  BundleLocation=Unbound
+  _jcr_config_path=jcrinstall:/apps/jcrtest/install/some.config.pid
+  foo=bars
+  service.pid=some.config.pid
+  works=yes
+</PRE>
+</DIV></DIV>
+
+<P>Indicating that the configuration has been installed.</P>
+
+<P>Let's try modifying the configuration parameters:</P>
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>curl \
+  -F works=updated -F even=more \
+  http://admin:admin@localhost:8888/apps/jcrtest/install/some.config.pid
+</PRE>
+</DIV></DIV>
+
+<P>And check the changes in the console page:</P>
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>PID=some.config.pid
+  BundleLocation=Unbound
+  _jcr_config_path=jcrinstall:/apps/jcrtest/install/some.config.pid
+  even=more
+  foo=bars
+  service.pid=some.config.pid
+  works=updated
+</PRE>
+</DIV></DIV>
+
+<P>We can now delete the configuration node:</P>
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>curl -X DELETE \
+  http://admin:admin@localhost:8888/apps/jcrtest/install/some.config.pid
+</PRE>
+</DIV></DIV>
+
+<P>And verify that the corresponding configuration is gone in the console page (after 1-2 seconds, like for all other JCRInstall operations).</P>
+
+<P><B>TODO:</B> A node named like <TT>o.a.s.foo.bar-a</TT> uses <EM>o.a.s.foo.bar</EM> as its factory PID creating a configuration with an automatically generated PID. The value of <EM>a</EM> is stored as an alias property in the configuration to correlate the configuration object with the repository node - demonstrate that.</P>
+
+<H1><A name="JCRInstallerProvider-AutomatedTests"></A>Automated Tests</H1>
+<P>The following modules contain lots of automated tests (under <TT>src/test</TT>, as usual):</P>
+
+<UL>
+	<LI>OSGi installer integration tests (<A href="http://svn.apache.org/repos/asf/sling/trunk/installer/it" class="external-link" rel="nofollow">org.apache.sling.installer.it</A>)</LI>
+	<LI>JCR installer service (<A href="http://svn.apache.org/repos/asf/sling/trunk/installer/providers/jcr" class="external-link" rel="nofollow">org.apache.sling.installer.providers.jcr</A>)</LI>
+</UL>
+
+
+<P>Many of these tests are fairly readable, and can be used to find out in more detail how these modules work.</P>
+        <DIV class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+Last modified by cziegeler@apache.org on 2011-10-11 07:47:44.0
+        </DIV>
+        <DIV class="trademarkFooter">
+Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+        </DIV>
+    </DIV>
+  </BODY>
+</HTML>
+

Added: websites/staging/sling/trunk/content/site/jspc.html
==============================================================================
--- websites/staging/sling/trunk/content/site/jspc.html (added)
+++ websites/staging/sling/trunk/content/site/jspc.html Wed Dec 12 09:16:44 2012
@@ -0,0 +1,157 @@
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<HTML>
+  <HEAD>
+    <TITLE>Apache Sling - JspC</TITLE>
+    <LINK rel="stylesheet" href="http://sling.apache.org/site/media.data/site.css" type="text/css" media="all">
+    <LINK rel="icon" href="http://sling.apache.org/site/media.data/favicon.ico">
+    <META http-equiv="Content-Type" content="text/html;charset=UTF-8">
+  </HEAD>
+  <BODY>
+    <DIV class="title">
+      <DIV class="logo">
+        <A href="http://sling.apache.org/site/index.html">
+          <IMG border="0" alt="Apache Sling" src="http://sling.apache.org/site/media.data/logo.png">
+        </A>
+      </DIV>
+      <DIV class="header">
+        <A href="http://www.apache.org/">
+          <IMG border="0" alt="Apache" src="http://sling.apache.org/site/media.data/apache.png">
+        </A>
+      </DIV>
+    </DIV>
+    <DIV class="menu">
+<P><B>Documentation</B><BR class="atl-forced-newline">
+<A href="getting-started.html" title="Getting Started">Getting Started</A><BR class="atl-forced-newline">
+<A href="the-sling-engine.html" title="The Sling Engine">The Sling Engine</A><BR class="atl-forced-newline">
+<A href="development.html" title="Development">Development</A><BR class="atl-forced-newline">
+<A href="bundles.html" title="Bundles">Bundles</A><BR class="atl-forced-newline">
+<A href="tutorials-how-tos.html" title="Tutorials & How-Tos">Tutorials &amp; How&#45;Tos</A><BR class="atl-forced-newline">
+<A href="configuration.html" title="Configuration">Configuration</A><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/apidocs/sling6/index.html" class="external-link" rel="nofollow">API docs</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.wiki" class="external-link" rel="nofollow">Wiki</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.faq" class="external-link" rel="nofollow">FAQ</A><BR class="atl-forced-newline"></P>
+
+<P><B>Project info</B><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/site/downloads.cgi" class="external-link" rel="nofollow">Downloads</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/licenses/" class="external-link" rel="nofollow">License</A><BR class="atl-forced-newline">
+<A href="contributing.html" title="Contributing">Contributing</A><BR class="atl-forced-newline">
+<A href="news.html" title="News">News</A><BR class="atl-forced-newline">
+<A href="links.html" title="Links">Links</A><BR class="atl-forced-newline">
+<A href="project-information.html" title="Project Information">Project Information</A><BR class="atl-forced-newline">
+<A href="https://issues.apache.org/jira/browse/SLING" class="external-link" rel="nofollow">Issue Tracker</A><BR class="atl-forced-newline">
+<A href="http://svn.apache.org/viewvc/sling/trunk" class="external-link" rel="nofollow">Browse Source Repository</A><BR class="atl-forced-newline">
+<A href="security.html" title="Security">Security</A><BR class="atl-forced-newline"></P>
+
+<P><B>Sponsorship</B><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/thanks.html" class="external-link" rel="nofollow">Thanks</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/sponsorship.html" class="external-link" rel="nofollow">Become a Sponsor</A><BR>
+<A href="http://www.apache.org/foundation/buy_stuff.html" class="external-link" rel="nofollow">Buy Stuff</A></P>
+
+
+  <IFRAME src="http://www.apache.org/ads/button.html" style="border-width:0; float: left" frameborder="0" scrolling="no" width="135" height="135"></IFRAME>
+  <P style="height: 135px"></P>
+    </DIV>
+    <DIV class="main">
+        <DIV class="breadcrump" style="font-size: 80%;">
+<A href="apache-sling.html" title="Apache Sling Website">Apache Sling Website</A>&nbsp;&gt;&nbsp;<A href="apache-sling.html" title="Apache Sling">Apache Sling</A>&nbsp;&gt;&nbsp;<A href="documentation.html" title="Documentation">Documentation</A>&nbsp;&gt;&nbsp;<A href="development.html" title="Development">Development</A>&nbsp;&gt;&nbsp;<A href="" title="JspC">JspC</A>
+        </DIV>
+<H1><A name="JspC-MavenJspCPlugin"></A>Maven JspC Plugin</H1>
+
+
+
+<P>The Maven JspC Plugin provides a single goal <TT>jspc</TT> which is by default executed in the <TT>compile</TT> phase of the Maven build process. This goal takes all JSP source files from a configured location (<TT>src/main/scripts</TT> by default) and compiles them into classes in a configurable location (<TT>target/jspc-plugin-generated</TT> by default). In addition, for each compiled JSP a Declarative Services descriptor is generated and written to a descriptor file (<TT>OSGI-INF/jspServiceComponents.xml</TT> 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 <TT>javax.servlet.Servlet</TT> services.</P>
+
+
+
+<H2><A name="JspC-Use"></A>Use</H2>
+
+<P>To use the Maven JspC Plugin define the following elements in the <TT>&lt;plugins&gt;</TT> section of the POM:</P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-xml">
+<SPAN class="code-tag">&lt;?xml version=<SPAN class="code-quote">&quot;1.0&quot;</SPAN> encoding=<SPAN class="code-quote">&quot;ISO-8859-1&quot;</SPAN>?&gt;</SPAN>
+<SPAN class="code-tag">&lt;project&gt;</SPAN>
+    ....
+    <SPAN class="code-tag">&lt;build&gt;</SPAN>
+        ....
+        <SPAN class="code-tag">&lt;plugins&gt;</SPAN>
+            ....
+            <SPAN class="code-tag">&lt;plugin&gt;</SPAN>
+                <SPAN class="code-tag">&lt;groupId&gt;</SPAN>org.apache.sling<SPAN class="code-tag">&lt;/groupId&gt;</SPAN>
+                <SPAN class="code-tag">&lt;artifactId&gt;</SPAN>maven-jspc-plugin<SPAN class="code-tag">&lt;/artifactId&gt;</SPAN>
+                <SPAN class="code-tag">&lt;executions&gt;</SPAN>
+                    <SPAN class="code-tag">&lt;execution&gt;</SPAN>
+                        <SPAN class="code-tag">&lt;id&gt;</SPAN>compile-jsp<SPAN class="code-tag">&lt;/id&gt;</SPAN>
+                        <SPAN class="code-tag">&lt;goals&gt;</SPAN>
+                            <SPAN class="code-tag">&lt;goal&gt;</SPAN>jspc<SPAN class="code-tag">&lt;/goal&gt;</SPAN>
+                        <SPAN class="code-tag">&lt;/goals&gt;</SPAN>
+                    <SPAN class="code-tag">&lt;/execution&gt;</SPAN>
+                <SPAN class="code-tag">&lt;/executions&gt;</SPAN>
+            <SPAN class="code-tag">&lt;/plugin&gt;</SPAN>
+            ....
+        <SPAN class="code-tag">&lt;plugins&gt;</SPAN>
+        ....
+    <SPAN class="code-tag">&lt;build&gt;</SPAN>
+    ....
+<SPAN class="code-tag">&lt;project&gt;</SPAN>
+</PRE>
+</DIV></DIV>
+
+
+
+<H2><A name="JspC-Configuration"></A>Configuration</H2>
+
+<P>The Maven JspC Plugin may be configured in the <TT>&lt;configuration&gt;</TT> element using the following properties:</P>
+
+<DIV class="table-wrap">
+<TABLE class="confluenceTable"><TBODY>
+<TR>
+<TH class="confluenceTh"> Parameter </TH>
+<TH class="confluenceTh"> Default Value </TH>
+<TH class="confluenceTh"> Description </TH>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>sourceDirectory</TT> </TD>
+<TD class="confluenceTd"> <TT>${project.build.scriptSourceDirectory</TT>} </TD>
+<TD class="confluenceTd"> Location of the JSP source file; may be overwritten using the <TT>jspc.sourceDirectory</TT> system property. </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>outputDirectory</TT> </TD>
+<TD class="confluenceTd"> <TT>${project.build.directory}/jspc-plugin-generated</TT> </TD>
+<TD class="confluenceTd"> Target directory for the compiled JSP classes; may be overwritten using the <TT>jspc.outputDirectory</TT> system propertiy. </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>compilerTargetVM</TT> </TD>
+<TD class="confluenceTd"> <TT>1.5</TT> </TD>
+<TD class="confluenceTd"> The Target Virtual Machine Version to generate class files for; may be overwritten using the <TT>jspc.compilerTargetVM</TT> system property. </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>compilerSourceVM</TT> </TD>
+<TD class="confluenceTd"> <TT>1.5</TT> </TD>
+<TD class="confluenceTd"> The Compiler Source Version of the Java source generated from the JSP files before compiling into classes; may be overwritten using the <TT>jspc.compilerSourceVM</TT> system property. </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> <TT>servletPackage</TT> </TD>
+<TD class="confluenceTd"> <TT>org.apache.jsp</TT> </TD>
+<TD class="confluenceTd"> The root package name for the generated class files; may be overwritten using the <TT>jspc.servletPackage</TT> system property. </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+
+
+
+<H2><A name="JspC-Notes"></A>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;">
+Last modified by fmeschbe on 2008-02-11 05:47:49.0
+        </DIV>
+        <DIV class="trademarkFooter">
+Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+        </DIV>
+    </DIV>
+  </BODY>
+</HTML>
+

Added: websites/staging/sling/trunk/content/site/launch-sling.html
==============================================================================
--- websites/staging/sling/trunk/content/site/launch-sling.html (added)
+++ websites/staging/sling/trunk/content/site/launch-sling.html Wed Dec 12 09:16:44 2012
@@ -0,0 +1,69 @@
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<HTML>
+  <HEAD>
+    <TITLE>Apache Sling - Launch Sling</TITLE>
+    <LINK rel="stylesheet" href="http://sling.apache.org/site/media.data/site.css" type="text/css" media="all">
+    <LINK rel="icon" href="http://sling.apache.org/site/media.data/favicon.ico">
+    <META http-equiv="Content-Type" content="text/html;charset=UTF-8">
+  </HEAD>
+  <BODY>
+    <DIV class="title">
+      <DIV class="logo">
+        <A href="http://sling.apache.org/site/index.html">
+          <IMG border="0" alt="Apache Sling" src="http://sling.apache.org/site/media.data/logo.png">
+        </A>
+      </DIV>
+      <DIV class="header">
+        <A href="http://www.apache.org/">
+          <IMG border="0" alt="Apache" src="http://sling.apache.org/site/media.data/apache.png">
+        </A>
+      </DIV>
+    </DIV>
+    <DIV class="menu">
+<P><B>Documentation</B><BR class="atl-forced-newline">
+<A href="getting-started.html" title="Getting Started">Getting Started</A><BR class="atl-forced-newline">
+<A href="the-sling-engine.html" title="The Sling Engine">The Sling Engine</A><BR class="atl-forced-newline">
+<A href="development.html" title="Development">Development</A><BR class="atl-forced-newline">
+<A href="bundles.html" title="Bundles">Bundles</A><BR class="atl-forced-newline">
+<A href="tutorials-how-tos.html" title="Tutorials & How-Tos">Tutorials &amp; How&#45;Tos</A><BR class="atl-forced-newline">
+<A href="configuration.html" title="Configuration">Configuration</A><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/apidocs/sling6/index.html" class="external-link" rel="nofollow">API docs</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.wiki" class="external-link" rel="nofollow">Wiki</A><BR class="atl-forced-newline">
+<A href="http://s.apache.org/sling.faq" class="external-link" rel="nofollow">FAQ</A><BR class="atl-forced-newline"></P>
+
+<P><B>Project info</B><BR class="atl-forced-newline">
+<A href="http://sling.apache.org/site/downloads.cgi" class="external-link" rel="nofollow">Downloads</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/licenses/" class="external-link" rel="nofollow">License</A><BR class="atl-forced-newline">
+<A href="contributing.html" title="Contributing">Contributing</A><BR class="atl-forced-newline">
+<A href="news.html" title="News">News</A><BR class="atl-forced-newline">
+<A href="links.html" title="Links">Links</A><BR class="atl-forced-newline">
+<A href="project-information.html" title="Project Information">Project Information</A><BR class="atl-forced-newline">
+<A href="https://issues.apache.org/jira/browse/SLING" class="external-link" rel="nofollow">Issue Tracker</A><BR class="atl-forced-newline">
+<A href="http://svn.apache.org/viewvc/sling/trunk" class="external-link" rel="nofollow">Browse Source Repository</A><BR class="atl-forced-newline">
+<A href="security.html" title="Security">Security</A><BR class="atl-forced-newline"></P>
+
+<P><B>Sponsorship</B><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/thanks.html" class="external-link" rel="nofollow">Thanks</A><BR class="atl-forced-newline">
+<A href="http://www.apache.org/foundation/sponsorship.html" class="external-link" rel="nofollow">Become a Sponsor</A><BR>
+<A href="http://www.apache.org/foundation/buy_stuff.html" class="external-link" rel="nofollow">Buy Stuff</A></P>
+
+
+  <IFRAME src="http://www.apache.org/ads/button.html" style="border-width:0; float: left" frameborder="0" scrolling="no" width="135" height="135"></IFRAME>
+  <P style="height: 135px"></P>
+    </DIV>
+    <DIV class="main">
+        <DIV class="breadcrump" style="font-size: 80%;">
+<A href="apache-sling.html" title="Apache Sling Website">Apache Sling Website</A>&nbsp;&gt;&nbsp;<A href="apache-sling.html" title="Apache Sling">Apache Sling</A>&nbsp;&gt;&nbsp;<A href="old-stuff.html" title="Old Stuff">Old Stuff</A>&nbsp;&gt;&nbsp;<A href="" title="Launch Sling">Launch Sling</A>
+        </DIV>
+<P>Please refer to <A href="the-sling-launchpad.html" title="The Sling Launchpad">The Sling Launchpad</A> for up-to-date information on launching Sling.</P>
+        <DIV class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+Last modified by fmeschbe on 2010-07-30 17:54:33.0
+        </DIV>
+        <DIV class="trademarkFooter">
+Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+        </DIV>
+    </DIV>
+  </BODY>
+</HTML>
+

Added: websites/staging/sling/trunk/content/site/links.data/ApacheConEU08_FFT_Sling.pdf
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/sling/trunk/content/site/links.data/ApacheConEU08_FFT_Sling.pdf
------------------------------------------------------------------------------
    svn:mime-type = application/pdf

Added: websites/staging/sling/trunk/content/site/links.data/ApacheConEU08_JCR_Meetup_Sling_Architecture.pdf
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/sling/trunk/content/site/links.data/ApacheConEU08_JCR_Meetup_Sling_Architecture.pdf
------------------------------------------------------------------------------
    svn:mime-type = application/pdf

Added: websites/staging/sling/trunk/content/site/links.data/ApacheConUS07_FFT_Sling.pdf
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/sling/trunk/content/site/links.data/ApacheConUS07_FFT_Sling.pdf
------------------------------------------------------------------------------
    svn:mime-type = application/pdf



Mime
View raw message