Modified: websites/staging/sling/trunk/content/documentation/bundles/sling-query.html ============================================================================== --- websites/staging/sling/trunk/content/documentation/bundles/sling-query.html (original) +++ websites/staging/sling/trunk/content/documentation/bundles/sling-query.html Tue Sep 22 10:23:16 2015 @@ -18,11 +18,11 @@ limitations under the License. --> <head> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Apache Sling - Sling Query</title> <link rel="icon" href="/res/favicon.ico"> <link rel="stylesheet" href="/res/site.css" type="text/css" media="all"> <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all"> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> </head> <body> <div class="title"> @@ -39,7 +39,18 @@ </div> <div class="menu"> - <p><strong><a href="/documentation.html">Documentation</a></strong> <br /> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<p><strong><a href="/documentation.html">Documentation</a></strong> <br /> <a href="/documentation/getting-started.html">Getting Started</a> <br /> <a href="/documentation/the-sling-engine.html">The Sling Engine</a> <br /> <a href="/documentation/development.html">Development</a> <br /> @@ -90,8 +101,19 @@ <h1>Sling Query</h1> - <p>SlingQuery is a Sling resource tree traversal tool inspired by the <a href="http://api.jquery.com/category/traversing/tree-traversal/">jQuery</a> JavaScript API.</p> -<h2 id="introduction">Introduction</h2> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<p>SlingQuery is a Sling resource tree traversal tool inspired by the <a href="http://api.jquery.com/category/traversing/tree-traversal/">jQuery</a> JavaScript API.</p> +<h2 id="introduction">Introduction<a class="headerlink" href="#introduction" title="Permanent link">¶</a></h2> <p>The recommended way to find resources in the Sling repository is using tree-traversal methods, like <code>listChildren()</code> and <code>getParent()</code> rather than JCR queries. The latter are great for listing resources with given properties, but we can't leverage the repository tree structure with such queries. On the other hand, using tree-traversal method is quite verbose. Consider following code that takes an resource and returns its first ancestor, being <code>cq:Page</code>, with given <code>jcr:content/cq:template</code> attribute:</p> <div class="codehilite"><pre><span class="n">Resource</span> <span class="n">resource</span> <span class="p">=</span> <span class="p">...;</span> <span class="k">while</span> <span class="p">((</span><span class="n">resource</span> <span class="p">=</span> <span class="n">resource</span><span class="p">.</span><span class="n">getParent</span><span class="p">())</span> !<span class="p">=</span> <span class="n">null</span><span class="p">)</span> <span class="p">{</span> @@ -118,7 +140,7 @@ $<span class="p">(</span><span class="n" <p>Dollar sign is a static method that takes the resource array and creates SlingQuery object. The <code>closest()</code> method returns the first ancestor matching the selector string passed as the argument.</p> <p>SlingQuery is inspired by the jQuery framework. jQuery is the source of method names, selector string syntax and the dollar sign method used as a collection constructor.</p> -<h2 id="features">Features</h2> +<h2 id="features">Features<a class="headerlink" href="#features" title="Permanent link">¶</a></h2> <ul> <li>useful <a href="https://github.com/Cognifide/Sling-Query/wiki/Method-list">operations</a> to traverse the resource tree,</li> <li>flexible <a href="https://github.com/Cognifide/Sling-Query/wiki/Selector-syntax">filtering syntax</a>,</li> @@ -126,7 +148,7 @@ $<span class="p">(</span><span class="n" <li><code>SlingQuery</code> object is immutable (thread-safe),</li> <li>fluent, friendly, jQuery-like API.</li> </ul> -<h2 id="installation">Installation</h2> +<h2 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">¶</a></h2> <p>Add following Maven dependency to your <code>pom.xml</code>:</p> <div class="codehilite"><pre><span class="nt"><dependency></span> <span class="nt"><groupId></span>org.apache.sling<span class="nt"></groupId></span> @@ -136,7 +158,7 @@ $<span class="p">(</span><span class="n" </pre></div> -<h2 id="documentation">Documentation</h2> +<h2 id="documentation">Documentation<a class="headerlink" href="#documentation" title="Permanent link">¶</a></h2> <ul> <li><a href="http://cognifide.github.io/Sling-Query/circuit2014/">CIRCUIT 2014 presentation</a></li> <li><a href="https://github.com/Cognifide/Sling-Query/wiki/Basic-ideas">Basic ideas</a></li> @@ -149,7 +171,7 @@ $<span class="p">(</span><span class="n" </li> <li><a href="https://github.com/Cognifide/Sling-Query/wiki/Examples">Examples</a></li> </ul> -<h2 id="external-resources">External resources</h2> +<h2 id="external-resources">External resources<a class="headerlink" href="#external-resources" title="Permanent link">¶</a></h2> <ul> <li>See the <a href="http://sling.apache.org/">Apache Sling website</a> for the Sling reference documentation. Apache Sling, Apache and Sling are trademarks of the <a href="http://apache.org">Apache Software Foundation</a>.</li> <li>Method names, selector syntax and some parts of documentation are inspired by the <a href="http://jquery.com/">jQuery</a> library.</li>
Modified: websites/staging/sling/trunk/content/documentation/bundles/sling-scripting-jsp-taglib.html ============================================================================== --- websites/staging/sling/trunk/content/documentation/bundles/sling-scripting-jsp-taglib.html (original) +++ websites/staging/sling/trunk/content/documentation/bundles/sling-scripting-jsp-taglib.html Tue Sep 22 10:23:16 2015 @@ -18,11 +18,11 @@ limitations under the License. --> <head> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Apache Sling - Sling Scripting JSP Taglib</title> <link rel="icon" href="/res/favicon.ico"> <link rel="stylesheet" href="/res/site.css" type="text/css" media="all"> <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all"> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> </head> <body> <div class="title"> @@ -39,7 +39,18 @@ </div> <div class="menu"> - <p><strong><a href="/documentation.html">Documentation</a></strong> <br /> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<p><strong><a href="/documentation.html">Documentation</a></strong> <br /> <a href="/documentation/getting-started.html">Getting Started</a> <br /> <a href="/documentation/the-sling-engine.html">The Sling Engine</a> <br /> <a href="/documentation/development.html">Development</a> <br /> @@ -90,10 +101,21 @@ <h1>Sling Scripting JSP Taglib</h1> - <p>The Sling Scripting JSP Taglib supports the use of Sling as an application in JSP pages. The Sling Taglib provides the + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<p>The Sling Scripting JSP Taglib supports the use of Sling as an application in JSP pages. The Sling Taglib provides the ability to invoke JSP scripts, include Resources and interact with the Sling Repository, all with JSP tags and <a href="http://docs.oracle.com/javaee/6/tutorial/doc/gjddd.html">Expression Language (EL)</a> functions.</p> -<h2 id="use">Use</h2> +<h2 id="use">Use<a class="headerlink" href="#use" title="Permanent link">¶</a></h2> <p>Using the Sling Taglib in a JSP page is as simple as including the Taglib include in your JSP, with the correct URI for the version of the Sling Taglib installed.</p> <div class="codehilite"><pre><span class="cp"><%</span><span class="vi">@taglib</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"sling"</span> <span class="n">uri</span><span class="o">=</span><span class="s2">"http://sling.apache.org/taglibs/sling"</span> <span class="cp">%></span><span class="x"></span> @@ -105,9 +127,9 @@ and sets up all of the application varia <p>The Sling Taglib does not attempt to reproduce the functionality of other Tag Libraries, such as <a href="http://www.oracle.com/technetwork/java/index-jsp-135995.html">JSTL</a>; additional Tag Libraries may be required to fully leverage the Sling Taglib.</p> -<h2 id="taglib-versions">Taglib Versions</h2> +<h2 id="taglib-versions">Taglib Versions<a class="headerlink" href="#taglib-versions" title="Permanent link">¶</a></h2> <p>There have been a number of releases of the Sling Taglibs, including versions with different URIs.</p> -<table> +<table class="table"> <thead> <tr> <th>Taglib Version</th> @@ -140,9 +162,9 @@ the Sling Taglib.</p> </table> <p>All releases from 1.3 onward are expected to use the URI <code>http://sling.apache.org/taglibs/sling</code> to ensure ease of upgrading to newer versions of the Taglib.</p> -<h2 id="expression-language-functions">Expression Language Functions</h2> +<h2 id="expression-language-functions">Expression Language Functions<a class="headerlink" href="#expression-language-functions" title="Permanent link">¶</a></h2> <p>The Sling Taglib includes a number of Expression Language Functions which can be used to access the repository.</p> -<h3 id="adaptto">adaptTo</h3> +<h3 id="adaptto">adaptTo<a class="headerlink" href="#adaptto" title="Permanent link">¶</a></h3> <p>Adapts an Adaptable to another class.</p> <ul> <li>Returns: <code>java.lang.Object</code></li> @@ -158,7 +180,7 @@ upgrading to newer versions of the Tagli </pre></div> -<h3 id="encode">encode</h3> +<h3 id="encode">encode<a class="headerlink" href="#encode" title="Permanent link">¶</a></h3> <p>Writes properly Cross Site Scripting (XSS) encoded text to the response using the OWASP ESAPI. Supports a number of encoding modes.</p> <ul> <li>Returns: <code>java.util.String</code> - An encoded text</li> @@ -174,7 +196,7 @@ upgrading to newer versions of the Tagli </pre></div> -<h3 id="findresources">findResources</h3> +<h3 id="findresources">findResources<a class="headerlink" href="#findresources" title="Permanent link">¶</a></h3> <p>Searches for resources using the given query formulated in the given language.</p> <ul> <li>Returns: <code>java.util.Iterator</code> - An Iterator of Resource objects matching the query.</li> @@ -193,7 +215,7 @@ upgrading to newer versions of the Tagli </pre></div> -<h3 id="getrelativeresource">getRelativeResource</h3> +<h3 id="getrelativeresource">getRelativeResource<a class="headerlink" href="#getrelativeresource" title="Permanent link">¶</a></h3> <p>Gets the resource at the relative path to the provided resource.</p> <ul> <li>Returns: <code>org.apache.sling.api.resource.Resource</code> - The resource at the relative path.</li> @@ -209,7 +231,7 @@ upgrading to newer versions of the Tagli </pre></div> -<h3 id="getresource">getResource</h3> +<h3 id="getresource">getResource<a class="headerlink" href="#getresource" title="Permanent link">¶</a></h3> <p>Method allow for the retrieval of resources.</p> <ul> <li>Returns: <code>org.apache.sling.api.resource.Resource</code> - The resource at the path.</li> @@ -225,7 +247,7 @@ upgrading to newer versions of the Tagli </pre></div> -<h3 id="getvalue">getValue</h3> +<h3 id="getvalue">getValue<a class="headerlink" href="#getvalue" title="Permanent link">¶</a></h3> <p>Gets the value of the specified key from the ValueMap and either coerses the value into the specified type or uses the specified type as a default depending on the parameter passed in.</p> @@ -247,7 +269,7 @@ otherwise, the third parameter is used a </pre></div> -<h3 id="listchildren">listChildren</h3> +<h3 id="listchildren">listChildren<a class="headerlink" href="#listchildren" title="Permanent link">¶</a></h3> <p>Method for allowing the invocation of the Sling Resource listChildren method.</p> <ul> <li>Returns: <code>java.util.Iterator</code> - The children of the resource.</li> @@ -264,9 +286,9 @@ otherwise, the third parameter is used a </pre></div> -<h2 id="tags">Tags</h2> +<h2 id="tags">Tags<a class="headerlink" href="#tags" title="Permanent link">¶</a></h2> <p>The Sling Taglib includes a number of Tags which can be used to access the repository, handle the inclusion of scripts and manage requests.</p> -<h3 id="adaptto_1">adaptTo</h3> +<h3 id="adaptto_1">adaptTo<a class="headerlink" href="#adaptto_1" title="Permanent link">¶</a></h3> <p>Adapts adaptables to objects of other types.</p> <ul> <li>Attributes<ul> @@ -282,7 +304,7 @@ otherwise, the third parameter is used a </pre></div> -<h3 id="call">call</h3> +<h3 id="call">call<a class="headerlink" href="#call" title="Permanent link">¶</a></h3> <p>Execute a script.</p> <ul> <li>Attributes<ul> @@ -298,7 +320,7 @@ otherwise, the third parameter is used a </pre></div> -<h3 id="defineobjects">defineObjects</h3> +<h3 id="defineobjects">defineObjects<a class="headerlink" href="#defineobjects" title="Permanent link">¶</a></h3> <p>Defines regularly used scripting variables</p> <ul> <li>Attributes<ul> @@ -318,7 +340,7 @@ otherwise, the third parameter is used a </pre></div> -<h3 id="encode_1">encode</h3> +<h3 id="encode_1">encode<a class="headerlink" href="#encode_1" title="Permanent link">¶</a></h3> <p>Writes properly Cross Site Scripting (XSS) encoded text to the response using the OWASP ESAPI. Supports a number of encoding modes.</p> <ul> <li>Attributes:<ul> @@ -334,7 +356,7 @@ otherwise, the third parameter is used a </pre></div> -<h3 id="eval">eval</h3> +<h3 id="eval">eval<a class="headerlink" href="#eval" title="Permanent link">¶</a></h3> <p>Evaluates a script invocation and includes the result in the current page.</p> <ul> <li>Attributes<ul> @@ -352,7 +374,7 @@ otherwise, the third parameter is used a </pre></div> -<h3 id="findresources_1">findResources</h3> +<h3 id="findresources_1">findResources<a class="headerlink" href="#findresources_1" title="Permanent link">¶</a></h3> <p>Tag for searching for resources using the given query formulated in the given language.</p> <ul> <li>Attributes<ul> @@ -368,7 +390,7 @@ otherwise, the third parameter is used a </pre></div> -<h3 id="forward">forward</h3> +<h3 id="forward">forward<a class="headerlink" href="#forward" title="Permanent link">¶</a></h3> <p>Forwards a request to a resource rendering the current page</p> <ul> <li>Attributes<ul> @@ -387,7 +409,7 @@ otherwise, the third parameter is used a </pre></div> -<h3 id="getproperty">getProperty</h3> +<h3 id="getproperty">getProperty<a class="headerlink" href="#getproperty" title="Permanent link">¶</a></h3> <p>Retrieves the value from the ValueMap, allowing for a default value or coercing the return value.</p> <ul> <li>Attributes<ul> @@ -405,7 +427,7 @@ otherwise, the third parameter is used a </pre></div> -<h3 id="getresource_1">getResource</h3> +<h3 id="getresource_1">getResource<a class="headerlink" href="#getresource_1" title="Permanent link">¶</a></h3> <p>Retrieves resources based on either an absolute path or a relative path and a base resource.</p> <ul> <li>Attributes<ul> @@ -423,7 +445,7 @@ otherwise, the third parameter is used a </pre></div> -<h3 id="include">include</h3> +<h3 id="include">include<a class="headerlink" href="#include" title="Permanent link">¶</a></h3> <p>Includes a resource rendering into the current page.</p> <ul> <li>Attributes<ul> @@ -445,7 +467,7 @@ otherwise, the third parameter is used a </pre></div> -<h3 id="listchildren_1">listChildren</h3> +<h3 id="listchildren_1">listChildren<a class="headerlink" href="#listchildren_1" title="Permanent link">¶</a></h3> <p>Lists the children of a Sling Resource.</p> <ul> <li>Attributes<ul> Modified: websites/staging/sling/trunk/content/documentation/bundles/sling-settings-org-apache-sling-settings.html ============================================================================== --- websites/staging/sling/trunk/content/documentation/bundles/sling-settings-org-apache-sling-settings.html (original) +++ websites/staging/sling/trunk/content/documentation/bundles/sling-settings-org-apache-sling-settings.html Tue Sep 22 10:23:16 2015 @@ -18,11 +18,11 @@ limitations under the License. --> <head> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Apache Sling - Sling Settings (org.apache.sling.settings)</title> <link rel="icon" href="/res/favicon.ico"> <link rel="stylesheet" href="/res/site.css" type="text/css" media="all"> <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all"> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> </head> <body> <div class="title"> @@ -39,7 +39,18 @@ </div> <div class="menu"> - <p><strong><a href="/documentation.html">Documentation</a></strong> <br /> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<p><strong><a href="/documentation.html">Documentation</a></strong> <br /> <a href="/documentation/getting-started.html">Getting Started</a> <br /> <a href="/documentation/the-sling-engine.html">The Sling Engine</a> <br /> <a href="/documentation/development.html">Development</a> <br /> @@ -90,9 +101,20 @@ <h1>Sling Settings (org.apache.sling.settings)</h1> - <h1 id="overview">Overview</h1> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<h1 id="overview">Overview<a class="headerlink" href="#overview" title="Permanent link">¶</a></h1> <p>The Sling Settings Bundle exposes the <code>SlingSettingsService</code> which allows access to the following information pertinent to a Sling instance:</p> -<table> +<table class="table"> <thead> <tr> <th>Method</th> @@ -124,14 +146,14 @@ </tbody> </table> <p>The new Sling Settings Bundle replaces the former <a href="/old-stuff/run-modes-org-apache-sling-runmode.html">Run Modes (org.apache.sling.runmode)</a> Bundle and the <code>SlingSettingsService</code> previously provided by the Sling Engine bundle.</p> -<h2 id="run-modes">Run Modes</h2> +<h2 id="run-modes">Run Modes<a class="headerlink" href="#run-modes" title="Permanent link">¶</a></h2> <p>Run modes are meant to define different sets of configuration parameters for various Sling instances.</p> <p>In a web publishing environment, for example, one could use run modes like <em>staging, production, dev, dmz</em> or combinations of such values.</p> -<h3 id="configuration">Configuration</h3> +<h3 id="configuration">Configuration<a class="headerlink" href="#configuration" title="Permanent link">¶</a></h3> <p>Run modes can only be configured using a system property, or via the <code>sling.properties</code> file.</p> <p>Using <code>-Dsling.run.modes=foo,bar</code> on the JVM command-line, for example, activates the <em>foo</em> and <em>bar</em> run modes. </p> <p>This command-line parameter takes precedence over a similar definition (<code>sling.run.modes=dev,staging</code>) that might be present in the <code>sling.properties</code> file found in the Sling home directory.</p> -<h3 id="getting-the-run-modes-of-the-sling-instance">Getting the Run Modes of the Sling instance</h3> +<h3 id="getting-the-run-modes-of-the-sling-instance">Getting the Run Modes of the Sling instance<a class="headerlink" href="#getting-the-run-modes-of-the-sling-instance" title="Permanent link">¶</a></h3> <p>The <code>SlingSettings</code> service provides the Run Modes of the running Sling instance, examples:</p> <div class="codehilite"><pre><span class="n">SlingSettings</span> <span class="n">settings</span> <span class="o">=</span> <span class="o">...</span><span class="na">get</span> <span class="n">from</span> <span class="n">BundleContext</span><span class="o">...</span> <span class="n">Set</span><span class="o"><</span><span class="n">String</span><span class="o">></span> <span class="n">currentRunModes</span> <span class="o">=</span> <span class="n">settings</span><span class="o">.</span><span class="na">getRunModes</span><span class="o">();</span> Modified: websites/staging/sling/trunk/content/documentation/bundles/subsystem-installer-factory.html ============================================================================== --- websites/staging/sling/trunk/content/documentation/bundles/subsystem-installer-factory.html (original) +++ websites/staging/sling/trunk/content/documentation/bundles/subsystem-installer-factory.html Tue Sep 22 10:23:16 2015 @@ -18,11 +18,11 @@ limitations under the License. --> <head> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Apache Sling - Subsystems Installer Factory</title> <link rel="icon" href="/res/favicon.ico"> <link rel="stylesheet" href="/res/site.css" type="text/css" media="all"> <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all"> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> </head> <body> <div class="title"> @@ -39,7 +39,18 @@ </div> <div class="menu"> - <p><strong><a href="/documentation.html">Documentation</a></strong> <br /> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<p><strong><a href="/documentation.html">Documentation</a></strong> <br /> <a href="/documentation/getting-started.html">Getting Started</a> <br /> <a href="/documentation/the-sling-engine.html">The Sling Engine</a> <br /> <a href="/documentation/development.html">Development</a> <br /> @@ -90,10 +101,21 @@ <h1>Subsystems Installer Factory</h1> - <p>The subsystems installer factory provides support for subsystems to the <a href="/documentation/bundles/osgi-installer.html">OSGI installer</a>. The provisioning of artifacts is handled by installer providers like the file installer or the JCR installer.</p> -<h2 id="subsystems">Subsystems</h2> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<p>The subsystems installer factory provides support for subsystems to the <a href="/documentation/bundles/osgi-installer.html">OSGI installer</a>. The provisioning of artifacts is handled by installer providers like the file installer or the JCR installer.</p> +<h2 id="subsystems">Subsystems<a class="headerlink" href="#subsystems" title="Permanent link">¶</a></h2> <p>The subsystem file must end with ".esa" and the manifest must at least contain the subsystem symbolic name "Subsystem-SymbolicName" header.</p> -<h1 id="project-info">Project Info</h1> +<h1 id="project-info">Project Info<a class="headerlink" href="#project-info" title="Permanent link">¶</a></h1> <ul> <li>Subsystems installer factory (<a href="http://svn.apache.org/repos/asf/sling/trunk/installer/factories/subsystems">org.apache.sling.installer.factory.subsystems</a>)</li> </ul> Modified: websites/staging/sling/trunk/content/documentation/bundles/validation.html ============================================================================== --- websites/staging/sling/trunk/content/documentation/bundles/validation.html (original) +++ websites/staging/sling/trunk/content/documentation/bundles/validation.html Tue Sep 22 10:23:16 2015 @@ -18,11 +18,11 @@ limitations under the License. --> <head> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Apache Sling - Sling Validation</title> <link rel="icon" href="/res/favicon.ico"> <link rel="stylesheet" href="/res/site.css" type="text/css" media="all"> <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all"> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> </head> <body> <div class="title"> Modified: websites/staging/sling/trunk/content/documentation/bundles/web-console-extensions.html ============================================================================== --- websites/staging/sling/trunk/content/documentation/bundles/web-console-extensions.html (original) +++ websites/staging/sling/trunk/content/documentation/bundles/web-console-extensions.html Tue Sep 22 10:23:16 2015 @@ -18,11 +18,11 @@ limitations under the License. --> <head> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Apache Sling - Web Console Extensions</title> <link rel="icon" href="/res/favicon.ico"> <link rel="stylesheet" href="/res/site.css" type="text/css" media="all"> <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all"> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> </head> <body> <div class="title"> @@ -39,7 +39,18 @@ </div> <div class="menu"> - <p><strong><a href="/documentation.html">Documentation</a></strong> <br /> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<p><strong><a href="/documentation.html">Documentation</a></strong> <br /> <a href="/documentation/getting-started.html">Getting Started</a> <br /> <a href="/documentation/the-sling-engine.html">The Sling Engine</a> <br /> <a href="/documentation/development.html">Development</a> <br /> @@ -90,7 +101,18 @@ <h1>Web Console Extensions</h1> - <p>The Apache Sling project provides two extensions to the <a href="http://felix.apache.org/site/apache-felix-web-console.html">Apache Felix Web Console</a> (in addition to a number of plugins, of course):</p> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<p>The Apache Sling project provides two extensions to the <a href="http://felix.apache.org/site/apache-felix-web-console.html">Apache Felix Web Console</a> (in addition to a number of plugins, of course):</p> <div class="toc"> <ul> <li><a href="#branding-orgapacheslingextensionswebconsolebranding">Branding (org.apache.sling.extensions.webconsolebranding)</a></li> @@ -101,10 +123,10 @@ </li> </ul> </div> -<h2 id="branding-orgapacheslingextensionswebconsolebranding">Branding (org.apache.sling.extensions.webconsolebranding)</h2> +<h2 id="branding-orgapacheslingextensionswebconsolebranding">Branding (org.apache.sling.extensions.webconsolebranding)<a class="headerlink" href="#branding-orgapacheslingextensionswebconsolebranding" title="Permanent link">¶</a></h2> <p>The Apache Sling Web Console Branding provided by Apache Sling is currently just for the product logo displayed in the upper right corner of the Web Console and some titles and strings.</p> <p>This bundle will attach as a fragment bundle to the Apache Felix Web Console bundle. To enable it after installation into a running system, you might have to refresh the package imports of the Apache Felix Web Console bundle. If you install using the Apache Felix Web Console bundle installation functionality, this will be taken care of by the Web Console.</p> -<h2 id="security-provider-orgapacheslingextensionswebconsolesecurityprovider">Security Provider (org.apache.sling.extensions.webconsolesecurityprovider)</h2> +<h2 id="security-provider-orgapacheslingextensionswebconsolesecurityprovider">Security Provider (org.apache.sling.extensions.webconsolesecurityprovider)<a class="headerlink" href="#security-provider-orgapacheslingextensionswebconsolesecurityprovider" title="Permanent link">¶</a></h2> <p>The Apache Sling Web Console Security Provider implements the Apache Felix Web Console <code>WebConsoleSecurityProvider</code> and <code>WebConsoleSecurityProvider2</code> interface for authenticating Web Console users against the JCR repository. Each username and password presented is used to login to the JCR repository and to check the respective session.</p> <ol> <li>Ensure the username and password can be used to login to the default workspace. If not, access is denied</li> @@ -112,9 +134,9 @@ <li>Otherwise if the user is a (direct or indirect) member of one of the groups configured with the <code>groups</code> configuration property, access is granted.</li> </ol> <p>Access is denied if the username and password cannot be used to login to the default workspace or if the user is neither one of the configured allowed users nor in any of the configured groups.</p> -<h3 id="configuration">Configuration</h3> +<h3 id="configuration">Configuration<a class="headerlink" href="#configuration" title="Permanent link">¶</a></h3> <p>The Security Provider is configured with the configuration PID <code>org.apache.sling.extensions.webconsolesecurityprovider.internal.SlingWebConsoleSecurityProvider</code> supporting the following properties:</p> -<table> +<table class="table"> <thead> <tr> <th>Property</th> @@ -136,7 +158,7 @@ </tbody> </table> <p>Note, that while the default value explicitly grants the <em>admin</em> user to access the Web Console it is suggested that system administrators define a special group and assign users with Web Console access to this group.</p> -<h3 id="authentication-handling">Authentication Handling</h3> +<h3 id="authentication-handling">Authentication Handling<a class="headerlink" href="#authentication-handling" title="Permanent link">¶</a></h3> <p>As long as the web console security provider bundle is not activate and has not installed one of the above mentioned services, the default authentication of the web console is used. Once the bundle is active and a JCR repository service is available, the repository is used for authentication as explained above. But still the login form of the web console is used which is usually basic authentication. Once startup is finished and a Sling authentication service is available as well, the security provider replaces the JCR repository based auth provider with a Sling based auth provider. Both authenticate against the JCR repository, however the Sling based one using Sling to render the login form. Therefore, this provider is not registered until startup is finished</p> <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;"> Modified: websites/staging/sling/trunk/content/documentation/bundles/xml-support.html ============================================================================== --- websites/staging/sling/trunk/content/documentation/bundles/xml-support.html (original) +++ websites/staging/sling/trunk/content/documentation/bundles/xml-support.html Tue Sep 22 10:23:16 2015 @@ -18,11 +18,11 @@ limitations under the License. --> <head> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Apache Sling - XML support</title> <link rel="icon" href="/res/favicon.ico"> <link rel="stylesheet" href="/res/site.css" type="text/css" media="all"> <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all"> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> </head> <body> <div class="title"> @@ -39,7 +39,18 @@ </div> <div class="menu"> - <p><strong><a href="/documentation.html">Documentation</a></strong> <br /> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<p><strong><a href="/documentation.html">Documentation</a></strong> <br /> <a href="/documentation/getting-started.html">Getting Started</a> <br /> <a href="/documentation/the-sling-engine.html">The Sling Engine</a> <br /> <a href="/documentation/development.html">Development</a> <br /> @@ -90,7 +101,18 @@ <h1>XML support</h1> - <p>Out of the box, Sling provides no special bundles for XML. However, Sling supports multiple mechanisms and libraries. The ones we have validated with integration tests are:</p> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<p>Out of the box, Sling provides no special bundles for XML. However, Sling supports multiple mechanisms and libraries. The ones we have validated with integration tests are:</p> <ul> <li>XPath ( see the <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/servlets/XpathServlet.java">XPathServlet</a> )</li> <li>SAX ( see the <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/servlets/SaxServlet.java">SaxServlet</a> )</li> Modified: websites/staging/sling/trunk/content/documentation/configuration.html ============================================================================== --- websites/staging/sling/trunk/content/documentation/configuration.html (original) +++ websites/staging/sling/trunk/content/documentation/configuration.html Tue Sep 22 10:23:16 2015 @@ -18,11 +18,11 @@ limitations under the License. --> <head> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Apache Sling - Configuration</title> <link rel="icon" href="/res/favicon.ico"> <link rel="stylesheet" href="/res/site.css" type="text/css" media="all"> <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all"> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> </head> <body> <div class="title"> @@ -39,7 +39,18 @@ </div> <div class="menu"> - <p><strong><a href="/documentation.html">Documentation</a></strong> <br /> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<p><strong><a href="/documentation.html">Documentation</a></strong> <br /> <a href="/documentation/getting-started.html">Getting Started</a> <br /> <a href="/documentation/the-sling-engine.html">The Sling Engine</a> <br /> <a href="/documentation/development.html">Development</a> <br /> @@ -90,7 +101,18 @@ <h1>Configuration</h1> - <h2 id="introduction">Introduction</h2> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<h2 id="introduction">Introduction<a class="headerlink" href="#introduction" title="Permanent link">¶</a></h2> <p>Configuration in Sling is aligned with respective support by the OSGi specification:</p> <ul> <li>Framework and Java system properties are available through the <code>BundleContext.getProperty(String)</code> method. These properties are provided in Sling through the Sling launcher.</li> @@ -105,7 +127,7 @@ </ul> <p>For the discussion to follow we differentiate between initial configuration provided by Framework and system properties and managed configuration provided by the Configuration Admin Service.</p> <p>Components managed by the Service Component Runtime are generally configured (as listed above) through the descriptor properties and configuration set by Configuration Admin Service configuration. The descriptor property values may be seen as configuration default values set by the component developer, which may be overwritten by user configuration through the Configuration Admin Service. Components may but are not required to make use of Framework properties by accessing the <code>BundleContext</code> through the <code>ComponentContext</code> given to the <code>activate(ComponentContext)</code> method of the component.</p> -<h2 id="initial-configuration">Initial Configuration</h2> +<h2 id="initial-configuration">Initial Configuration<a class="headerlink" href="#initial-configuration" title="Permanent link">¶</a></h2> <p>The lifecycle of the OSGi framework implemented by an instance of the <code>org.apache.felix.framework.Felix</code> class is managed by the Sling launcher class <code>org.apache.sling.launcher.Sling</code>. This class is used by the standalone main class (<code>org.apache.sling.launcher.main.Main</code>) and the Sling Servlet (<code>org.apache.sling.launcher.servlet.SlingServlet</code>) to control the lifecycle.</p> <p>The Sling launcher is responsible to provide the Framework properties to the OSGi framework. The properties are prepared as a <code>java.util.Map<String, String></code> instance as follows (later steps may overwrite properties defined in earlier steps) :</p> <ol> @@ -128,11 +150,11 @@ </ol> <p>Using file system copies of the initial configuration and referred files, it is easy to modify this configuration without the need to unpack and repackage the web application archive.</p> <p>The only property really required is actually the <code>sling.home</code> property, which defines the file system location where runtime files will be placed. The default if this property is missing will be <em>sling</em> in the current working directory as defined the <code>user.dir</code> system property.</p> -<h3 id="standalone-application">Standalone Application</h3> +<h3 id="standalone-application">Standalone Application<a class="headerlink" href="#standalone-application" title="Permanent link">¶</a></h3> <p>When launching Sling as a standalone application the <code>sling-app.jar</code> file is used. This is an executable JAR File. The <code>sling.properties</code> file as well as the <code>sling_install.properties</code> and JRE specific properties files are located at the root of the JAR file hierarchy.</p> <p>The standalone application currently sets properties for the third step of the configuration setup to ensure the HTTP Servlet integration is using the Apache Felix <em>http.jetty</em> bundle. Additionally system properties may be set using the <code>-D</code> command line switch of the Java binary.</p> <p>In addition the following command line arguments are accepted:</p> -<table> +<table class="table"> <thead> <tr> <th>Argument</th> @@ -174,11 +196,11 @@ </tbody> </table> <p>The standalone application exits with status code 0 (zero) if Sling terminates normally, that is if the OSGi framework is stopped or if just the usage note has been displayed. If any error occurrs during command line parsing, the cause is printed to the error output and the application exists with status code 1 (one). If the OSGi framework fails to start, the cause is printed to the error output and the application exists with status code 2.</p> -<h3 id="web-application">Web Application</h3> +<h3 id="web-application">Web Application<a class="headerlink" href="#web-application" title="Permanent link">¶</a></h3> <p>When launching Sling as a web application using the <code>sling-servlet.war</code> or any derived Web Application archive file, the <code>sling.properties</code> file is located in the <code>WEB-INF</code> folder along with the <code>sling_install.properties</code> and JRE specific properties files.</p> <p>The Sling Servlet uses the Servlet Context and Servlet <code>init-param</code> configurations to prepare the properties for the third step of the configuration setup.</p> <p>If the OSGi framework fails to startup for any reason a <code>javax.servlet.UnavailableException</code>.</p> -<h3 id="property-file-inclusions">Property File Inclusions</h3> +<h3 id="property-file-inclusions">Property File Inclusions<a class="headerlink" href="#property-file-inclusions" title="Permanent link">¶</a></h3> <p>Twice in the configuration setup (second and seventh step) any property file inclusions will be handled. Property files may be included by defining one or more properties containing a comma-separated list of properties files to include. Property file inclusion looks at the <code>sling.include</code> property and any other property whose prefix is <code>sling.include.</code>. When such properties exist, the files listed in those properties are included.</p> <p>The order of handling the property file inclusion properties is defined as natural sort order of the actual property names. So the properties of the files listed in the <code>sling.include.first</code> property will be loaded before the files listed in the <code>sling.include.second</code> but after the files listed in the <code>sling.include.a</code> property.</p> <p>Any file which does not exist is silently ignored.</p> @@ -195,7 +217,7 @@ <p>This is used to include the JRE package list to be made visible inside the OSGi framework.</p> -<h3 id="osgi-boot-delegation-support">OSGi Boot Delegation Support</h3> +<h3 id="osgi-boot-delegation-support">OSGi Boot Delegation Support<a class="headerlink" href="#osgi-boot-delegation-support" title="Permanent link">¶</a></h3> <p>Some packages may have to be shared between bundles in an OSGi framework and the rest of Java VM in which the framework has been launched. This is especially true for OSGi framework instances launched in embedding such as Servlet Containers. In the case of a Sling Application accessing a JCR Repository launched in a different Web Application, this mainly concerns an API packages as well as the JNDI Initial Factory package(s).</p> <p>To cope with this sharing issue, the OSGi core specification defines two properties, which may list packages to be used from the environment:</p> <ul> @@ -204,7 +226,7 @@ </ul> <p>Sometimes, especially in the Servlet Container case, it is important to use the shared classes from the container and not resolve using standard OSGi resolution. In such cases, the packages of these shared classes must be listed in the <code>org.osgi.framework.bootdelegation</code> property. Sling provides a mechanism to extend the default setting of the <code>org.osgi.framework.bootdelegation</code> property by adding properties prefixed with <code>sling.bootdelegation.</code>. The value of each of these prefixed properties is conditionally appended to the <code>org.osgi.framework.bootdelegation</code> property. <em>Conditionally</em> means, that the property name may contain the fully qualified name of a class, which is checked to see whether to add the property value or not.</p> <p><em>Examples</em></p> -<table> +<table class="table"> <thead> <tr> <th>Configuration</th> @@ -223,10 +245,10 @@ </tbody> </table> <p><em>Note</em> Even though packages listed in the <code>org.osgi.framework.bootdelegation</code> property will always be loaded from the environment, any bundles using these packages must still import them (through <code>Import-Package</code> or <code>DynamicImport-Package</code>) and the bundles must resolve for being usable.</p> -<h3 id="osgi-system-packages-support">OSGi System Packages Support</h3> +<h3 id="osgi-system-packages-support">OSGi System Packages Support<a class="headerlink" href="#osgi-system-packages-support" title="Permanent link">¶</a></h3> <p>As listed in the above section on OSGi Boot Delegation Support, the <code>org.osgi.framework.system.packages</code> property may be used to extend the export list of the system bundle. Similar to the support for extending the boot delegation packages list, Sling supports extending the system packages list. The mechanism to extend the default setting of the <code>org.osgi.framework.system.packages</code> property by adding properties prefixed with <code>sling.system.packages.</code>. The value of each of these prefixed properties is conditionally appended to the <code>org.osgi.framework.system.packages</code> property. <em>Conditionally</em> means, that the property name may contain the fully qualified name of a class, which is checked to see whether to add the property value or not.</p> <p><em>Examples</em></p> -<table> +<table class="table"> <thead> <tr> <th>Configuration</th> @@ -245,7 +267,7 @@ </tbody> </table> <p><em>Note</em> Packages listed in the <code>org.osgi.framework.system.packages</code> required by any bundles must be imported by those bundles by listing them in the <code>Import-Package</code> or <code>DynamicImport-Package</code> manifest header.</p> -<h2 id="recommendations-for-property-names">Recommendations for property names</h2> +<h2 id="recommendations-for-property-names">Recommendations for property names<a class="headerlink" href="#recommendations-for-property-names" title="Permanent link">¶</a></h2> <p>The following system property names are reserved:</p> <ul> <li>Names starting with <code>org.osgi.</code> are reserved for OSGi defined Framework properties</li> @@ -257,9 +279,9 @@ <li>Use fully qualified property names for initial configuration through Framework properties</li> <li>Use unqualified property names for configuration through the Configuration Admin Service</li> </ul> -<h2 id="well-known-properties">Well Known Properties</h2> +<h2 id="well-known-properties">Well Known Properties<a class="headerlink" href="#well-known-properties" title="Permanent link">¶</a></h2> <p>The following table is a collection of well known property names from different parts of Project Sling.</p> -<table> +<table class="table"> <thead> <tr> <th>Property</th> @@ -289,7 +311,7 @@ </tr> </tbody> </table> -<h2 id="configuration-admin-service">Configuration Admin Service</h2> +<h2 id="configuration-admin-service">Configuration Admin Service<a class="headerlink" href="#configuration-admin-service" title="Permanent link">¶</a></h2> <p>Configuration of the system entities, such as services and components, by the system administrator is supported the Configuration Admin Service. The Configuration Admin Service acts as the center for the management of the configuration data, to which GUI-based tools will connect to retrieve and update configuration data. The Configuration Admin Service is responsible for persisting the configuration data and for providing configuration consumers with the configuration data. Specifically services registered with the <code>ManagedService</code> or <code>ManagedServiceFactory</code> interfaces are updated with the configuration upon updated. The Service Component Runtime on the other hand recognizes updated configuration and provides it to the managed components as defined in the OSGi Declarative Services Specification.</p> <p>By default the Configuration Admin Service is installed when Sling is started for the first time. This service is used by the Service Component Runtime launching the OSGi components declared in the bundles with configuration values. The Sling Management Console provides a simple GUI to manage these configuration elements on the 'Configuration' page.</p> <p>For more information on the Configuration Admin Service refer to the OSGi Configuration Admin Service Specification in the OSGi Service Platform Service Compendium book.</p> Modified: websites/staging/sling/trunk/content/documentation/development.html ============================================================================== --- websites/staging/sling/trunk/content/documentation/development.html (original) +++ websites/staging/sling/trunk/content/documentation/development.html Tue Sep 22 10:23:16 2015 @@ -18,11 +18,11 @@ limitations under the License. --> <head> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Apache Sling - Development</title> <link rel="icon" href="/res/favicon.ico"> <link rel="stylesheet" href="/res/site.css" type="text/css" media="all"> <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all"> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> </head> <body> <div class="title"> Modified: websites/staging/sling/trunk/content/documentation/development/client-request-logging.html ============================================================================== --- websites/staging/sling/trunk/content/documentation/development/client-request-logging.html (original) +++ websites/staging/sling/trunk/content/documentation/development/client-request-logging.html Tue Sep 22 10:23:16 2015 @@ -18,11 +18,11 @@ limitations under the License. --> <head> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Apache Sling - Client Request Logging</title> <link rel="icon" href="/res/favicon.ico"> <link rel="stylesheet" href="/res/site.css" type="text/css" media="all"> <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all"> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> </head> <body> <div class="title"> @@ -39,7 +39,18 @@ </div> <div class="menu"> - <p><strong><a href="/documentation.html">Documentation</a></strong> <br /> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<p><strong><a href="/documentation.html">Documentation</a></strong> <br /> <a href="/documentation/getting-started.html">Getting Started</a> <br /> <a href="/documentation/the-sling-engine.html">The Sling Engine</a> <br /> <a href="/documentation/development.html">Development</a> <br /> @@ -90,11 +101,22 @@ <h1>Client Request Logging</h1> - <p>Sling provides extensive support to log various information at the before and after processing client requests. Out of the box, there are two loggers configured to write traditional <code>access.log</code> and <code>request.log</code> files. In addition more logging can be configured by providing OSGi Configuration Admin configuration.</p> -<h2 id="traditional-accesslog-and-requestlog-files">Traditional access.log and request.log Files</h2> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<p>Sling provides extensive support to log various information at the before and after processing client requests. Out of the box, there are two loggers configured to write traditional <code>access.log</code> and <code>request.log</code> files. In addition more logging can be configured by providing OSGi Configuration Admin configuration.</p> +<h2 id="traditional-accesslog-and-requestlog-files">Traditional access.log and request.log Files<a class="headerlink" href="#traditional-accesslog-and-requestlog-files" title="Permanent link">¶</a></h2> <p>In the Web Console configure the <em>Apache Sling Request Logger</em> (PID=<code>org.apache.sling.engine.impl.log.RequestLogger</code>) configuration.</p> <p>In the Sling Web Console locate the Configuration page (<code>/system/console/configMgr</code>) and click on the pencil (edit) symbol on the <em>Apache Sling Request Logger</em> line. This opens a dialog to enter the configuration whose properties can be configured as follows:</p> -<table> +<table class="table"> <thead> <tr> <th>Parameter</th> @@ -142,9 +164,9 @@ </tr> </tbody> </table> -<h4 id="log-output">Log Output</h4> +<h4 id="log-output">Log Output<a class="headerlink" href="#log-output" title="Permanent link">¶</a></h4> <p>Output of client request logging is defined by the Logger Type and and Logger Name where the use of the Logger Name property value depends on the Logger Type:</p> -<table> +<table class="table"> <thead> <tr> <th>Type Code</th> @@ -171,10 +193,10 @@ </tbody> </table> <p><strong>Note:</strong> If logging to a file, this file is not rotated and/or limited by size. To get log file rotation use the <em>Logger Name</em> logging type. See <a href="#rotating-logger-files">Rotating Logger Files</a> below for information on how logging information can be written to rotated and/or size limited files.</p> -<h3 id="additional-per-request-loggers">Additional per-request Loggers</h3> +<h3 id="additional-per-request-loggers">Additional per-request Loggers<a class="headerlink" href="#additional-per-request-loggers" title="Permanent link">¶</a></h3> <p>In the Web Console create <em>Apache Sling Customizable Request Data Logger</em> (Factory PID=<code>org.apache.sling.engine.impl.log.RequestLoggerService</code>) configuration.</p> <p>In the Sling Web Console locate the Configuration page (<code>/system/console/configMgr</code>) and click on the <code>+</code> (plus) symbol on the <em>Apache Sling Customizable Request Data Logger</em> line. This opens a dialog to enter the configuration whose properties can be configured as follows:</p> -<table> +<table class="table"> <thead> <tr> <th>Parameter</th> @@ -210,10 +232,10 @@ </tr> </tbody> </table> -<h4 id="log-format-specification">Log Format Specification</h4> +<h4 id="log-format-specification">Log Format Specification<a class="headerlink" href="#log-format-specification" title="Permanent link">¶</a></h4> <p>The log format specification follows the <a href="http://httpd.apache.org/docs/current/mod/mod_log_config.html">definition of the <code>format</code> argument for the <code>LogFormat</code> and <code>CustomLog</code> directives of Apache httpd</a>:</p> <p>The characteristics of the request itself are logged by placing "%" directives in the format string, which are replaced in the log file by the values as follows:</p> -<table> +<table class="table"> <thead> <tr> <th>Format String</th> @@ -368,7 +390,7 @@ <p>The Apache httpd modifiers "<" and ">" are not supported by Sling and currently ignored.</p> <p><strong>Some Notes</strong></p> <p>For security reasons non-printable and other special characters in %C, %i and %o are escaped using \uhhhh sequences, where hhhh stands for the hexadecimal representation of the character's unicode value. Exceptions from this rule are " and \, which are escaped by prepending a backslash, and all whitespace characters, which are written in their Java-style notation (\n, \t, etc).</p> -<h4 id="rotating-logger-files">Rotating Logger Files</h4> +<h4 id="rotating-logger-files">Rotating Logger Files<a class="headerlink" href="#rotating-logger-files" title="Permanent link">¶</a></h4> <p>If you want to write the request (and access) logging information into a rotated file, you should configure as follows:</p> <ol> <li>Configure the Log Type to be a <em>Logger Name</em> and some usefull Logger name. For example <code>clientlog.request</code>.</li> Modified: websites/staging/sling/trunk/content/documentation/development/dependency-management.html ============================================================================== --- websites/staging/sling/trunk/content/documentation/development/dependency-management.html (original) +++ websites/staging/sling/trunk/content/documentation/development/dependency-management.html Tue Sep 22 10:23:16 2015 @@ -18,11 +18,11 @@ limitations under the License. --> <head> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Apache Sling - Dependency Management</title> <link rel="icon" href="/res/favicon.ico"> <link rel="stylesheet" href="/res/site.css" type="text/css" media="all"> <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all"> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> </head> <body> <div class="title"> @@ -39,7 +39,18 @@ </div> <div class="menu"> - <p><strong><a href="/documentation.html">Documentation</a></strong> <br /> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<p><strong><a href="/documentation.html">Documentation</a></strong> <br /> <a href="/documentation/getting-started.html">Getting Started</a> <br /> <a href="/documentation/the-sling-engine.html">The Sling Engine</a> <br /> <a href="/documentation/development.html">Development</a> <br /> @@ -90,7 +101,18 @@ <h1>Dependency Management</h1> - <p>This page is about how we do and don't do dependency management in the Sling project.</p> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<p>This page is about how we do and don't do dependency management in the Sling project.</p> <div class="toc"> <ul> <li><a href="#introduction">Introduction</a></li> @@ -98,7 +120,7 @@ <li><a href="#references">References</a></li> </ul> </div> -<h2 id="introduction">Introduction</h2> +<h2 id="introduction">Introduction<a class="headerlink" href="#introduction" title="Permanent link">¶</a></h2> <p>Maven provides projects with a nice feature called dependency management. In Sling we currently use this feature to declare the non-Sling dependencies of modules in the parent POM.</p> <p>After working with this some time and trying to upgrade various dependencies we came to the conclusion, that using Maven dependency management is not going to work out in the Sling scenario.</p> <p>Why ? Maven's dependency management is aimed at traditional applicaitons, which are glued together statically during the build process. For this environment, dependency management is a great thing, since it guarantees a consistent application setup.</p> @@ -107,7 +129,7 @@ <p>When using Maven dependency management, upgrading any dependencies in the parent POM may automatically increase the version numbers in the <code>Import-Package</code> headers and hence may cause any such bundle to fail resolution if deployed - even though the bundle did not change and does not really require a new version of the dependency.</p> <p>So, in the case of OSGi deployment, Maven's dependency management actually interferes with the OSGi framework dependency management.</p> <p>As a consequence, I suggest we drop dependency management in the parent POM (almost) completely and state the following.</p> -<h2 id="dependency-management">Dependency Management</h2> +<h2 id="dependency-management">Dependency Management<a class="headerlink" href="#dependency-management" title="Permanent link">¶</a></h2> <p>The parent POM only does dependency management for build time dependencies and a very limited number of API dependencies used Sling wide. These dependencies are:</p> <ul> <li>All plugin dependencies. That is <code>pluginManagement</code> is still used. Maven plugins are actually build time dependencies and therefore have no influence on the actual deployment.</li> @@ -115,7 +137,7 @@ <li>Sling makes a small number of assumptions about the environment, which we codify in the dependency management: The minimum version number of the OSGi specificaiton used, the Servlet API version and the JCR API version.</li> </ul> <p>The <code><dependencyManagement></code> element currently contains the following managed dependencies:</p> -<table> +<table class="table"> <thead> <tr> <th>Group ID</th> @@ -190,7 +212,7 @@ <p>All dependencies per module are fully described in terms of version, scope, and classifier by the respective project.</p> <p>The version of the module dependency should be selected according to the following rule: The lowest version providing the functionality required by the module (or bundle). By required functionality we bascially mean provided API.</p> <p>Generally there is a constant flow of releases of dependent libraries. In general this should not cause the dependency version number of a using module to be increased. There is one exception though: If the fixed library version contains a bug fix, which has an influence on the operation of the module, an increase in the version number is indicated and should also be applied.</p> -<h2 id="references">References</h2> +<h2 id="references">References<a class="headerlink" href="#references" title="Permanent link">¶</a></h2> <ul> <li><a href="http://markmail.org/message/5qpmsukdk4mdacdy">Dependency Management</a> -- Discussion thread about reducing Maven Dependency Management</li> <li><a href="https://issues.apache.org/jira/browse/SLING-811">SLING-811</a> -- The actual issue governing the changes to the project descriptors</li> Modified: websites/staging/sling/trunk/content/documentation/development/embedding-sling.html ============================================================================== --- websites/staging/sling/trunk/content/documentation/development/embedding-sling.html (original) +++ websites/staging/sling/trunk/content/documentation/development/embedding-sling.html Tue Sep 22 10:23:16 2015 @@ -18,11 +18,11 @@ limitations under the License. --> <head> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Apache Sling - Embedding Sling</title> <link rel="icon" href="/res/favicon.ico"> <link rel="stylesheet" href="/res/site.css" type="text/css" media="all"> <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all"> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> </head> <body> <div class="title"> @@ -39,7 +39,18 @@ </div> <div class="menu"> - <p><strong><a href="/documentation.html">Documentation</a></strong> <br /> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<p><strong><a href="/documentation.html">Documentation</a></strong> <br /> <a href="/documentation/getting-started.html">Getting Started</a> <br /> <a href="/documentation/the-sling-engine.html">The Sling Engine</a> <br /> <a href="/documentation/development.html">Development</a> <br /> @@ -95,7 +106,18 @@ <h1>Embedding Sling</h1> - <p>The Sling Launchpad Launcher can be used to embed the OSGi Framework startup in your own Java application. This functionality is implemented in the <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/base">Sling Launchpad Base project</a>. This project has the following features:</p> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<p>The Sling Launchpad Launcher can be used to embed the OSGi Framework startup in your own Java application. This functionality is implemented in the <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/base">Sling Launchpad Base project</a>. This project has the following features:</p> <ul> <li>Builds three artifacts:<ul> <li>A standalone Java Application with the artifact qualifier <em>app</em>; e.g. <code>org.apache.sling.launchpad.base-2.3.1-SNAPSHOT-app.jar</code></li> @@ -109,7 +131,7 @@ <li>Allows propagation of core setup functionality depending on the environment</li> </ul> <p>This page is about the internal details of the Sling Launchpad Base module. To get an outside overview of the Sling Launchpad you might want to refer to <a href="/documentation/the-sling-engine/the-sling-launchpad.html">The Sling Launchpad</a> page.</p> -<h1 id="structure">Structure</h1> +<h1 id="structure">Structure<a class="headerlink" href="#structure" title="Permanent link">¶</a></h1> <p>The Launcher is based on three parts:</p> <ol> <li>The external part which is for example the standalone Java application's main class or the servlet deployed into the servlet container</li> @@ -121,9 +143,9 @@ <li>The <code>Launcher</code> interface is implemented by a class in the internal part which is loaded through the bridge class loader. This interface allows setting, starting and stopping of the framework.</li> <li>The <code>Notifiable</code> interface is implemented by a class in the external part which instance is handed to the <code>Launcher</code> instance. This interface allows the internal part to communicate back to the external part, most notably to indicate that the framework has been stopped from within or that the framework has been updated and must be restarted.</li> </ul> -<h1 id="the-bridging-part">The Bridging Part</h1> +<h1 id="the-bridging-part">The Bridging Part<a class="headerlink" href="#the-bridging-part" title="Permanent link">¶</a></h1> <p>The bridging part is provided in the <code>org.apache.sling.launchpad.base.shared</code> package:</p> -<table> +<table class="table"> <thead> <tr> <th>Class</th> @@ -153,7 +175,7 @@ </tr> </tbody> </table> -<h1 id="the-internal-part">The Internal Part</h1> +<h1 id="the-internal-part">The Internal Part<a class="headerlink" href="#the-internal-part" title="Permanent link">¶</a></h1> <p>The main class from the internal class directly used is <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/Sling.java"><code>Sling</code></a> which instantiated to start the OSGi Framework. This class is responsible for setting up the environment to finally start the OSGi Framework:</p> <ul> <li>Read the <code>sling.properties</code> file</li> @@ -161,11 +183,11 @@ <li>Execute the bootstrap installations, updates and uninstallations</li> </ul> <p>The <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/SlingFelix.java"><code>SlingFelix</code></a> class extends the Apache Felix <code>Felix</code> class which is the actual OSGi framework implementation. We extend the class to be able to notify the <code>Notifiable</code> implementation and update the OSGi framework from within the OSGi framework by updating the system bundle.</p> -<h2 id="the-external-part">The External Part</h2> +<h2 id="the-external-part">The External Part<a class="headerlink" href="#the-external-part" title="Permanent link">¶</a></h2> <p>The external part is comprised of a main class started from the environment -- main class of the Java applicaction or the servlet deployed in the servlet container -- and a corresponding delegate class located inside of the launchpad base library. This delegate class is instantiated by the <code>Loader</code> loading from the <code>LauncherClassLoader</code>.</p> -<h3 id="standalone-java-application">Standalone Java Application</h3> +<h3 id="standalone-java-application">Standalone Java Application<a class="headerlink" href="#standalone-java-application" title="Permanent link">¶</a></h3> <p>The standalone Java Application makes use of three classes:</p> -<table> +<table class="table"> <thead> <tr> <th>Class</th> @@ -188,13 +210,13 @@ </tbody> </table> <p>At the moment these classes are not directly suitable to be embedded in an existing application (or custom application launcher framework) unless that embedding prepares command line arguments in a <code>String[]()</code> and calls the <code>Main.main</code> method. To allow for custom embeddings or extensions, the work distributions between the three classes should be refactored.</p> -<h3 id="embedding-the-standalone-java-application">Embedding the Standalone Java Application</h3> +<h3 id="embedding-the-standalone-java-application">Embedding the Standalone Java Application<a class="headerlink" href="#embedding-the-standalone-java-application" title="Permanent link">¶</a></h3> <div class="info"> This work is being done as part of [SLING-2225](https://issues.apache.org/jira/browse/SLING-2225) and will be officially available with the Sling Launchpad Base release 2.4.0. If you want to use the embedding before the release, you have to checkout the source from [SVN|http://svn.apache.org/repos/asf/sling/trunk/launchpad/base] and build yourself. </div> <p>To embedd the Sling Launcher in an application, the <code>Main</code> class is extended from. To manage the launcher, the following API is available:</p> -<table> +<table class="table"> <thead> <tr> <th>Method</th> @@ -220,11 +242,11 @@ This work is being done as part of [SLIN </tr> </tbody> </table> -<h4 id="external-control-of-the-sling-application">External Control of the Sling Application</h4> +<h4 id="external-control-of-the-sling-application">External Control of the Sling Application<a class="headerlink" href="#external-control-of-the-sling-application" title="Permanent link">¶</a></h4> <p>By using control actions, the Sling Launcher may open or connect to a control port to communicate. The <code>doControlAction()</code> method together with the <code>sling.control.action</code> and <code>sling.control.socket</code> properties is able to setup this communication.</p> <p>The <code>sling.control.socket</code> is either a normal port number, in which case the connection is opened on the <code>localhost</code> interface (usually 127.0.0.1). Otheriwse, it may also be a value of the form <em>host:port</em> where <em>host</em> is the name or IP address of the interface to connect to and port is the port number. For security reasons it is suggested to not use an interface which is available remotely. So the default of <code>localhost</code> is usually the best choice.</p> <p>The <code>sling.control.action</code> takes either of three values:</p> -<table> +<table class="table"> <thead> <tr> <th>Value</th> @@ -246,9 +268,9 @@ This work is being done as part of [SLIN </tr> </tbody> </table> -<h4 id="conversion-of-commandline-arguments-to-properties">Conversion of Commandline Arguments to Properties</h4> +<h4 id="conversion-of-commandline-arguments-to-properties">Conversion of Commandline Arguments to Properties<a class="headerlink" href="#conversion-of-commandline-arguments-to-properties" title="Permanent link">¶</a></h4> <p>When calling the Main class through the JVM startup the <code>Main.main(String[]() args)</code> methods is called which reads the command line arguments and converts them into a <code>Map<String, String></code> suitable for the constructore as follows:</p> -<table> +<table class="table"> <thead> <tr> <th>Command Line Argument</th> @@ -298,9 +320,9 @@ This work is being done as part of [SLIN </tr> </tbody> </table> -<h3 id="web-application">Web Application</h3> +<h3 id="web-application">Web Application<a class="headerlink" href="#web-application" title="Permanent link">¶</a></h3> <p>The web application makes use of 5 classes:</p> -<table> +<table class="table"> <thead> <tr> <th>Class</th>