Author: buildbot
Date: Sun Jun 3 17:58:06 2012
New Revision: 820125
Log:
Staging update by buildbot for sling
Added:
websites/staging/sling/trunk/content/documentation/bundles/2010-07-01_1036.png
(with props)
websites/staging/sling/trunk/content/documentation/the-sling-engine/url-to-script-resolution.html
Modified:
websites/staging/sling/trunk/content/ (props changed)
websites/staging/sling/trunk/content/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.html
websites/staging/sling/trunk/content/documentation/bundles/content-loading-jcr-contentloader.html
websites/staging/sling/trunk/content/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html
websites/staging/sling/trunk/content/documentation/getting-started/discover-sling-in-15-minutes.html
websites/staging/sling/trunk/content/documentation/the-sling-engine.html
websites/staging/sling/trunk/content/documentation/the-sling-engine/authentication.html
websites/staging/sling/trunk/content/documentation/the-sling-engine/authentication/authentication-authenticationhandler.html
websites/staging/sling/trunk/content/documentation/the-sling-engine/dispatching-requests.html
websites/staging/sling/trunk/content/documentation/the-sling-engine/request-parameters.html
websites/staging/sling/trunk/content/documentation/tutorials-how-tos/46-line-blog.html
websites/staging/sling/trunk/content/documentation/tutorials-how-tos/jackrabbit-persistence.html
Propchange: websites/staging/sling/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Sun Jun 3 17:58:06 2012
@@ -1 +1 @@
-1345725
+1345726
Added:
websites/staging/sling/trunk/content/documentation/bundles/2010-07-01_1036.png
==============================================================================
Binary file - no diff available.
Propchange:
websites/staging/sling/trunk/content/documentation/bundles/2010-07-01_1036.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Modified:
websites/staging/sling/trunk/content/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.html
==============================================================================
---
websites/staging/sling/trunk/content/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.html
(original)
+++
websites/staging/sling/trunk/content/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.html
Sun Jun 3 17:58:06 2012
@@ -108,11 +108,29 @@
<h2 id="configuration">Configuration</h2>
<p>The Filesystem Resource Provider is configured with OSGi Configuration
Admin factory configurtions whose factory PID is
<code>org.apache.sling.fsprovider.internal.FsResourceProvider</code>.
Configuration can be managed using the OSGi Configuration Admin API, through
the Web Console or by any other means supporting Configuration Admin
configurations.</p>
<p>The following configuration properties must be specified:</p>
-<p>| Parameter | Name | Description |
-| Provider Root | <code>provider.roots</code> | Location in the virtual
resource tree where the filesystem resources are mapped in. This property must
not be an empty string. |
-| Filesystem Root | <code>provider.file</code> | Filesystem directory mapped
to the virtual resource tree. This property must not be an empty string. If the
path is relative it is resolved against <code>sling.home</code> or the current
working directory. The path may be a file or folder. If the path does not
address an existing file or folder, an empty folder is created. |</p>
+<table>
+<thead>
+<tr>
+<th>Parameter</th>
+<th>Name</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>Provider Root</td>
+<td><code>provider.roots</code></td>
+<td>Location in the virtual resource tree where the filesystem resources are
mapped in. This property must not be an empty string.</td>
+</tr>
+<tr>
+<td>Filesystem Root</td>
+<td><code>provider.file</code></td>
+<td>Filesystem directory mapped to the virtual resource tree. This property
must not be an empty string. If the path is relative it is resolved against
<code>sling.home</code> or the current working directory. The path may be a
file or folder. If the path does not address an existing file or folder, an
empty folder is created.</td>
+</tr>
+</tbody>
+</table>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1341376 by fmeschbe on Tue, 22 May 2012 09:41:06 +0000
+ Rev. 1345726 by fmeschbe on Sun, 3 Jun 2012 17:57:55 +0000
</div>
<div class="trademarkFooter">
Apache Sling, Sling, Apache, the Apache feather logo, and the Apache
Sling project
Modified:
websites/staging/sling/trunk/content/documentation/bundles/content-loading-jcr-contentloader.html
==============================================================================
---
websites/staging/sling/trunk/content/documentation/bundles/content-loading-jcr-contentloader.html
(original)
+++
websites/staging/sling/trunk/content/documentation/bundles/content-loading-jcr-contentloader.html
Sun Jun 3 17:58:06 2012
@@ -85,38 +85,128 @@
<p>Apache Sling provides support for initial content loading into a
repository and for registering node types. The
<code>sling-jcr-contentloader</code> bundle provides loading of content from a
bundle into the repository and the <code>sling-jcr-base</code> bundle provides
node type registration.</p>
<h2 id="initial-content-loading">Initial Content Loading</h2>
<p>Bundles can provide initial content, which is loaded into the repository
when the bundle has entered the <em>started</em> state. Such content is
expected to be contained in the bundles accessible through the Bundle entry API
methods. Content to be loaded is declared in the
<code>Sling-Initial-Content</code> bundle manifest header. This header takes a
comma-separated list of bundle entry paths. Each entry and all its child
entries are accessed and entered into starting with the child entries of the
listed entries.</p>
-<p>Adding this content preserves the paths of the entries as show in this
table, which assumes a <code>Sling-Initial-Content</code> header entry of
<code>SLING-INF/content</code>:
-| Entry | Repository Path |
-|--|--|
-| <code>SLING-INF/content/home</code> | <code>/home</code> |
-| <code>SLING-INF/content/content/playground/en/home</code> |
<code>/content/playground/en/home</code> |
-Bundle entries are installed as follows:
-| Entry Type | Installation method |
-|--|--|
-| Directory | Created as a node of type <code>nt:folder</code> unless a
content definition file of the same name exists in the same directory as the
directory to be installed. Example: A directory
<code>SLING-INF/content/dir</code> is installed as node <code>/dir</code> of
type <code>nt:folder</code> unless a <code>SLING-INF/content/dir.xml</code> or
<code>SLING-INF/content/dir.json</code> file exists which defines the content
for the <code>/dir</code> node. |
-| File | Unless the file is a content definition file (see below) an
<code>nt:file</code> node is created for the file and an
<code>nt:resource</code> node is created as its <code>jcr:content</code> child
node to take the contents of the bundle file. The properties of the
<code>nt:resource</code> node are set from file information as available. If
the file is a content definition file, the content is created as defined in the
file. See below for the content definition file specification. |
-It is possible to modify the intial content loading default behaviour by using
certain optional directives. Directives should be specified separated by
semicolon. They are defined as follows:
-| Directive | Definition | Default value | Description |
-|--|--|--|--|
-| <code>overwrite</code> | <code>overwrite:=(true\|false)</code> |
<code>false</code> | The overwrite directive specifies if content nodes should
be overwritten or just initially added. If this is true, existing nodes are
deleted and a new node is created in the same place. |
-| <code>overwriteProperties</code> |
<code>overwriteProperties:=(true\|false)</code> | <code>false</code> | The
overwriteProperties directive specifying if content properties should be
overwritten or just initially added. |
-| <code>uninstall</code> | <code>uninstall:=(true\|false)</code> |
<code>overwrite</code> | The uninstall directive specifies if content should be
uninstalled when bundle is unregistered. This value defaults to the value of
the <code>overwrite</code> directive. |
-| <code>path</code> | <code>path:=*/target/location{*</code>} | <code>/</code>
| The path directive specifies the target node where initial content will be
loaded. If the path does not exist yet in the repository, it is created by the
content loader. The intermediate nodes are of type <code>nt:folder</code>. |
-| <code>checkin</code> | <code>checkin:=(true\|false)</code> |
<code>false</code> | The checkin directive specifies whether versionable nodes
should be checked in. |
-| <code>ignoreImportProviders</code> | <code>ignoreImportProviders:=list of
extensions</code> | <code>empty</code> | This directive can be used to not run
one of the configured extractors (see below). |
-Examples of these directives uses could be (assumes a Sling-Initial-Content
header entry of SLING-INF/content):
-| Entry | Behaviour |
-|--|--|
-| <code>SLING-INF/content/home;overwrite:=true;uninstall:=true</code> |
Overwrites already existing content in <em>/home</em> and uninstalls the
content when the bundle is unregistered. |
-| <code>SLING-INF/content/home;overwriteProperties:=true</code> | Overwrites
properties of existing content in <em>/home</em>. |
-| <code>SLING-INF/content/home;path:=/sites/sling*website</code> | if
<em>/sites/sling</em>website<em> exists it loads the content into it.
Otherwise, it loads the content into root node </em>/*. |
-| <code>SLING-INF/content/home;checkin:=true</code> | After content loading,
versionable nodes are checked in. |</p>
+<p>Adding this content preserves the paths of the entries as show in this
table, which assumes a <code>Sling-Initial-Content</code> header entry of
<code>SLING-INF/content</code>:</p>
+<table>
+<thead>
+<tr>
+<th>Entry</th>
+<th>Repository Path</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>SLING-INF/content/home</code></td>
+<td><code>/home</code></td>
+</tr>
+<tr>
+<td><code>SLING-INF/content/content/playground/en/home</code></td>
+<td><code>/content/playground/en/home</code></td>
+</tr>
+</tbody>
+</table>
+<p>Bundle entries are installed as follows:</p>
+<table>
+<thead>
+<tr>
+<th>Entry Type</th>
+<th>Installation method</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>Directory</td>
+<td>Created as a node of type <code>nt:folder</code> unless a content
definition file of the same name exists in the same directory as the directory
to be installed. Example: A directory <code>SLING-INF/content/dir</code> is
installed as node <code>/dir</code> of type <code>nt:folder</code> unless a
<code>SLING-INF/content/dir.xml</code> or
<code>SLING-INF/content/dir.json</code> file exists which defines the content
for the <code>/dir</code> node.</td>
+</tr>
+<tr>
+<td>File</td>
+<td>Unless the file is a content definition file (see below) an
<code>nt:file</code> node is created for the file and an
<code>nt:resource</code> node is created as its <code>jcr:content</code> child
node to take the contents of the bundle file. The properties of the
<code>nt:resource</code> node are set from file information as available. If
the file is a content definition file, the content is created as defined in the
file. See below for the content definition file specification.</td>
+</tr>
+</tbody>
+</table>
+<p>It is possible to modify the intial content loading default behaviour by
using certain optional directives. Directives should be specified separated by
semicolon. They are defined as follows:</p>
+<table>
+<thead>
+<tr>
+<th>Directive</th>
+<th>Definition</th>
+<th>Default value</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>overwrite</code></td>
+<td><code>overwrite:=(true|false)<code></td>
+<td><code>false</code></td>
+<td>The overwrite directive specifies if content nodes should be overwritten
or just initially added. If this is true, existing nodes are deleted and a new
node is created in the same place.</td>
+</tr>
+<tr>
+<td><code>overwriteProperties</code></td>
+<td><code>overwriteProperties:=(true|false)</code></td>
+<td><code>false</code></td>
+<td>The overwriteProperties directive specifying if content properties should
be overwritten or just initially added.</td>
+</tr>
+<tr>
+<td><code>uninstall</code></td>
+<td><code>uninstall:=(true|false)</code></td>
+<td><code>overwrite</code></td>
+<td>The uninstall directive specifies if content should be uninstalled when
bundle is unregistered. This value defaults to the value of the
<code>overwrite</code> directive.</td>
+</tr>
+<tr>
+<td><code>path</code></td>
+<td><code>path:=<em>/target/location</em></code></td>
+<td><code>/</code></td>
+<td>The path directive specifies the target node where initial content will be
loaded. If the path does not exist yet in the repository, it is created by the
content loader. The intermediate nodes are of type <code>nt:folder</code>.</td>
+</tr>
+<tr>
+<td><code>checkin</code></td>
+<td><code>checkin:=(true|false)</code></td>
+<td><code>false</code></td>
+<td>The checkin directive specifies whether versionable nodes should be
checked in.</td>
+</tr>
+<tr>
+<td><code>ignoreImportProviders</code></td>
+<td><code>ignoreImportProviders:=list of extensions</code></td>
+<td><code>empty</code></td>
+<td>This directive can be used to not run one of the configured extractors
(see below).</td>
+</tr>
+</tbody>
+</table>
+<p>Examples of these directives uses could be (assumes a Sling-Initial-Content
header entry of SLING-INF/content):</p>
+<table>
+<thead>
+<tr>
+<th>Entry</th>
+<th>Behaviour</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>SLING-INF/content/home;overwrite:=true;uninstall:=true</code></td>
+<td>Overwrites already existing content in <em>/home</em> and uninstalls the
content when the bundle is unregistered.</td>
+</tr>
+<tr>
+<td><code>SLING-INF/content/home;overwriteProperties:=true</code></td>
+<td>Overwrites properties of existing content in <em>/home</em>.</td>
+</tr>
+<tr>
+<td><code>SLING-INF/content/home;path:=/sites/sling_website</code></td>
+<td>if <em>/sites/sling_website</em> exists it loads the content into it.
Otherwise, it loads the content into root node <em>/</em>.</td>
+</tr>
+<tr>
+<td><code>SLING-INF/content/home;checkin:=true</code></td>
+<td>After content loading, versionable nodes are checked in.</td>
+</tr>
+</tbody>
+</table>
<h2 id="loading-initial-content-from-bundles">Loading initial content from
bundles</h2>
-<p>Repository items to be loaded into the repository, when the bundle is first
installed, may be defined in four ways:
-1. Directories
-1. Files
-1. XML descriptor files
-1. JSON descriptor files</p>
+<p>Repository items to be loaded into the repository, when the bundle is first
installed, may be defined in four ways:</p>
+<ol>
+<li>Directories</li>
+<li>Files</li>
+<li>XML descriptor files</li>
+<li>JSON descriptor files</li>
+</ol>
<p>Depending on the bundle entry found in the location indicated by the
Sling-Initial-Content bundle manifest header, nodes are created (and/or
updated) as follows:</p>
<h3 id="directories">Directories</h3>
<p>Unless a node with the name of the directory already exists or has been
defined in an XML or JSON descriptor file (see below) a directory is created as
a node with the primary node type "nt:folder" in the repository.</p>
@@ -127,56 +217,57 @@ primary node type "nt:file". Underneath
<h3 id="xml-descriptor-files">XML Descriptor Files</h3>
<p>Nodes, Properties and in fact complete subtrees may be described in XML
files using either the JCR SystemView format, or the format described below. In
either case, the file must have the .xml extension.</p>
<div class="codehilite"><pre><span class="nt"><node></span>
+ <span class="c"><!--</span>
+<span class="c"> optional on top level, defaults to XML file name
without .xml extension</span>
+<span class="c"> required for child nodes</span>
+<span class="c"> --></span>
+ <span class="nt"><name></span>xyz<span
class="nt"></name></span>
+
+ <span class="c"><!--</span>
+<span class="c"> optional, defaults to nt:unstructured</span>
+<span class="c"> --></span>
+ <span class="nt"><primaryNodeType></span>nt:file<span
class="nt"></primaryNodeType></span>
+
+ <span class="c"><!--</span>
+<span class="c"> optional mixin node type</span>
+<span class="c"> may be repeated for multiple mixin node types</span>
+<span class="c"> --></span>
+ <span class="nt"><mixinNodeType></span>mix:versionable<span
class="nt"></mixinNodeType></span>
+ <span class="nt"><mixinNodeType></span>mix:lockable<span
class="nt"></mixinNodeType></span>
+
+ <span class="c"><!--</span>
+<span class="c"> Optional properties for the node. Each
<property> element defines</span>
+<span class="c"> a single property of the node. The element may be
repeated.</span>
+<span class="c"> --></span>
+ <span class="nt"><property></span>
<span class="c"><!--</span>
-<span class="c"> optional on top level, defaults to XML file name
without .xml extension</span>
-<span class="c"> required for child nodes</span>
+<span class="c"> required property name</span>
<span class="c"> --></span>
- <span class="nt"><name></span>xyz<span
class="nt"></name></span>
+ <span class="nt"><name></span>prop<span
class="nt"></name></span>
<span class="c"><!--</span>
-<span class="c"> optional, defaults to nt:unstructured</span>
+<span class="c"> value of the property.</span>
+<span class="c"> For multi-value properties, the values are defined
by multiple</span>
+<span class="c"> <value> elements nested inside a
<values> element instead of a</span>
+<span class="c"> single <value> element</span>
<span class="c"> --></span>
- <span class="nt"><primaryNodeType></span>nt:file<span
class="nt"></primaryNodeType></span>
+ <span class="nt"><value></span>property value as string<span
class="nt"></value></span>
<span class="c"><!--</span>
-<span class="c"> optional mixin node type</span>
-<span class="c"> may be repeated for multiple mixin node
types</span>
+<span class="c"> Optional type of the property value, defaults to
String.</span>
+<span class="c"> This must be one of the property type strings
defined in the</span>
+<span class="c"> JCR PropertyType interface.</span>
<span class="c"> --></span>
- <span class="nt"><mixinNodeType></span>mix:versionable<span
class="nt"></mixinNodeType></span>
- <span class="nt"><mixinNodeType></span>mix:lockable<span
class="nt"></mixinNodeType></span>
+ <span class="nt"><type></span>String<span
class="nt"></type></span>
+ <span class="nt"></property></span>
- <span class="c"><!--</span>
-<span class="c"> Optional properties for the node. Each
<property> element defines</span>
-<span class="c"> a single property of the node. The element may be
repeated.</span>
-<span class="c"> --></span>
- <span class="nt"><property></span>
- <span class="c"><!--</span>
-<span class="c"> required property name</span>
-<span class="c"> --></span>
- <span class="nt"><name></span>prop<span
class="nt"></name></span>
-
- <span class="c"><!--</span>
-<span class="c"> value of the property.</span>
-<span class="c"> For multi-value properties, the values are
defined by multiple</span>
-<span class="c"> <value> elements nested inside a
<values> element instead of a</span>
-<span class="c"> single <value> element</span>
-<span class="c"> --></span>
- <span class="nt"><value></span>property value as string<span
class="nt"></value></span>
-
- <span class="c"><!--</span>
-<span class="c"> Optional type of the property value, defaults
to String.</span>
-<span class="c"> This must be one of the property type strings
defined in the</span>
-<span class="c"> JCR PropertyType interface.</span>
-<span class="c"> <type>String</type></span>
-<span class="c"> </property></span>
-
-<span class="c"> <!--</span>
-<span class="c"> Additional child nodes. May be further
nested.</span>
-<span class="c"> --></span>
- <span class="nt"><node></span>
- ....
- <span class="nt"></node></span>
+ <span class="c"><!--</span>
+<span class="c"> Additional child nodes. May be further nested.</span>
+<span class="c"> --></span>
+ <span class="nt"><node></span>
+ ....
<span class="nt"></node></span>
+<span class="nt"></node></span>
</pre></div>
@@ -212,54 +303,54 @@ primary node type "nt:file". Underneath
<h3 id="json-descriptor-files">JSON Descriptor Files</h3>
<p>Nodes, Properties and in fact complete subtrees may be described in JSON
files using the following skeleton structure (see <a
href="">http://www.json.org</a> or information on the syntax of JSON) :</p>
<div class="codehilite"><pre><span class="p">{</span>
- <span class="sr">//</span> <span class="n">optional</span> <span
class="n">node</span> <span class="n">name</span> <span class="n">on</span>
<span class="n">top</span> <span class="n">level</span><span class="p">,</span>
<span class="n">default</span> <span class="n">is</span> <span
class="n">file</span> <span class="n">name</span> <span
class="n">without</span> <span class="o">.</span><span class="n">json</span>
<span class="n">ext</span><span class="o">.</span>
- <span class="s">"name"</span><span class="p">:</span> <span
class="s">"nodename"</span><span class="p">,</span>
+ <span class="sr">//</span> <span class="n">optional</span> <span
class="n">node</span> <span class="n">name</span> <span class="n">on</span>
<span class="n">top</span> <span class="n">level</span><span class="p">,</span>
<span class="n">default</span> <span class="n">is</span> <span
class="n">file</span> <span class="n">name</span> <span
class="n">without</span> <span class="o">.</span><span class="n">json</span>
<span class="n">ext</span><span class="o">.</span>
+ <span class="s">"name"</span><span class="p">:</span> <span
class="s">"nodename"</span><span class="p">,</span>
- <span class="sr">//</span> <span class="n">optional</span> <span
class="n">primary</span> <span class="n">node</span> <span
class="n">type</span><span class="p">,</span> <span class="n">default</span>
<span class="s">"nt:unstructured"</span>
- <span class="s">"primaryNodeType"</span><span
class="p">:</span> <span
class="s">"sling:ScriptedComponent"</span><span class="p">,</span>
+ <span class="sr">//</span> <span class="n">optional</span> <span
class="n">primary</span> <span class="n">node</span> <span
class="n">type</span><span class="p">,</span> <span class="n">default</span>
<span class="s">"nt:unstructured"</span>
+ <span class="s">"primaryNodeType"</span><span class="p">:</span>
<span class="s">"sling:ScriptedComponent"</span><span
class="p">,</span>
- <span class="sr">//</span> <span class="n">optional</span> <span
class="n">mixin</span> <span class="n">node</span> <span class="n">types</span>
<span class="n">as</span> <span class="n">array</span>
- <span class="s">"mixinNodeTypes"</span><span
class="p">:</span> <span class="p">[</span> <span class="p">],</span>
+ <span class="sr">//</span> <span class="n">optional</span> <span
class="n">mixin</span> <span class="n">node</span> <span class="n">types</span>
<span class="n">as</span> <span class="n">array</span>
+ <span class="s">"mixinNodeTypes"</span><span class="p">:</span>
<span class="p">[</span> <span class="p">],</span>
- <span class="sr">//</span> <span class="n">the</span> <span
class="s">"properties"</span> <span class="n">property</span> <span
class="n">is</span> <span class="n">an</span> <span class="n">object</span>
<span class="n">indexed</span> <span class="n">by</span> <span
class="n">property</span> <span class="n">name</span> <span
class="n">whose</span>
- <span class="sr">//</span> <span class="n">value</span> <span
class="n">is</span> <span class="n">either</span> <span class="n">the</span>
<span class="n">string</span> <span class="n">property</span> <span
class="n">value</span><span class="p">,</span> <span class="n">array</span>
<span class="k">for</span> <span class="n">multi</span><span
class="o">-</span><span class="nb">values</span> <span class="ow">or</span>
- <span class="sr">//</span> <span class="n">an</span> <span
class="n">object</span> <span class="n">whose</span> <span
class="n">value</span><span class="p">[</span><span class="n">s</span><span
class="p">]</span> <span class="n">property</span> <span
class="n">denotes</span> <span class="n">the</span> <span
class="n">property</span> <span class="n">value</span><span
class="p">(</span><span class="n">s</span><span class="p">)</span> <span
class="ow">and</span>
- <span class="sr">//</span> <span class="n">whose</span> <span
class="n">type</span> <span class="n">property</span> <span
class="n">denotes</span> <span class="n">the</span> <span
class="n">property</span> <span class="n">type</span>
- <span class="s">"properties"</span><span class="p">:</span>
<span class="p">{</span>
- <span class="s">"sling:contentClass"</span><span
class="p">:</span> <span
class="s">"com.day.sling.jcr.test.Test"</span><span class="p">,</span>
- <span class="s">"sampleMulti"</span><span
class="p">:</span> <span class="p">[</span> <span
class="s">"v1"</span><span class="p">,</span> <span
class="s">"v2"</span> <span class="p">],</span>
- <span class="s">"sampleStruct"</span><span
class="p">:</span> <span class="p">{</span>
- <span class="s">"value"</span><span
class="p">:</span> <span class="mi">1</span><span class="p">,</span>
- <span class="s">"type"</span><span
class="p">:</span> <span class="s">"Long"</span>
- <span class="p">}</span>
- <span class="s">"sampleStructMulti"</span><span
class="p">:</span> <span class="p">{</span>
- <span class="s">"value"</span><span
class="p">:</span> <span class="p">[</span> <span class="mi">1</span><span
class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span
class="mi">3</span> <span class="p">],</span>
- <span class="s">"type"</span><span
class="p">:</span> <span class="s">"Long"</span>
- <span class="p">}</span>
- <span class="p">},</span>
-
- <span class="sr">//</span> <span class="n">the</span> <span
class="s">"nodes"</span> <span class="n">property</span> <span
class="n">is</span> <span class="n">an</span> <span class="n">array</span>
<span class="n">of</span> <span class="n">objects</span> <span
class="n">denoting</span> <span class="n">child</span> <span
class="n">nodes</span><span class="o">.</span> <span class="n">Nodes</span>
- <span class="sr">//</span> <span class="n">may</span> <span
class="n">be</span> <span class="n">further</span> <span
class="n">nested</span><span class="o">.</span>
- <span class="s">"nodes"</span><span class="p">:</span> <span
class="p">[</span>
- <span class="p">{</span>
- <span class="sr">//</span> <span class="n">the</span> <span
class="n">name</span> <span class="n">property</span> <span class="n">is</span>
<span class="n">required</span> <span class="n">on</span> <span
class="p">(</span><span class="n">nested</span><span class="p">)</span> <span
class="n">child</span> <span class="n">nodes</span>
- <span class="s">"name"</span><span
class="p">:</span> <span class="s">"sling:scripts"</span><span
class="p">,</span>
-
- <span class="s">"primaryNodeType"</span><span
class="p">:</span> <span class="s">"sling:ScriptList"</span><span
class="p">,</span>
-
- <span class="s">"nodes"</span><span
class="p">:</span> <span class="p">[</span>
- <span class="p">{</span>
- <span
class="s">"primaryNodeType"</span><span class="p">:</span> <span
class="s">"sling:Script"</span><span class="p">,</span>
- <span class="s">"properties"</span><span
class="p">:</span> <span class="p">{</span>
- <span class="s">"sling:name"</span><span
class="p">:</span> <span
class="s">"/test/content/jsp/start.jsp"</span><span class="p">,</span>
- <span class="s">"sling:type"</span><span
class="p">:</span> <span class="s">"jsp"</span><span
class="p">,</span>
- <span class="s">"sling:glob"</span><span
class="p">:</span> <span class="s">"*"</span>
- <span class="p">}</span>
+ <span class="sr">//</span> <span class="n">the</span> <span
class="s">"properties"</span> <span class="n">property</span> <span
class="n">is</span> <span class="n">an</span> <span class="n">object</span>
<span class="n">indexed</span> <span class="n">by</span> <span
class="n">property</span> <span class="n">name</span> <span
class="n">whose</span>
+ <span class="sr">//</span> <span class="n">value</span> <span
class="n">is</span> <span class="n">either</span> <span class="n">the</span>
<span class="n">string</span> <span class="n">property</span> <span
class="n">value</span><span class="p">,</span> <span class="n">array</span>
<span class="k">for</span> <span class="n">multi</span><span
class="o">-</span><span class="nb">values</span> <span class="ow">or</span>
+ <span class="sr">//</span> <span class="n">an</span> <span
class="n">object</span> <span class="n">whose</span> <span
class="n">value</span><span class="p">[</span><span class="n">s</span><span
class="p">]</span> <span class="n">property</span> <span
class="n">denotes</span> <span class="n">the</span> <span
class="n">property</span> <span class="n">value</span><span
class="p">(</span><span class="n">s</span><span class="p">)</span> <span
class="ow">and</span>
+ <span class="sr">//</span> <span class="n">whose</span> <span
class="n">type</span> <span class="n">property</span> <span
class="n">denotes</span> <span class="n">the</span> <span
class="n">property</span> <span class="n">type</span>
+ <span class="s">"properties"</span><span class="p">:</span>
<span class="p">{</span>
+ <span class="s">"sling:contentClass"</span><span
class="p">:</span> <span
class="s">"com.day.sling.jcr.test.Test"</span><span class="p">,</span>
+ <span class="s">"sampleMulti"</span><span class="p">:</span>
<span class="p">[</span> <span class="s">"v1"</span><span
class="p">,</span> <span class="s">"v2"</span> <span
class="p">],</span>
+ <span class="s">"sampleStruct"</span><span
class="p">:</span> <span class="p">{</span>
+ <span class="s">"value"</span><span class="p">:</span>
<span class="mi">1</span><span class="p">,</span>
+ <span class="s">"type"</span><span class="p">:</span>
<span class="s">"Long"</span>
+ <span class="p">}</span>
+ <span class="s">"sampleStructMulti"</span><span
class="p">:</span> <span class="p">{</span>
+ <span class="s">"value"</span><span class="p">:</span>
<span class="p">[</span> <span class="mi">1</span><span class="p">,</span>
<span class="mi">2</span><span class="p">,</span> <span class="mi">3</span>
<span class="p">],</span>
+ <span class="s">"type"</span><span class="p">:</span>
<span class="s">"Long"</span>
+ <span class="p">}</span>
+ <span class="p">},</span>
+
+ <span class="sr">//</span> <span class="n">the</span> <span
class="s">"nodes"</span> <span class="n">property</span> <span
class="n">is</span> <span class="n">an</span> <span class="n">array</span>
<span class="n">of</span> <span class="n">objects</span> <span
class="n">denoting</span> <span class="n">child</span> <span
class="n">nodes</span><span class="o">.</span> <span class="n">Nodes</span>
+ <span class="sr">//</span> <span class="n">may</span> <span
class="n">be</span> <span class="n">further</span> <span
class="n">nested</span><span class="o">.</span>
+ <span class="s">"nodes"</span><span class="p">:</span> <span
class="p">[</span>
+ <span class="p">{</span>
+ <span class="sr">//</span> <span class="n">the</span> <span
class="n">name</span> <span class="n">property</span> <span class="n">is</span>
<span class="n">required</span> <span class="n">on</span> <span
class="p">(</span><span class="n">nested</span><span class="p">)</span> <span
class="n">child</span> <span class="n">nodes</span>
+ <span class="s">"name"</span><span class="p">:</span>
<span class="s">"sling:scripts"</span><span class="p">,</span>
+
+ <span class="s">"primaryNodeType"</span><span
class="p">:</span> <span class="s">"sling:ScriptList"</span><span
class="p">,</span>
+
+ <span class="s">"nodes"</span><span class="p">:</span>
<span class="p">[</span>
+ <span class="p">{</span>
+ <span class="s">"primaryNodeType"</span><span
class="p">:</span> <span class="s">"sling:Script"</span><span
class="p">,</span>
+ <span class="s">"properties"</span><span
class="p">:</span> <span class="p">{</span>
+ <span class="s">"sling:name"</span><span
class="p">:</span> <span
class="s">"/test/content/jsp/start.jsp"</span><span class="p">,</span>
+ <span class="s">"sling:type"</span><span
class="p">:</span> <span class="s">"jsp"</span><span
class="p">,</span>
+ <span class="s">"sling:glob"</span><span
class="p">:</span> <span class="s">"*"</span>
<span class="p">}</span>
- <span class="p">]</span>
- <span class="p">}</span>
- <span class="p">]</span>
- <span class="p">}</span>
+ <span class="p">}</span>
+ <span class="p">]</span>
+ <span class="p">}</span>
+ <span class="p">]</span>
+<span class="p">}</span>
</pre></div>
@@ -278,10 +369,10 @@ primary node type "nt:file". Underneath
Support for re-registration of node types is relatively limited. In
Jackrabbit, for example, only "trivial" changes are allowed.
{warning}</p>
<h3 id="automated-tests">Automated tests</h3>
-<p>The initial content found in the <a href="">sling-test folder of the
launchpad initial content</a> is verified by the
[InitialContentTest|http://svn.apache.org/repos/asf/sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/InitialContentTest.java]
when running the <em>launchpad/testing</em> integration tests.</p>
+<p>The initial content found in the <a href="">sling-test folder of the
launchpad initial content</a> is verified by the <a
href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/InitialContentTest.java">InitialContentTest</a>
when running the <em>launchpad/testing</em> integration tests.</p>
<p>Those tests can be used as verified examples of initial content loading.
Contributions are welcome to improve the coverage of those tests.</p>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1341376 by fmeschbe on Tue, 22 May 2012 09:41:06 +0000
+ Rev. 1345726 by fmeschbe on Sun, 3 Jun 2012 17:57:55 +0000
</div>
<div class="trademarkFooter">
Apache Sling, Sling, Apache, the Apache feather logo, and the Apache
Sling project