This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/sling-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 152e09a  Automatic website deployment from 
https://ci-builds.apache.org/job/Sling/job/modules/job/sling-site/job/master/317/
152e09a is described below

commit 152e09adc08543f1cd3d341593f847a1f2fd6995
Author: jenkins <[email protected]>
AuthorDate: Thu Nov 4 14:31:37 2021 +0000

    Automatic website deployment from 
https://ci-builds.apache.org/job/Sling/job/modules/job/sling-site/job/master/317/
---
 .../bundles/resource-access-security.html          | 65 ++++++++++++----------
 .../the-sling-engine/sling-api-crud-support.html   | 63 ++++++++++++---------
 sitemap.xml                                        |  8 +--
 3 files changed, 77 insertions(+), 59 deletions(-)

diff --git a/documentation/bundles/resource-access-security.html 
b/documentation/bundles/resource-access-security.html
index 43dec73..67a9e6c 100644
--- a/documentation/bundles/resource-access-security.html
+++ b/documentation/bundles/resource-access-security.html
@@ -112,31 +112,34 @@
                                 </li>
                             </ul>
                         </nav><script src='/res/jquery-3.2.1.min.js' 
type='text/javascript'></script><script src='/res/tocjs-1-1-2.js' 
type='text/javascript'></script><script 
type='text/javascript'>$(document).ready(function() { 
$('#generatedToC').toc({'selector':'h1[class!=title],h2,h3','ulClass':'menu-list'});
 } );</script><div class="content is-marginless">
