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

pauls pushed a commit to branch SLING-12057
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-core.git

commit 0f6f8438927bd01e8fd0e6e42afaa55cbf9aee83
Author: Karl Pauls <karlpa...@gmail.com>
AuthorDate: Mon Dec 4 15:07:57 2023 +0100

    SLING-12057: Replace commons.threads with Executor and embed 
commons.compiler.source
---
 bnd.bnd                                                |  2 +-
 .../sling/scripting/core/impl/ScriptCacheImpl.java     | 18 +++++++++++-------
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/bnd.bnd b/bnd.bnd
index 80c64c7..20f9145 100644
--- a/bnd.bnd
+++ b/bnd.bnd
@@ -3,7 +3,7 @@ Import-Package:\
   *
 
 Conditional-Package:\
-  org.apache.felix.utils.json.*
+  org.apache.felix.utils.json.*,org.apache.sling.commons.compiler.source.*
 
 -exportcontents: ${packages;VERSIONED}
 
diff --git 
a/src/main/java/org/apache/sling/scripting/core/impl/ScriptCacheImpl.java 
b/src/main/java/org/apache/sling/scripting/core/impl/ScriptCacheImpl.java
index 579e11f..ae93f4a 100644
--- a/src/main/java/org/apache/sling/scripting/core/impl/ScriptCacheImpl.java
+++ b/src/main/java/org/apache/sling/scripting/core/impl/ScriptCacheImpl.java
@@ -27,6 +27,9 @@ import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
@@ -39,8 +42,6 @@ import 
org.apache.sling.api.resource.observation.ExternalResourceChangeListener;
 import org.apache.sling.api.resource.observation.ResourceChange;
 import org.apache.sling.api.resource.observation.ResourceChange.ChangeType;
 import org.apache.sling.api.resource.observation.ResourceChangeListener;
-import org.apache.sling.commons.threads.ThreadPool;
-import org.apache.sling.commons.threads.ThreadPoolManager;
 import org.apache.sling.scripting.api.CachedScript;
 import org.apache.sling.scripting.api.ScriptCache;
 import org.apache.sling.scripting.core.impl.helper.CachingMap;
@@ -91,13 +92,11 @@ public class ScriptCacheImpl implements ScriptCache, 
ResourceChangeListener, Ext
     @Reference
     private ResourceResolverFactory rrf;
 
-    @Reference
-    private ThreadPoolManager threadPoolManager;
 
     @Reference
     private SlingScriptEngineManager slingScriptEngineManager;
 
-    private ThreadPool threadPool;
+    private volatile ExecutorService threadPool;
     private final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();
     private final Lock readLock = rwl.readLock();
     private final Lock writeLock = rwl.writeLock();
@@ -201,7 +200,7 @@ public class ScriptCacheImpl implements ScriptCache, 
ResourceChangeListener, Ext
 
     @Activate
     protected void activate(ScriptCacheImplConfiguration configuration, 
BundleContext bundleCtx) {
-        threadPool = threadPoolManager.get("Script Cache Thread Pool");
+        threadPool = Executors.newSingleThreadExecutor();
         bundleContext = bundleCtx;
         additionalExtensions = 
configuration.org_apache_sling_scripting_cache_additional__extensions();
         int newMaxCacheSize = 
configuration.org_apache_sling_scripting_cache_size();
@@ -260,7 +259,12 @@ public class ScriptCacheImpl implements ScriptCache, 
ResourceChangeListener, Ext
                 resourceChangeListener = null;
             }
             if (threadPool != null) {
-                threadPoolManager.release(threadPool);
+                threadPool.shutdown();
+                try {
+                    threadPool.awaitTermination(1, TimeUnit.SECONDS);
+                } catch (InterruptedException e) {
+                    logger.warn("Unable to shutdown script cache thread in 
time");
+                }
                 threadPool = null;
             }
             active = false;

Reply via email to