From cadacde2a3eb109b53247e92198e5268d4304d62 Mon Sep 17 00:00:00 2001 From: rfeng Date: Fri, 19 Feb 2010 23:39:06 +0000 Subject: Make the maxThreads a configurable property of WorkScheduler git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@912035 13f79535-47bb-0310-9956-ffa450edef68 --- .../tuscany/sca/core/work/impl/DefaultWorkScheduler.java | 13 +++++++++++-- .../tuscany/sca/core/work/impl/ThreadPoolWorkManager.java | 2 +- .../services/org.apache.tuscany.sca.work.WorkScheduler | 4 +--- .../sca/core/work/impl/Jsr237WorkSchedulerTestCase.java | 2 +- 4 files changed, 14 insertions(+), 7 deletions(-) (limited to 'sca-java-2.x/trunk/modules/core/src') diff --git a/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/work/impl/DefaultWorkScheduler.java b/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/work/impl/DefaultWorkScheduler.java index 9e6f3b3087..380ca818c5 100644 --- a/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/work/impl/DefaultWorkScheduler.java +++ b/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/work/impl/DefaultWorkScheduler.java @@ -20,7 +20,9 @@ package org.apache.tuscany.sca.core.work.impl; import java.security.AccessController; import java.security.PrivilegedAction; +import java.util.Map; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.core.LifeCycleListener; import org.apache.tuscany.sca.work.NotificationListener; import org.apache.tuscany.sca.work.WorkScheduler; @@ -43,13 +45,20 @@ public class DefaultWorkScheduler implements WorkScheduler, LifeCycleListener { * Underlying JSR-237 work manager */ private ThreadPoolWorkManager jsr237WorkManager; + private int maxThreads = 0; /** * Initializes the JSR 237 work manager. * * @param jsr237WorkManager JSR 237 work manager. */ - public DefaultWorkScheduler() { + public DefaultWorkScheduler(ExtensionPointRegistry registry, Map attributes) { + if (attributes != null) { + String value = attributes.get("maxThreads"); + if (value != null) { + maxThreads = Integer.parseInt(value.trim()); + } + } } private synchronized ThreadPoolWorkManager getWorkManager() { @@ -63,7 +72,7 @@ public class DefaultWorkScheduler implements WorkScheduler, LifeCycleListener { // // ignore // } if (jsr237WorkManager == null) { - jsr237WorkManager = new ThreadPoolWorkManager(0); + jsr237WorkManager = new ThreadPoolWorkManager(maxThreads); } return jsr237WorkManager; } diff --git a/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/work/impl/ThreadPoolWorkManager.java b/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/work/impl/ThreadPoolWorkManager.java index e7728ca9a9..1cd70c75de 100644 --- a/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/work/impl/ThreadPoolWorkManager.java +++ b/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/work/impl/ThreadPoolWorkManager.java @@ -66,7 +66,7 @@ public class ThreadPoolWorkManager { // creates daemon threads. executor = Executors.newCachedThreadPool(factory); } else { - executor = Executors.newFixedThreadPool(threadPoolSize); + executor = Executors.newFixedThreadPool(threadPoolSize, factory); } } diff --git a/sca-java-2.x/trunk/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.work.WorkScheduler b/sca-java-2.x/trunk/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.work.WorkScheduler index 576e52d8ea..90e887739a 100644 --- a/sca-java-2.x/trunk/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.work.WorkScheduler +++ b/sca-java-2.x/trunk/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.work.WorkScheduler @@ -14,6 +14,4 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. - -org.apache.tuscany.sca.core.work.impl.DefaultWorkScheduler - +org.apache.tuscany.sca.core.work.impl.DefaultWorkScheduler;maxThreads=0 diff --git a/sca-java-2.x/trunk/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/Jsr237WorkSchedulerTestCase.java b/sca-java-2.x/trunk/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/Jsr237WorkSchedulerTestCase.java index c0f35d427c..4ec0f55867 100644 --- a/sca-java-2.x/trunk/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/Jsr237WorkSchedulerTestCase.java +++ b/sca-java-2.x/trunk/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/Jsr237WorkSchedulerTestCase.java @@ -45,7 +45,7 @@ public class Jsr237WorkSchedulerTestCase { */ @BeforeClass public static void setup() { - workSchedular = new DefaultWorkScheduler(); + workSchedular = new DefaultWorkScheduler(null, null); } /** -- cgit v1.2.3