You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by gi...@apache.org on 2022/03/17 19:19:26 UTC

[sling-site] branch asf-site updated: Automatic website deployment from https://ci-builds.apache.org/job/Sling/job/modules/job/sling-site/job/master/437/

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 0f9d607  Automatic website deployment from https://ci-builds.apache.org/job/Sling/job/modules/job/sling-site/job/master/437/
0f9d607 is described below

commit 0f9d607eaede2bea05749f1af7799b6caf83cebd
Author: jenkins <bu...@apache.org>
AuthorDate: Thu Mar 17 19:19:24 2022 +0000

    Automatic website deployment from https://ci-builds.apache.org/job/Sling/job/modules/job/sling-site/job/master/437/
---
 .../apache-sling-eventing-and-job-handling.html    |  51 ++--
 sitemap.xml                                        | 300 ++++++++++-----------
 2 files changed, 178 insertions(+), 173 deletions(-)

diff --git a/documentation/bundles/apache-sling-eventing-and-job-handling.html b/documentation/bundles/apache-sling-eventing-and-job-handling.html
index 2ace0aa..e39d544 100644
--- a/documentation/bundles/apache-sling-eventing-and-job-handling.html
+++ b/documentation/bundles/apache-sling-eventing-and-job-handling.html
@@ -155,8 +155,8 @@
 <p>While older versions of the job handling were based on sending and receiving events through the OSGi event admin, newer versions provide enhanced support through special Java interface. This approach is preferred over the still supported but deprecated event admin way.</p>
 <p>A job consists of two parts, the job topic describing the nature of the job and the payload which is a key value map of serializable objects. A client can initiate a job by calling the <em>JobManager.addJob</em> method:</p>
 <pre><code>    import org.apache.sling.jobs.JobManager;
-    import org.apache.felix.scr.annotations.Component;
-    import org.apache.felix.scr.annotations.Reference;
+    import org.osgi.service.component.annotations.Component;
+    import org.osgi.service.component.annotations.Reference;
     import java.util.Map;
     import java.util.HashMap;
     
@@ -184,20 +184,25 @@
 <p>An example code for scheduling a job looks like this:</p>
 <pre><code>import org.apache.sling.jobs.JobManager;
 import org.apache.sling.event.jobs.JobBuilder.ScheduleBuilder;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Reference;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
 
