You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by di...@apache.org on 2021/12/30 09:22:08 UTC

[sling-org-apache-sling-sitemap] branch issue/SLING-11036 created (now 83b2757)

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

diru pushed a change to branch issue/SLING-11036
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-sitemap.git.


      at 83b2757  SLING-11036: use dedicated threadpool for scheduled jobs

This branch includes the following new commits:

     new 83b2757  SLING-11036: use dedicated threadpool for scheduled jobs

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[sling-org-apache-sling-sitemap] 01/01: SLING-11036: use dedicated threadpool for scheduled jobs

Posted by di...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

diru pushed a commit to branch issue/SLING-11036
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-sitemap.git

commit 83b27574d3a060925c30f4e0c2f4364eb65553b6
Author: Dirk Rudolph <di...@apache.org>
AuthorDate: Thu Dec 30 10:21:54 2021 +0100

    SLING-11036: use dedicated threadpool for scheduled jobs
---
 .../apache/sling/sitemap/impl/SitemapScheduler.java |  5 ++++-
 .../apache/sling/sitemap/impl/SitemapStorage.java   | 21 +++++++++++----------
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/src/main/java/org/apache/sling/sitemap/impl/SitemapScheduler.java b/src/main/java/org/apache/sling/sitemap/impl/SitemapScheduler.java
index ec6898d..d0fdc72 100644
--- a/src/main/java/org/apache/sling/sitemap/impl/SitemapScheduler.java
+++ b/src/main/java/org/apache/sling/sitemap/impl/SitemapScheduler.java
@@ -48,7 +48,8 @@ import static org.apache.sling.sitemap.SitemapUtil.findSitemapRoots;
         configurationPolicy = ConfigurationPolicy.REQUIRE,
         property = {
                 Scheduler.PROPERTY_SCHEDULER_CONCURRENT + ":Boolean=false",
-                Scheduler.PROPERTY_SCHEDULER_RUN_ON + "=" + Scheduler.VALUE_RUN_ON_SINGLE
+                Scheduler.PROPERTY_SCHEDULER_RUN_ON + "=" + Scheduler.VALUE_RUN_ON_SINGLE,
+                Scheduler.PROPERTY_SCHEDULER_THREAD_POOL + "=" + SitemapScheduler.THREADPOOL_NAME
         }
 )
 @Designate(ocd = SitemapScheduler.Configuration.class, factory = true)
@@ -83,6 +84,8 @@ public class SitemapScheduler implements Runnable {
         String searchPath() default "/content";
     }
 
+    public static final String THREADPOOL_NAME = "org-apache-sling-sitemap";
+
     private static final Logger LOG = LoggerFactory.getLogger(SitemapScheduler.class);
     private static final Map<String, Object> AUTH = Collections.singletonMap(ResourceResolverFactory.SUBSERVICE,
             "sitemap-reader");
diff --git a/src/main/java/org/apache/sling/sitemap/impl/SitemapStorage.java b/src/main/java/org/apache/sling/sitemap/impl/SitemapStorage.java
index 5ba3273..c8fc05e 100644
--- a/src/main/java/org/apache/sling/sitemap/impl/SitemapStorage.java
+++ b/src/main/java/org/apache/sling/sitemap/impl/SitemapStorage.java
@@ -58,7 +58,8 @@ import static org.apache.sling.sitemap.impl.SitemapEventUtil.newUpdateEvent;
         property = {
                 Scheduler.PROPERTY_SCHEDULER_NAME + "=sitemap-storage-cleanup",
                 Scheduler.PROPERTY_SCHEDULER_CONCURRENT + ":Boolean=false",
-                Scheduler.PROPERTY_SCHEDULER_RUN_ON + "=" + Scheduler.VALUE_RUN_ON_SINGLE
+                Scheduler.PROPERTY_SCHEDULER_RUN_ON + "=" + Scheduler.VALUE_RUN_ON_SINGLE,
+                Scheduler.PROPERTY_SCHEDULER_THREAD_POOL + "=" + SitemapScheduler.THREADPOOL_NAME
         }
 )
 @Designate(ocd = SitemapStorage.Configuration.class)
@@ -146,6 +147,7 @@ public class SitemapStorage implements Runnable {
                 }
             }
             for (Resource resource : toDelete) {
+                LOG.debug("Purging: {}", toDelete);
                 resolver.delete(resource);
             }
             resolver.commit();
@@ -323,8 +325,15 @@ public class SitemapStorage implements Runnable {
     public Collection<SitemapStorageInfo> getSitemaps(Resource sitemapRoot, Collection<String> names) {
         try (ResourceResolver resolver = resourceResolverFactory.getServiceResourceResolver(AUTH)) {
             Resource topLevelSitemapRoot = getTopLevelSitemapRoot(sitemapRoot);
-            Predicate<SitemapStorageInfo> filter;
+            String storagePath = rootPath + topLevelSitemapRoot.getPath();
+            Resource storageResource = resolver.getResource(storagePath);
 
+            if (storageResource == null) {
+                LOG.debug("Resource at {} does not exist.", storagePath);
+                return Collections.emptySet();
+            }
+
+            Predicate<SitemapStorageInfo> filter;
             if (!isTopLevelSitemapRoot(sitemapRoot) || !names.isEmpty()) {
                 // return only those that match at least on of the names requested
                 filter = info -> names.stream()
@@ -335,14 +344,6 @@ public class SitemapStorage implements Runnable {
                 filter = any -> true;
             }
 
-            String storagePath = rootPath + topLevelSitemapRoot.getPath();
-            Resource storageResource = resolver.getResource(storagePath);
-
-            if (storageResource == null) {
-                LOG.debug("Resource at {} does not exist.", storagePath);
-                return Collections.emptySet();
-            }
-
             return StreamSupport.stream(storageResource.getChildren().spliterator(), false)
                     .filter(SitemapStorage::isValidSitemapFile)
                     .map(SitemapStorage::newSitemapStorageInfo)