-<div class="row"><div><section><p>Notice:    Licensed to the Apache Software 
Foundation (ASF) under one or more contributor license agreements.  See the 
NOTICE file distributed with this work for additional information regarding 
copyright ownership.  The ASF licenses this file to you under the Apache 
License, Version 2.0 (the &quot;License&quot;); you may not use this file 
except in compliance with the License.  You may obtain a copy of the License at 
. http://www.apache.org/licenses/LIC [...]
-<h2><a href="#summary" id="summary">Summary</a></h2>
-<p>The ResourceAccessSecurity service allows it to restrict access to 
resources. The access can be granted or denied for read, create, update and 
delete actions.</p>
-<p>The ResourceAccessSecurity defines a service API which is used in two 
different context: for securing resource providers which have no own access 
control and on the application level to further restrict the access to 
resources in general.</p>
-<p>A resource access security service is registered with the service property 
“context”. Allowed values are “application” and “provider”. If the value is 
missing or invalid, the service will be ignored.</p>
-<p>In the context of resource providers, this service might be used for 
implementations of resource providers where the underlying persistence layer 
does not implement access control. The goal is to make it easy to implement a 
lightweight access control for such providers. For example, a JCR resource 
providers should not use the provider context resource access security - in a 
JCR context, security is fully delegated to the underlying repository, and 
mixing security models would be a bad [...]
-<p>In the context of the application, this service might be used to add 
additional or temporary constraints across the whole resource tree.</p>
-<h2><a href="#how-to-use-resourceaccesssecurity" 
id="how-to-use-resourceaccesssecurity">How to use 
ResourceAccessSecurity</a></h2>
-<p>To use the ResourceAccessSecurity service you don’t have to implement the 
interface ResourceAccessSecurity. Simply add the resourceaccesssecurity bundle 
to your sling instance. This adds an implementation of the 
ResourceAccessSecurity service for the provider context (“provider”) and also 
the application context (“application”).</p>
-<p>Furthermore the implementation of ResourceAccessSecurity defines a service 
provider interface named ResourceAccessGate. This is the service interface 
which you can implement and register to control the access to the resources.</p>
-<p>The ResourceAccessGate defines a service API which can be used to make some 
restrictions to accessing resources. Implementations of this service interface 
must be registered like ResourceProvider with a path (like provider.roots but 
with the property name “path”). If different ResourceAccessGate services match 
a path, not only the ResourceAccessGate with the longest path will be called, 
but all of them, that's in contrast to the ResourceProvider, but in this case 
more logical (and sec [...]
-<h3><a href="#service-properties" id="service-properties">Service 
properties</a></h3>
+<div class="row"><div><section><h1><a href="#summary" 
id="summary">Summary</a></h1>
+<p>The <code>ResourceAccessSecurity</code> service allows to restrict access 
to resources. The access can be granted or denied for read, create, update, 
delete and order resources actions.</p>
+<p>The <code>ResourceAccessSecurity</code> interface defines a service API 
which is used in two different context:</p>
+<ol>
+<li>for securing resource providers which have no own access control and</li>
+<li>on the application level to further restrict the access to resources in 
general.</li>
+</ol>
+<p>A resource access security service is registered with the service property 
<code>context</code>. Allowed values are <code>application</code> and 
<code>provider</code>. If the value is missing or invalid, the service will be 
ignored.</p>
+<p>In the context of resource providers, this service might be used for those  
providers where the underlying persistence layer does not implement access 
control. The goal is to make it easy to implement a lightweight access control 
for such providers. On the other hand a JCR resource providers should not use 
the provider context resource access security - in a JCR context, security is 
fully delegated to the underlying repository, and mixing security models would 
be a bad idea.</p>
+<p>In the context of the application, this service might be used to add 
additional or temporary constraints across the whole resource tree. It is 
automatically called by the Resource Resolver implementation.</p>
+<h1><a href="#default-implementation" id="default-implementation">Default 
Implementation</a></h1>
+<p>To use the <code>ResourceAccessSecurity</code> service just rely on the 
default implementation provided by the <a 
href="https://github.com/apache/sling-org-apache-sling-resourceaccesssecurity";><code>resourceaccesssecurity</code>bundle</a>.
 This adds an implementation of the <code>ResourceAccessSecurity</code> service 
for the provider context (<code>provider</code>) and also the application 
context (<code>application</code>).</p>
+<p>Furthermore this implementation of <code>ResourceAccessSecurity</code> 
defines a service provider interface (SPI) named 
<code>ResourceAccessGate</code>. This is the service interface which you can 
implement and register to control the access to particular resources.</p>
+<p>The <code>ResourceAccessGate</code> interface defines an SPI which can be 
used to make some restrictions for accessing resources. Implementations of this 
service interface must be registered like <code>ResourceProvider</code>s with a 
path (like <code>provider.roots</code> but with the property name 
<code>path</code>). If multiple <code>ResourceAccessGate</code> services match 
a path, not only the <code>ResourceAccessGate</code> with the longest path will 
be called, but all of them. Th [...]
+<h2><a href="#service-properties-for-resourceaccessgate-services" 
id="service-properties-for-resourceaccessgate-services">Service properties for 
<code>ResourceAccessGate</code> services</a></h2>
 <table>
 <thead>
-<tr><th>Property name     </th><th>  description</th></tr>
+<tr><th>Name     </th><th>  Description </th><th> Default</th></tr>
 </thead>
 <tbody>
-<tr><td>Path              </td><td> regexp to define on which paths the 
service should be called (default .*)</td></tr>
-<tr><td>operations        </td><td> set of operations on which the service 
should be called (&quot;read,create,update,delete,execute&quot;, default all of 
them)</td></tr>
-<tr><td>finaloperations   </td><td> set of operations on which the service 
answer is final and no further service should be called (default none of them), 
except the GateResult is GateResult.CANT_DECIDE</td></tr>
-<tr><td>context           </td><td> “provider” or “application”. The resource 
access gate can either have the context “provider”, in this case the gate is 
only applied to resource providers requesting the security checks. Or the 
context can be “application”. In this case the access gate is invoked for the 
whole resource tree. This is indicated by the required service property 
“context”. If the property is missing or invalid, the service is 
ignored.</td></tr>
+<tr><td><code>path</code>              </td><td> Regular expression to 
restrict on which paths the service should be called </td><td> 
<code>.*</code></td></tr>
+<tr><td><code>operations</code>        </td><td> Set of operations on which 
the service should be called. Allowed string values: 
<code>read</code>,<code>create</code>,<code>update</code>,<code>delete</code>,<code>execute</code>,<code>order-children</code>.
 The value <code>order-children</code> is only supported since version 1.1.0 
(<a href="https://issues.apache.org/jira/browse/SLING-7975";>SLING-7975</a>) 
</td><td> <code>{ 
&quot;read&quot;,&quot;create&quot;,&quot;update&quot;,&quot;dele [...]
+<tr><td><code>finaloperations</code>   </td><td> Set of operations on which 
the service answer is final and no further service should be called, except the 
GateResult is GateResult.CANT_DECIDE. Allows the same values as 
<code>operations</code>. </td><td> (none)</td></tr>
+<tr><td><code>context</code>          </td><td> The resource access gate can 
either have the context <code>provider</code> in which case the gate is only 
applied to resource providers requesting the security checks or the context 
<code>application</code> in which case the access gate is invoked for the whole 
resource tree. If the property is missing or invalid, the service is ignored. 
</td><td> (none)</td></tr>
 </tbody>
 </table>
-<h3><a href="#how-to-implement-resourceaccessgate" 
id="how-to-implement-resourceaccessgate">How to implement 
ResourceAccessGate</a></h3>
-<p>The implementation is straightforward. The easiest way is to extend 
<code>AllowingResourceAccessGate</code> which is exported by the 
resourceaccesssecurity bundle and does not deny any access. So if you wan’t 
restrict access on resources for read operations you have to implement to 
following two methods:</p>
+<h2><a href="#how-to-implement-resourceaccessgate" 
id="how-to-implement-resourceaccessgate">How to implement 
<code>ResourceAccessGate</code></a></h2>
+<p>The implementation is straightforward: The easiest way is to extend 
<code>AllowingResourceAccessGate</code> which is exported by the 
<code>resourceaccesssecurity</code> bundle and does not deny any access. So if 
you want to restrict access on resources for read operations you have to 
implement to following two methods:</p>
 <pre><code><!-- TODO syntax marker (::java) disabled -->@Override
 public boolean hasReadRestrictions(final ResourceResolver resourceResolver) {
        return true;
@@ -155,18 +158,20 @@ public GateResult canRead(final Resource resource) {
        return returnValue;
 }
 </code></pre>
-<p>And you have to register the ResourceAccessGate with the path where you 
wan’t to restrict access and the operation property set to “read”. Furthermore 
you have to decide if the ResourceAccessGate should operate on all resource 
providers (context=”application”) or only on the resourceproviders flagged with 
the property useResourceAccessSecurity=true (context=”provider”).</p>
+<p>You have to register the <code>ResourceAccessGate</code> with service 
properties outlined above.</p>
 <p>Tip: We do not recommend to mix up application and provider context in the 
same application. This can lead to confusing configurations in the 
ResourceAccessGate implementations.</p>
-<h3><a href="#gateresult" id="gateresult">GateResult</a></h3>
+<h2><a href="#gateresult" id="gateresult">GateResult</a></h2>
 <p>GateResult does have three states:</p>
-<ul>
-<li>GateResult.GRANTED</li>
-<li>GateResult.DENIED</li>
-<li>GateResult.CANT_DECIDE</li>
-</ul>
-<p>The first two of them are self-explanatory. CANT_DECIDE means that the 
actual gate neither can grant nor deny the access. If no other gate does return 
GRANTED or DENIED the access to the resource will be denied for security 
reasons. CANT-DECIDE comes handy if you declare finaloperations (where no other 
gate will be called after this gate). If such a gate returns CANT_DECIDE, 
further gates will be called regardless of the setted finaloperations 
property.</p>
-<h2><a href="#actual-state-of-resourceaccesssecurity" 
id="actual-state-of-resourceaccesssecurity">Actual state of 
ResourceAccessSecurity</a></h2>
-<p>By now the implementation is complete for securing access on resource level 
for CRUD operations. It is not yet ready to allow fine granular access rights 
on values of a resource. So at the moment the <code>canReadValue, 
canUpdateValue, canDeleteValue</code> and <code>canCreateValue</code> on 
<code>ResourceAccessGate</code> methods are ignored.</p>
+<ol>
+<li><code>GateResult.GRANTED</code></li>
+<li><code>GateResult.DENIED</code></li>
+<li><code>GateResult.CANT_DECIDE</code></li>
+</ol>
+<p>The first two of them are self-explanatory. <code>CANT_DECIDE</code> means 
that the actual gate neither can grant nor deny the access. If no other gate 
does return <code>GRANTED</code> or <code>DENIED</code> the access to the 
resource will be denied for security reasons. <code>CANT_DECIDE</code> comes 
handy if you declare <code>finaloperations</code> (where no other gate will be 
called after this gate). If such a gate returns <code>CANT_DECIDE</code>, 
further gates will be called rega [...]
+<h2><a href="#resourceaccessgates-implementations" 
id="resourceaccessgates-implementations"><code>ResourceAccessGates</code> 
Implementations</a></h2>
+<p>There is an implementation of <code>ResourceAccessGate</code> provided by 
<a 
href="https://github.com/apache/sling-org-apache-sling-jcr-resourcesecurity";>bundle
 <code>org.apache.sling.jcr.resourcesecurity</code></a> which grants/denies 
access based on the permissions set on a JCR node. <em>This should only be used 
for paths not provided by the JCR Resource Provider</em>. It is implemented as 
service factory so each OSGi configuration provides a dedicated 
<code>ResourceAccessGate</code [...]
+<h2><a href="#limitations" id="limitations">Limitations</a></h2>
+<p>By now the implementation is complete for securing access on resource level 
for CRUD operations. It is not yet ready to allow fine granular access rights 
on properties/values of a resource. So at the moment the <code>canReadValue, 
canUpdateValue, canDeleteValue</code> and <code>canCreateValue</code> on 
<code>ResourceAccessGate</code> methods are ignored (<a 
href="https://issues.apache.org/jira/browse/SLING-10906";>SLING-10906</a>).</p>
 </section></div></div>                            
                         </div>
                     </div>
@@ -178,7 +183,7 @@ public GateResult canRead(final Resource resource) {
                             
content/documentation/bundles/resource-access-security.md
                         </a>
                     </div>                    <div class="revisionInfo">
-                        Last modified by <span class="author">Bertrand 
Delacretaz</span> on <span class="comment">2017-09-29</span>
+                        Last modified by <span class="author">Konrad 
Windszus</span> on <span class="comment">2021-11-04</span>
                     </div><p>
                         Apache Sling, Sling, Apache, the Apache feather logo, 
and the Apache Sling project logo are trademarks of The Apache Software 
Foundation. All other marks mentioned may be trademarks or registered 
trademarks of their respective owners.
                     </p><p>
diff --git a/documentation/the-sling-engine/sling-api-crud-support.html 
b/documentation/the-sling-engine/sling-api-crud-support.html
index fe2a758..f45b794 100644
--- a/documentation/the-sling-engine/sling-api-crud-support.html
+++ b/documentation/the-sling-engine/sling-api-crud-support.html
@@ -118,21 +118,22 @@
                         </nav><script src='/res/jquery-3.2.1.min.js' 
type='text/javascript'></script><script src='/res/tocjs-1-1-2.js' 
type='text/javascript'></script><script 
type='text/javascript'>$(document).ready(function() { 
$('#generatedToC').toc({'selector':'h1[class!=title],h2,h3','ulClass':'menu-list'});
 } );</script><div class="content is-marginless">
 <div class="row"><div><section><p><!-- TODO reactivate TOC once JBake moves to 
flexmark-java -->
 </p>
-<h2><a href="#apache-sling-api-support" id="apache-sling-api-support">Apache 
Sling API Support</a></h2>
+<h1><a href="#apache-sling-api-support" id="apache-sling-api-support">Apache 
Sling API Support</a></h1>
 <p>As of version 2.3.0, the Sling API provides full Create Read Update Delete 
(CRUD) features.  CRUD support is provided by the addition of the following 
methods to the ResourceResolver:</p>
 <ul>
-<li><a 
href="https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#delete-org.apache.sling.api.resource.Resource-";>void
 delete(Resource resource) throws PersistenceException</a></li>
-<li><a 
href="https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#create-org.apache.sling.api.resource.Resource-java.lang.String-java.util.Map-";>Resource
 create(Resource parent, String name, Map&lt;String, Object&gt; properties) 
throws PersistenceException</a></li>
-<li><a 
href="https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#revert--";>void
 revert()</a></li>
-<li><a 
href="https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#commit--";>void
 commit() throws PersistenceException</a></li>
-<li><a 
href="https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#hasChanges--";>boolean
 hasChanges()</a></li>
-<li><a 
href="https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#refresh--";>void
 refresh()</a></li>
+<li><a 
href="https://sling.apache.org/apidocs/sling11/org/apache/sling/api/resource/ResourceResolver.html#delete-org.apache.sling.api.resource.Resource-";><code>void
 delete(Resource resource) throws PersistenceException</code></a></li>
+<li><a 
href="https://sling.apache.org/apidocs/sling11/org/apache/sling/api/resource/ResourceResolver.html#create-org.apache.sling.api.resource.Resource-java.lang.String-java.util.Map-";><code>Resource
 create(Resource parent, String name, Map&lt;String, Object&gt; properties) 
throws PersistenceException</code></a></li>
+<li><a 
href="https://sling.apache.org/apidocs/sling11/org/apache/sling/api/resource/ResourceResolver.html#revert--";><code>void
 revert()</code></a></li>
+<li><a 
href="https://sling.apache.org/apidocs/sling11/org/apache/sling/api/resource/ResourceResolver.html#commit--";><code>void
 commit()</code> throws PersistenceException</a></li>
+<li><a 
href="https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#hasChanges--";><code>boolean
 hasChanges()</code></a></li>
+<li><a 
href="https://sling.apache.org/apidocs/sling11/org/apache/sling/api/resource/ResourceResolver.html#refresh--";><code>void
 refresh()</code></a></li>
+<li><code>orderBefore(Resource parent, String name, String 
followingSiblingName) throws UnsupportedOperationException, 
PersistenceException, IllegalArgumentException</code>(since <a 
href="https://issues.apache.org/jira/browse/SLING-7975";>API 2.24.0</a>)</li>
 </ul>
-<p>Which provide the ability to create and delete resources as well as the 
addition of the ModifiableValueMap interface which is similar to the ValueMap 
interface, but allows for updating properties on a resource.</p>
-<h2><a href="#comparing-sling-api-crud-to-sling-post-servlet" 
id="comparing-sling-api-crud-to-sling-post-servlet">Comparing Sling API CRUD to 
Sling Post Servlet</a></h2>
+<p>Those methods provide the ability to create and delete resources as well. 
In addition you can adapt a <code>Resource</code> to a 
<code>ModifiableValueMap</code> interface which is similar to the 
<code>ValueMap</code> interface, but allows for updating properties on a 
resource.</p>
+<h1><a href="#examples" id="examples">Examples</a></h1>
 <p>Here are some examples of common operations performed using the Sling Post 
Servlet and Sling API CRUD support.  Note, the examples are derived from the 
cheat sheet in Adobe's AEM documentation at <a 
href="https://experienceleague.adobe.com/docs/experience-manager-cloud-service/implementing/developing/full-stack/sling-cheatsheet.html";>https://experienceleague.adobe.com/docs/experience-manager-cloud-service/implementing/developing/full-stack/sling-cheatsheet.html</a>.</p>
-<h3><a href="#updating-a-property" id="updating-a-property">Updating a 
Property</a></h3>
-<p>Update /myresource, setting the title and body:</p>
+<h2><a href="#updating-a-property" id="updating-a-property">Updating a 
Property</a></h2>
+<p>Update <code>/myresource</code>, setting the title and body:</p>
 <p><strong>Sling Post Servlet</strong></p>
 <pre><code>&lt;form action=&quot;/myresource&quot; method=&quot;POST&quot;&gt;
   &lt;input type=&quot;text&quot; name=&quot;title&quot;&gt;
@@ -146,8 +147,8 @@ properties.put(&quot;title&quot;, {TITLE});
 properties.put(&quot;body&quot;, {BODY});
 resourceResolver.commit();
 </code></pre>
-<h3><a href="#create-new-resource" id="create-new-resource">Create New 
Resource</a></h3>
-<p>Create a new resource below /myresource</p>
+<h2><a href="#create-new-resource" id="create-new-resource">Create New 
Resource</a></h2>
+<p>Create a new resource below <code>/myresource</code></p>
 <p><strong>Sling Post Servlet</strong></p>
 <pre><code>&lt;form action=&quot;/myresource/&quot; method=&quot;POST&quot;&gt;
   &lt;input type=&quot;text&quot; name=&quot;dummy&quot;&gt;
@@ -161,7 +162,7 @@ properties.put(&quot;sling:resourceType&quot;, 
&quot;myapp/components/mytype&quo
 Resource dummy = resourceResolver.create(myResource, &quot;dummy&quot;, 
properties);
 resourceResolver.commit();
 </code></pre>
-<h3><a href="#remove-a-property" id="remove-a-property">Remove a 
Property</a></h3>
+<h2><a href="#remove-a-property" id="remove-a-property">Remove a 
Property</a></h2>
 <p>Remove the property title</p>
 <p><strong>Sling Post Servlet</strong></p>
 <pre><code>&lt;form action=&quot;/myresource&quot; method=&quot;POST&quot;&gt;
@@ -174,8 +175,8 @@ ModifiableValueMap properties = 
myResource.adaptTo(ModifiableValueMap.class);
 properties.remove(&quot;title&quot;);
 resourceResolver.commit();
 </code></pre>
-<h3><a href="#copy-a-resource" id="copy-a-resource">Copy a Resource</a></h3>
-<p>Copy the resource /myresource to /myresource2</p>
+<h2><a href="#copy-a-resource" id="copy-a-resource">Copy a Resource</a></h2>
+<p>Copy the resource <code>/myresource</code> to <code>/myresource2</code></p>
 <p><strong>Sling Post Servlet</strong></p>
 <pre><code>&lt;form action=&quot;/myresource&quot; method=&quot;POST&quot;&gt;
   &lt;input type=&quot;hidden&quot; name=&quot;:operation&quot; 
value=&quot;copy&quot;&gt;
@@ -188,8 +189,8 @@ resourceResolver.commit();
 Resource myResource2 = resourceResolver.create(null, &quot;myresource2&quot;, 
properties);
 resourceResolver.commit();
 </code></pre>
-<h3><a href="#move-a-resource" id="move-a-resource">Move a Resource</a></h3>
-<p>Move the resource /myresource2 to /myresource3</p>
+<h2><a href="#move-a-resource" id="move-a-resource">Move a Resource</a></h2>
+<p>Move the resource <code>/myresource2</code> to <code>/myresource3</code></p>
 <p><strong>Sling Post Servlet</strong></p>
 <pre><code>&lt;form action=&quot;/myresource2&quot; method=&quot;POST&quot;&gt;
   &lt;input type=&quot;hidden&quot; name=&quot;:operation&quot; 
value=&quot;move&quot;&gt;
@@ -203,7 +204,7 @@ Resource myResource3 = resourceResolver.create(null, 
&quot;myresource3&quot;, pr
 resourceResolver.delete(myResource2);
 resourceResolver.commit();
 </code></pre>
-<h3><a href="#setting-non-string-value" id="setting-non-string-value">Setting 
non-String Value</a></h3>
+<h2><a href="#setting-non-string-value" id="setting-non-string-value">Setting 
non-String Value</a></h2>
 <p>Set the property date to a particular date</p>
 <p><strong>Sling Post Servlet</strong></p>
 <pre><code>&lt;form action=&quot;/myresource3&quot; method=&quot;POST&quot;&gt;
@@ -218,8 +219,8 @@ ModifiableValueMap properties = 
myResource3.adaptTo(ModifiableValueMap.class);
 properties.put(&quot;date&quot;, calendar);
 resourceResolver.commit();
 </code></pre>
-<h3><a href="#delete-a-resource" id="delete-a-resource">Delete a 
Resource</a></h3>
-<p>Delete the resource /myresource</p>
+<h2><a href="#delete-a-resource" id="delete-a-resource">Delete a 
Resource</a></h2>
+<p>Delete the resource <code>/myresource</code></p>
 <p><strong>Sling Post Servlet</strong></p>
 <pre><code>&lt;form action=&quot;/myresource&quot; method=&quot;POST&quot;&gt;
   &lt;input type=&quot;hidden&quot; name=&quot;:operation&quot; 
value=&quot;delete&quot;&gt;
@@ -230,15 +231,27 @@ resourceResolver.commit();
 resourceResolver.delete(myResource);
 resourceResolver.commit();
 </code></pre>
-<h2><a href="#value-class-support" id="value-class-support">Value Class 
Support</a></h2>
+<h2><a href="#order-a-resource" id="order-a-resource">Order a Resource</a></h2>
+<p>Reorder the resource <code>/myresource</code> before sibling node 
<code>child1</code></p>
+<p><strong>Sling Post Servlet</strong></p>
+<pre><code>&lt;form action=&quot;/myresource&quot; method=&quot;POST&quot;&gt;
+  &lt;input type=&quot;hidden&quot; name=&quot;:order&quot; value=&quot;before 
child1&quot;&gt;
+&lt;/form&gt;
+</code></pre>
+<p><strong>Sling API CRUD</strong></p>
+<pre><code>Resource myResource = resourceResolver.getResource(&quot;/&quot;);
+resourceResolver.orderBefore(myResource, &quot;myresource&quot;, 
&quot;child1&quot;);
+resourceResolver.commit();
+</code></pre>
+<h1><a href="#value-class-support" id="value-class-support">Value Class 
Support</a></h1>
 <div class="info">
        Please note, this information is specific to the Sling JCR Resource 
implementation provided by the Apache Sling project.  Other implementations may 
have different value class support.  
 </div>
-<p>The Classes implementing the following types are supported directly when 
setting properties:</p>
+<p>The classes implementing the following types are supported directly when 
setting properties:</p>
 <ul>
 <li><a 
href="http://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html";>Calendar</a></li>
 <li><a 
href="http://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html";>InputStream</a></li>
-<li><a 
href="http://www.day.com/maven/javax.jcr/javadocs/jcr-2.0/javax/jcr/Node.html";>Node</a></li>
+<li><a 
href="https://s.apache.org/jcr-2.0-javadoc/javax/jcr/Node.html";>Node</a></li>
 <li><a 
href="http://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html";>BigDecimal</a></li>
 <li><a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html";>Long</a></li>
 <li><a 
href="http://docs.oracle.com/javase/8/docs/api/java/lang/Short.html";>Short</a></li>
@@ -259,7 +272,7 @@ resourceResolver.commit();
                             
content/documentation/the-sling-engine/sling-api-crud-support.md
                         </a>
                     </div>                    <div class="revisionInfo">
-                        Last modified by <span class="author">Aravindo 
Wingeier</span> on <span class="comment">2021-05-19</span>
+                        Last modified by <span class="author">Konrad 
Windszus</span> on <span class="comment">2021-11-04</span>
                     </div><p>
                         Apache Sling, Sling, Apache, the Apache feather logo, 
and the Apache Sling project logo are trademarks of The Apache Software 
Foundation. All other marks mentioned may be trademarks or registered 
trademarks of their respective owners.
                     </p><p>
diff --git a/sitemap.xml b/sitemap.xml
index 72521e4..7bf2803 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1,6 +1,10 @@
 <?xml version="1.0"?>
 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd";>
     <url>
+        
<loc>https://sling.apache.org/documentation/bundles/resource-access-security.html</loc><lastmod>2021-11-04</lastmod>
+    </url><url>
+        
<loc>https://sling.apache.org/documentation/the-sling-engine/sling-api-crud-support.html</loc><lastmod>2021-11-04</lastmod>
+    </url><url>
         
<loc>https://sling.apache.org/releases.html</loc><lastmod>2021-11-01</lastmod>
     </url><url>
         
<loc>https://sling.apache.org/documentation/the-sling-engine/servlets.html</loc><lastmod>2021-10-20</lastmod>
@@ -43,8 +47,6 @@
     </url><url>
         
<loc>https://sling.apache.org/documentation/the-sling-engine/url-decomposition.html</loc><lastmod>2021-05-19</lastmod>
     </url><url>
-        
<loc>https://sling.apache.org/documentation/the-sling-engine/sling-api-crud-support.html</loc><lastmod>2021-05-19</lastmod>
-    </url><url>
         
<loc>https://sling.apache.org/documentation/the-sling-engine/wrap-or-decorate-resources.html</loc><lastmod>2021-05-19</lastmod>
     </url><url>
         
<loc>https://sling.apache.org/documentation/bundles/content-package-installer-factory.html</loc><lastmod>2021-05-10</lastmod>
@@ -101,8 +103,6 @@
     </url><url>
         
<loc>https://sling.apache.org/documentation/bundles/resource-editor.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
-        
<loc>https://sling.apache.org/documentation/bundles/resource-access-security.html</loc><lastmod>2017-09-29</lastmod>
-    </url><url>
         
<loc>https://sling.apache.org/documentation/bundles/request-analysis.html</loc><lastmod>2017-11-22</lastmod>
     </url><url>
         
<loc>https://sling.apache.org/documentation/bundles/rendering-content-default-get-servlets.html</loc><lastmod>2020-01-08</lastmod>

Reply via email to