-@Component
+@Component(immediate=true)
 public class MyComponent {
 
+    private static final String TOPIC = &quot;midnight/job/topic&quot;;
+
     @Reference
     private JobManager jobManager;
 
     public void startScheduledJob() {
-        ScheduleBuilder scheduleBuilder = jobManager.createJob(&quot;my/special/jobtopic&quot;).schedule();
-        scheduleBuilder.daily(0,0); // execute daily at midnight
-        if (scheduleBuilder.add() == null) {
-            // something went wrong here, use scheduleBuilder.add(List&lt;String&gt;) instead to get further information about the error
+        if (JobManager.getJobScheduledJobs(TOPIC,1,null) == null) {
+            // only add the jobs if it is not yet scheduled
+            ScheduleBuilder scheduleBuilder = jobManager.createJob(TOPIC).schedule();
+            scheduleBuilder.daily(0,0); // execute daily at midnight
+            if (scheduleBuilder.add() == null) {
+                // something went wrong here, use scheduleBuilder.add(List&lt;String&gt;) instead to get further information about the error
+            }
         }
     }
 }
@@ -205,14 +210,13 @@ public class MyComponent {
 <p>Internally the scheduled Jobs use the <a href="/documentation/bundles/scheduler-service-commons-scheduler.html">Commons Scheduler Service</a>. But in addition they are persisted (by default below <code>/var/eventing/scheduled-jobs</code>) and survive therefore even server restarts. When the scheduled time is reached, the job is automatically added as regular Sling Job through the <code>JobManager</code>.</p>
 <h3><a href="#job-consumers" id="job-consumers">Job Consumers</a></h3>
 <p>A job consumer is a service consuming and processing a job. It registers itself as an OSGi service together with a property defining which topics this consumer can process:</p>
-<pre><code>    import org.apache.felix.scr.annotations.Component;
-    import org.apache.felix.scr.annotations.Service;
+<pre><code>    import org.osgi.service.component.annotations.Component;
     import org.apache.sling.event.jobs.Job;
     import org.apache.sling.event.jobs.consumer.JobConsumer;
 
-    @Component
-    @Service(value={JobConsumer.class})
-    @Property(name=JobConsumer.PROPERTY_TOPICS, value=&quot;my/special/jobtopic&quot;,)
+    @Component(service=JobConsumer.class, property= {
+    	JobConsumer.PROPERTY_TOPICS + &quot;=my/special/jobtopic&quot;
+    })
     public class MyJobConsumer implements JobConsumer {
 
         public JobResult process(final Job job) {
@@ -225,15 +229,14 @@ public class MyComponent {
 <h3><a href="#job-executors" id="job-executors">Job Executors</a></h3>
 <p>If the job consumer needs more features like providing progress information or adding more information of the processing,<em>JobExecutor</em> should be implemented.<br />
 A job executor is a service processing a job. It registers itself as an OSGi service together with a property defining which topics this consumer can process:</p>
-<pre><code>    import org.apache.felix.scr.annotations.Component;
-    import org.apache.felix.scr.annotations.Service;
+<pre><code>    import org.osgi.service.component.annotations.Component;
     import org.apache.sling.event.jobs.Job;
     import org.apache.sling.event.jobs.consumer.JobExecutor;
     import org.apache.sling.event.jobs.consumer.JobExecutionContext;
 
-    @Component
-    @Service(value={JobExecutor.class})
-    @Property(name=JobExecutor.PROPERTY_TOPICS, value=&quot;my/special/jobtopic&quot;,)
+    @Component(service=JobExecutor.class, property={
+    	JobExecutor.PROPERTY_TOPICS + &quot;=my/special/jobtopic&quot;
+    })
     public class MyJobExecutor implements JobExecutor {
 
         public JobExecutionResult process(final Job job, JobExecutionContext context)
@@ -243,7 +246,7 @@ A job executor is a service processing a job. It registers itself as an OSGi ser
             context.getJobContext().initProgress(n, -1);
             context.getJobContext().log(&quot;Job initialized&quot;);
             
-            //increament progress by 2 steps
+            //increment progress by 2 steps
             context.getJobContext().incrementProgressCount(2);
             context.getJobContext().log(&quot;2 steps completed.&quot;);
             
@@ -296,8 +299,10 @@ A job executor is a service processing a job. It registers itself as an OSGi ser
 <p>The job manager ensures that a job is processed exactly once. However, the client code has to take care that a job is created exactly once. We'll discuss this based on some general usage patterns:</p>
 <h4><a href="#jobs-based-on-user-action" id="jobs-based-on-user-action">Jobs based on user action</a></h4>
 <p>If a user action results in the creation of a job, the thread processing the user action can directly create the job. This ensures that even in a clustered scenario the job is created only once.</p>
-<h4><a href="#jobs-based-on-observation-events" id="jobs-based-on-observation-events">Jobs based on observation / events</a></h4>
-<p>If an observation event or any other OSGi event results in the creation of a job, special care needs to be taken in a clustered installation to avoid the job is created on all cluster instances. The easiest way to avoid this, is to use the topology api and make sure the job is only created on the leader instance.</p>
+<h4><a href="#jobs-in-a-clustered-environment" id="jobs-in-a-clustered-environment">Jobs in a clustered environment</a></h4>
+<p>Jobs are shared within all cluster members; if an observation event or any other OSGi event results in the creation of a job, special care needs to be taken to avoid that the job is created on all cluster instances. The easiest way to avoid this, is to use the topology API and make sure the job is only created on the leader instance.</p>
+<p>Also attention should be spent when registering scheduled jobs; the API does not prevent you to register multiple instances of the same job for the same time. But typically this is not desired, but instead that event should be executed only once in the cluster at the specified time. To achieve this behavior always check if a job for the desired topic is already registered; and only in case it is not schedule that job. See the example at <a href="#scheduled-jobs-1">Scheduled Jobs</a>.</p>
+<p>You should not unschedule such a job in <code>@Deactivate</code> method of an OSGI Component. In a clustered environment with nodes starting and stopping in an often unexpected order and time this could lead to situations where the job is not scheduled and therefor not executed.</p>
 <h2><a href="#distributed-events" id="distributed-events">Distributed Events</a></h2>
 <p>In addition to the job handling, the Sling Event support adds handling for distributed events. A distributed event is an OSGi event which is sent across JVM boundaries to a different VM. A potential use case is to broadcast information in a clustered environment.</p>
 <h3><a href="#basic-principles" id="basic-principles">Basic Principles</a></h3>
@@ -325,7 +330,7 @@ A job executor is a service processing a job. It registers itself as an OSGi ser
                             content/documentation/bundles/apache-sling-eventing-and-job-handling.md
                         </a>
                     </div>                    <div class="revisionInfo">
-                        Last modified by <span class="author">stefan-egli</span> on <span class="comment">2021-03-03</span>
+                        Last modified by <span class="author">Jörg Hoh</span> on <span class="comment">2022-03-17</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 
diff --git a/sitemap.xml b/sitemap.xml
index 94ee3ff..6383ea5 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1,28 +1,30 @@
 <?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.html</loc><lastmod>2022-03-17</lastmod>
+        <loc>https://sling.apache.org/documentation/bundles/apache-sling-eventing-and-job-handling.html</loc><lastmod>2022-03-17</lastmod>
     </url><url>
         <loc>https://sling.apache.org/releases.html</loc><lastmod>2022-03-14</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/development/content-packages.html</loc><lastmod>2022-03-08</lastmod>
+        <loc>https://sling.apache.org/documentation.html</loc><lastmod>2022-03-17</lastmod>
     </url><url>
         <loc>https://sling.apache.org/news/sling-12-released.html</loc><lastmod>2022-03-11</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/karaf.html</loc><lastmod>2022-03-06</lastmod>
+        <loc>https://sling.apache.org/documentation/development/content-packages.html</loc><lastmod>2022-03-08</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/bundles/sling-pipes.html</loc><lastmod>2022-03-04</lastmod>
     </url><url>
+        <loc>https://sling.apache.org/documentation/karaf.html</loc><lastmod>2022-03-06</lastmod>
+    </url><url>
         <loc>https://sling.apache.org/documentation/bundles/repository-initialization.html</loc><lastmod>2022-03-02</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/development/release-management.html</loc><lastmod>2022-02-18</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/development/slingstart.html</loc><lastmod>2022-02-11</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/contributing.html</loc><lastmod>2022-02-07</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/the-sling-engine/mappings-for-resource-resolution.html</loc><lastmod>2022-02-07</lastmod>
     </url><url>
+        <loc>https://sling.apache.org/contributing.html</loc><lastmod>2022-02-07</lastmod>
+    </url><url>
         <loc>https://sling.apache.org/documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.html</loc><lastmod>2022-02-04</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/the-sling-engine/resources.html</loc><lastmod>2022-01-13</lastmod>
@@ -39,74 +41,20 @@
     </url><url>
         <loc>https://sling.apache.org/news.html</loc><lastmod>2021-12-16</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/bundles/content-loading-jcr-contentloader.html</loc><lastmod>2021-12-08</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/bundles/file-installer-provider.html</loc><lastmod>2021-12-01</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/the-sling-engine/servlets.html</loc><lastmod>2021-11-22</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/development/hamcrest.html</loc><lastmod>2021-11-23</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/the-sling-engine/sling-api-crud-support.html</loc><lastmod>2021-11-23</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/bundles/sling-pipes/readers.html</loc><lastmod>2021-10-01</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/development/sling-mock.html</loc><lastmod>2021-11-17</lastmod>
-    </url><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/bundles/scripting.html</loc><lastmod>2021-08-23</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/bundles/configuration-installer-factory.html</loc><lastmod>2021-08-16</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/index.html</loc><lastmod>2021-07-30</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/bundles/scripting/scripting-htl.html</loc><lastmod>2021-07-29</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/bundles/graphql-core.html</loc><lastmod>2021-07-26</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/bundles/installer-provider-installhook.html</loc><lastmod>2021-07-24</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html</loc><lastmod>2021-07-21</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/bundles.html</loc><lastmod>2021-07-13</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/project-information.html</loc><lastmod>2021-07-07</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/development/testing-paxexam.html</loc><lastmod>2021-06-16</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/bundles/osgi-installer.html</loc><lastmod>2021-05-19</lastmod>
-    </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/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>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/the-sling-engine/service-authentication.html</loc><lastmod>2021-04-21</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/the-sling-engine/authentication/authentication-framework.html</loc><lastmod>2021-04-21</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/bundles/sling-pipes/bindings.html</loc><lastmod>2021-03-31</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/bundles/resource-merger.html</loc><lastmod>2021-03-18</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/bundles/internationalization-support-i18n.html</loc><lastmod>2021-03-11</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/bundles/apache-sling-eventing-and-job-handling.html</loc><lastmod>2021-03-03</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/the-sling-engine/filters.html</loc><lastmod>2021-03-02</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/bundles/sling-query/basic-ideas.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/bundles/sling-pipes/writers.html</loc><lastmod>2021-01-28</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/bundles/sling-pipes/samples.html</loc><lastmod>2021-01-28</lastmod>
     </url><url>
+        <loc>https://sling.apache.org/documentation/bundles/sling-pipes/readers.html</loc><lastmod>2021-10-01</lastmod>
+    </url><url>
         <loc>https://sling.apache.org/documentation/bundles/sling-pipes/logical.html</loc><lastmod>2021-01-28</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/bundles/sling-pipes/execution-monitoring.html</loc><lastmod>2021-01-28</lastmod>
     </url><url>
+        <loc>https://sling.apache.org/documentation/bundles/sling-pipes/bindings.html</loc><lastmod>2021-03-31</lastmod>
+    </url><url>
         <loc>https://sling.apache.org/documentation/bundles/sling-oak-restrictions.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/bundles/sling-health-checks.html</loc><lastmod>2020-10-27</lastmod>
@@ -117,18 +65,28 @@
     </url><url>
         <loc>https://sling.apache.org/documentation/bundles/servlet-helpers.html</loc><lastmod>2020-06-16</lastmod>
     </url><url>
+        <loc>https://sling.apache.org/documentation/bundles/scripting.html</loc><lastmod>2021-08-23</lastmod>
+    </url><url>
         <loc>https://sling.apache.org/documentation/bundles/scripting/scripting-thymeleaf.html</loc><lastmod>2017-11-22</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/bundles/scripting/scripting-jsp.html</loc><lastmod>2018-07-13</lastmod>
     </url><url>
+        <loc>https://sling.apache.org/documentation/bundles/scripting/scripting-htl.html</loc><lastmod>2021-07-29</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/bundles/resource-merger.html</loc><lastmod>2021-03-18</lastmod>
+    </url><url>
         <loc>https://sling.apache.org/documentation/bundles/resource-filter.html</loc><lastmod>2021-01-02</lastmod>
     </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>2021-11-04</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/output-rewriting-pipelines-org-apache-sling-rewriter.html</loc><lastmod>2018-07-10</lastmod>
     </url><url>
+        <loc>https://sling.apache.org/documentation/bundles/osgi-installer.html</loc><lastmod>2021-05-19</lastmod>
+    </url><url>
         <loc>https://sling.apache.org/documentation/bundles/org-apache-sling-junit-bundles.html</loc><lastmod>2020-10-22</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/bundles/nosql-resource-providers.html</loc><lastmod>2017-09-29</lastmod>
@@ -137,14 +95,24 @@
     </url><url>
         <loc>https://sling.apache.org/documentation/bundles/metrics.html</loc><lastmod>2018-07-17</lastmod>
     </url><url>
+        <loc>https://sling.apache.org/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html</loc><lastmod>2021-07-21</lastmod>
+    </url><url>
         <loc>https://sling.apache.org/documentation/bundles/managing-permissions-jackrabbit-accessmanager.html</loc><lastmod>2020-10-11</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/bundles/log-tracers.html</loc><lastmod>2018-07-17</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/bundles/jcr-installer-provider.html</loc><lastmod>2020-09-18</lastmod>
     </url><url>
+        <loc>https://sling.apache.org/documentation/bundles/internationalization-support-i18n.html</loc><lastmod>2021-03-11</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/bundles/installer-provider-installhook.html</loc><lastmod>2021-07-24</lastmod>
+    </url><url>
         <loc>https://sling.apache.org/documentation/bundles/hapi.html</loc><lastmod>2017-12-18</lastmod>
     </url><url>
+        <loc>https://sling.apache.org/documentation/bundles/graphql-core.html</loc><lastmod>2021-07-26</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/bundles/file-installer-provider.html</loc><lastmod>2021-12-01</lastmod>
+    </url><url>
         <loc>https://sling.apache.org/documentation/bundles/dynamic-includes.html</loc><lastmod>2018-09-12</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/bundles/distribution.html</loc><lastmod>2017-12-18</lastmod>
@@ -161,10 +129,16 @@
     </url><url>
         <loc>https://sling.apache.org/documentation/bundles/context-aware-configuration/context-aware-configuration-default-implementation.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
+        <loc>https://sling.apache.org/documentation/bundles/content-package-installer-factory.html</loc><lastmod>2021-05-10</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/bundles/content-loading-jcr-contentloader.html</loc><lastmod>2021-12-08</lastmod>
+    </url><url>
         <loc>https://sling.apache.org/documentation/bundles/content-distribution.html</loc><lastmod>2020-05-13</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/bundles/connection-timeout-agent.html</loc><lastmod>2019-06-27</lastmod>
     </url><url>
+        <loc>https://sling.apache.org/documentation/bundles/configuration-installer-factory.html</loc><lastmod>2021-08-16</lastmod>
+    </url><url>
         <loc>https://sling.apache.org/documentation/bundles/commons-html-utilities.html</loc><lastmod>2019-07-18</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/bundles/commons-crypto.html</loc><lastmod>2019-12-14</lastmod>
@@ -179,200 +153,226 @@
     </url><url>
         <loc>https://sling.apache.org/documentation/bundles/sling-query/examples.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/bundles/sling-query/operators.html</loc><lastmod>2017-09-29</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/bundles/sling-settings-org-apache-sling-settings.html</loc><lastmod>2020-09-18</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/bundles/xml-support.html</loc><lastmod>2017-11-22</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/development/feature-model.html</loc><lastmod>2020-06-18</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/development/ide-tooling/ide-tooling-incremental-build.html</loc><lastmod>2018-12-17</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/development/jspc.html</loc><lastmod>2017-09-29</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/development/maven-launchpad-plugin.html</loc><lastmod>2018-07-13</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/development/null-analysis.html</loc><lastmod>2018-08-18</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/development/resourceresolver-mock.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/feature-model/feature-model-howto.html</loc><lastmod>2020-06-18</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/feature-model/howtos/sling-with-custom-project.html</loc><lastmod>2020-06-18</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/legacy/logging.html</loc><lastmod>2018-07-13</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/the-sling-engine/authentication/authentication-actors.html</loc><lastmod>2017-11-22</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/documentation/the-sling-engine/dispatching-requests.html</loc><lastmod>2018-07-13</lastmod>
+        <loc>https://sling.apache.org/documentation/the-sling-engine/authentication/authentication-framework.html</loc><lastmod>2021-04-21</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/the-sling-engine/the-sling-launchpad.html</loc><lastmod>2018-07-13</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/tutorials-how-tos/46-line-blog.html</loc><lastmod>2017-11-22</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/tutorials-how-tos/jackrabbit-persistence.html</loc><lastmod>2018-07-17</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/errors/403.html</loc><lastmod>2017-10-07</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/links.html</loc><lastmod>2019-07-26</lastmod>
     </url><url>
         <loc>https://sling.apache.org/news/sling-launchpad-9-released.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/old-stuff/request-processing.html</loc><lastmod>2018-07-13</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/old-stuff/scriptengineintegration.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/project-information/apache-sling-community-roles-and-processes.html</loc><lastmod>2017-09-29</lastmod>
+        <loc>https://sling.apache.org/project-information.html</loc><lastmod>2021-07-07</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/bundles/sling-query/hierarchy-operators.html</loc><lastmod>2018-01-04</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/bundles/sling-query/selectors.html</loc><lastmod>2017-09-29</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/bundles/subsystem-installer-factory.html</loc><lastmod>2020-03-30</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/development/dependency-management.html</loc><lastmod>2018-07-13</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/development/getting-and-building-sling.html</loc><lastmod>2018-02-03</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/development/ide-tooling.html</loc><lastmod>2019-09-12</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/development/jsr-305.html</loc><lastmod>2018-08-18</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/development/maven-usage.html</loc><lastmod>2017-11-22</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/development/osgi-mock.html</loc><lastmod>2019-03-17</lastmod>
+        <loc>https://sling.apache.org/documentation/development/sling-mock.html</loc><lastmod>2021-11-17</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/feature-model/howtos/create-sling-composite.html</loc><lastmod>2020-06-18</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/getting-started/discover-sling-in-15-minutes.html</loc><lastmod>2019-07-09</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/pax-exam-utils.html</loc><lastmod>2017-12-29</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/the-sling-engine/authentication/authentication-authenticationhandler/form-based-authenticationhandler.html</loc><lastmod>2018-07-13</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/the-sling-engine/authentication/authentication-tasks.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/the-sling-engine/errorhandling.html</loc><lastmod>2017-11-22</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/the-sling-engine/request-listeners.html</loc><lastmod>2018-07-13</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/tutorials-how-tos/getting-resources-and-properties-in-sling.html</loc><lastmod>2018-01-05</lastmod>
+        <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/tutorials-how-tos/testing-sling-based-applications.html</loc><lastmod>2017-12-29</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/errors/404.html</loc><lastmod>2018-12-19</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/media.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/news/sling-ide-tooling-11-released.html</loc><lastmod>2017-09-29</lastmod>
-    </url><url>
-        <loc>https://sling.apache.org/old-stuff/run-modes-org-apache-sling-runmode.html</loc><lastmod>2018-07-17</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/old-stuff/servlet-resolution.html</loc><lastmod>2018-07-13</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/project-information/project-license.html</loc><lastmod>2017-09-29</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/bundles/sling-query/methods.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/bundles/sling-query/vs-jcr.html</loc><lastmod>2017-09-29</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/bundles/validation.html</loc><lastmod>2017-11-22</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/configuration.html</loc><lastmod>2019-07-26</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/development/deprecating-sling-modules.html</loc><lastmod>2020-03-31</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/development/issue-tracker.html</loc><lastmod>2018-07-13</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/development/logging.html</loc><lastmod>2018-07-17</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/development/maventipsandtricks.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/development/sling-testing-tools.html</loc><lastmod>2017-12-09</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/development/version-policy.html</loc><lastmod>2018-07-13</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/feature-model/howtos/create-sling-fm.html</loc><lastmod>2020-06-18</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/getting-started.html</loc><lastmod>2018-10-23</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/the-sling-engine/adapters.html</loc><lastmod>2020-11-10</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/the-sling-engine/authentication/authentication-authenticationhandler/openid-authenticationhandler.html</loc><lastmod>2018-07-13</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/the-sling-engine/authentication.html</loc><lastmod>2018-05-14</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/the-sling-engine/featureflags.html</loc><lastmod>2018-07-13</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/the-sling-engine/request-parameters.html</loc><lastmod>2018-07-13</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/tutorials-how-tos/how-to-manage-events-in-sling.html</loc><lastmod>2018-07-17</lastmod>
+        <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/tutorials-how-tos.html</loc><lastmod>2020-08-06</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/guides.html</loc><lastmod>2017-09-29</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/news/sling-10-released.html</loc><lastmod>2018-02-06</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/news/sling-ide-tooling-12-released.html</loc><lastmod>2018-01-21</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/old-stuff/assembly.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/old-stuff/scriptengineintegration/groovy-support.html</loc><lastmod>2017-09-29</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/old-stuff/sling-api.html</loc><lastmod>2018-07-13</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/project-information/project-team.html</loc><lastmod>2018-07-13</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/bundles/sling-query/modifiers.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/bundles/sling-query.html</loc><lastmod>2020-06-16</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/bundles/web-console-extensions.html</loc><lastmod>2018-07-13</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/development/client-request-logging.html</loc><lastmod>2018-07-13</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/development/embedding-sling.html</loc><lastmod>2018-07-13</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/development/htl-maven-plugin.html</loc><lastmod>2017-09-29</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/development/jcr-mock.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/development/maven-archetypes.html</loc><lastmod>2018-03-31</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/development/monitoring-requests.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/development/repository-based-development.html</loc><lastmod>2017-10-07</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/development/sling.html</loc><lastmod>2019-01-14</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/development.html</loc><lastmod>2020-11-30</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/feature-model/howtos/kickstart.html</loc><lastmod>2020-06-18</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/the-sling-engine/architecture.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
+        <loc>https://sling.apache.org/documentation/the-sling-engine/default-mapping-and-rendering.html</loc><lastmod>2017-09-29</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/the-sling-engine.html</loc><lastmod>2017-09-29</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/news/sling-11-released.html</loc><lastmod>2018-10-23</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/old-stuff/launch-sling.html</loc><lastmod>2017-09-29</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/old-stuff.html</loc><lastmod>2017-09-29</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/bundles/sling-query/operators.html</loc><lastmod>2017-09-29</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/bundles/xml-support.html</loc><lastmod>2017-11-22</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/development/feature-model.html</loc><lastmod>2020-06-18</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/development/jspc.html</loc><lastmod>2017-09-29</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/development/null-analysis.html</loc><lastmod>2018-08-18</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/feature-model/howtos/sling-with-custom-project.html</loc><lastmod>2020-06-18</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/the-sling-engine/authentication/authentication-actors.html</loc><lastmod>2017-11-22</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/the-sling-engine/dispatching-requests.html</loc><lastmod>2018-07-13</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/the-sling-engine/service-authentication.html</loc><lastmod>2021-04-21</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/tutorials-how-tos/46-line-blog.html</loc><lastmod>2017-11-22</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/errors/403.html</loc><lastmod>2017-10-07</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/old-stuff/request-processing.html</loc><lastmod>2018-07-13</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/project-information/apache-sling-community-roles-and-processes.html</loc><lastmod>2017-09-29</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/bundles/sling-query/selectors.html</loc><lastmod>2017-09-29</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/bundles.html</loc><lastmod>2021-07-13</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/development/getting-and-building-sling.html</loc><lastmod>2018-02-03</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/development/jsr-305.html</loc><lastmod>2018-08-18</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/development/osgi-mock.html</loc><lastmod>2019-03-17</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/development/testing-paxexam.html</loc><lastmod>2021-06-16</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/getting-started/discover-sling-in-15-minutes.html</loc><lastmod>2019-07-09</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/the-sling-engine/authentication/authentication-authenticationhandler/form-based-authenticationhandler.html</loc><lastmod>2018-07-13</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/the-sling-engine/errorhandling.html</loc><lastmod>2017-11-22</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/the-sling-engine/servlets.html</loc><lastmod>2021-11-22</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/tutorials-how-tos/getting-resources-and-properties-in-sling.html</loc><lastmod>2018-01-05</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/errors/404.html</loc><lastmod>2018-12-19</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/news/sling-ide-tooling-11-released.html</loc><lastmod>2017-09-29</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/old-stuff/run-modes-org-apache-sling-runmode.html</loc><lastmod>2018-07-17</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/project-information/project-license.html</loc><lastmod>2017-09-29</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/bundles/sling-query/vs-jcr.html</loc><lastmod>2017-09-29</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/configuration.html</loc><lastmod>2019-07-26</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/development/hamcrest.html</loc><lastmod>2021-11-23</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/development/logging.html</loc><lastmod>2018-07-17</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/development/version-policy.html</loc><lastmod>2018-07-13</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/getting-started.html</loc><lastmod>2018-10-23</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/the-sling-engine/authentication/authentication-authenticationhandler/openid-authenticationhandler.html</loc><lastmod>2018-07-13</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/the-sling-engine/featureflags.html</loc><lastmod>2018-07-13</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/the-sling-engine/sling-api-crud-support.html</loc><lastmod>2021-11-23</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/tutorials-how-tos/how-to-manage-events-in-sling.html</loc><lastmod>2018-07-17</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/guides.html</loc><lastmod>2017-09-29</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/news/sling-ide-tooling-12-released.html</loc><lastmod>2018-01-21</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/old-stuff/scriptengineintegration/groovy-support.html</loc><lastmod>2017-09-29</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/project-information/project-team.html</loc><lastmod>2018-07-13</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/bundles/sling-query.html</loc><lastmod>2020-06-16</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/development/client-request-logging.html</loc><lastmod>2018-07-13</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/development/htl-maven-plugin.html</loc><lastmod>2017-09-29</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/development/maven-archetypes.html</loc><lastmod>2018-03-31</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/development/repository-based-development.html</loc><lastmod>2017-10-07</lastmod>
+    </url><url>
+        <loc>https://sling.apache.org/documentation/development.html</loc><lastmod>2020-11-30</lastmod>
+    </url><url>
         <loc>https://sling.apache.org/documentation/the-sling-engine/authentication/authentication-authenticationhandler.html</loc><lastmod>2018-07-13</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/the-sling-engine/default-mapping-and-rendering.html</loc><lastmod>2017-09-29</lastmod>
+        <loc>https://sling.apache.org/documentation/the-sling-engine/filters.html</loc><lastmod>2021-03-02</lastmod>
     </url><url>
         <loc>https://sling.apache.org/documentation/the-sling-engine/sling-properties.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/documentation/the-sling-engine.html</loc><lastmod>2017-09-29</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/documentation/tutorials-how-tos/installing-and-upgrading-bundles.html</loc><lastmod>2018-06-01</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/news/sling-11-released.html</loc><lastmod>2018-10-23</lastmod>
+        <loc>https://sling.apache.org/index.html</loc><lastmod>2021-07-30</lastmod>
     </url><url>
         <loc>https://sling.apache.org/news/sling-launchpad-8-released.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/old-stuff/launch-sling.html</loc><lastmod>2017-09-29</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/old-stuff/scriptengineintegration/xslt-processing-pipeline.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
-        <loc>https://sling.apache.org/old-stuff.html</loc><lastmod>2017-09-29</lastmod>
-    </url><url>
         <loc>https://sling.apache.org/project-information/security.html</loc><lastmod>2017-09-29</lastmod>
     </url><url>
         <loc>https://sling.apache.org/sitemap.html</loc><lastmod>2021-07-26</lastmod>