Improve CMS workspace indexer.
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / kernel / Activator.java
index d7b953b5389eae6a4cecbb5b4bbe336c3aea6131..5728d4fa56386bbddc938604dc315511dbd25ba1 100644 (file)
@@ -8,6 +8,8 @@ import java.security.AllPermission;
 import java.util.Dictionary;
 import java.util.List;
 import java.util.Locale;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 
 import javax.security.auth.login.Configuration;
 
@@ -58,6 +60,7 @@ public class Activator implements BundleActivator {
        private CmsInstance nodeInstance;
 
        private ServiceTracker<UserAdmin, NodeUserAdmin> userAdminSt;
+       private ExecutorService internalExecutorService;
 
        @Override
        public void start(BundleContext bundleContext) throws Exception {
@@ -65,6 +68,7 @@ public class Activator implements BundleActivator {
                instance = this;
                this.bc = bundleContext;
                this.logReaderService = getService(LogReaderService.class);
+               this.internalExecutorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
 
                try {
                        initSecurity();
@@ -168,6 +172,7 @@ public class Activator implements BundleActivator {
                        if (userAdminSt != null)
                                userAdminSt.close();
 
+                       internalExecutorService.shutdown();
                        instance = null;
                        this.bc = null;
                        this.logReaderService = null;
@@ -229,6 +234,10 @@ public class Activator implements BundleActivator {
 
        }
 
+       static ExecutorService getInternalExecutorService() {
+               return instance.internalExecutorService;
+       }
+
        // static CmsSecurity getCmsSecurity() {
        // return instance.nodeSecurity;
        // }