Author: davsclaus
Date: Tue Oct 12 07:14:13 2010
New Revision: 1021642

URL: http://svn.apache.org/viewvc?rev=1021642&view=rev
Log:
CAMEL-3220: Fixed threads which now accepts 0 as core pool size.

Added:
    
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ThreadsZeroInCoreAndMaxPoolTest.java
      - copied, changed from r1021617, 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ThreadsCoreAndMaxPoolTest.java
Modified:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThreadsDefinition.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThreadsDefinition.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThreadsDefinition.java?rev=1021642&r1=1021641&r2=1021642&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThreadsDefinition.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThreadsDefinition.java
 Tue Oct 12 07:14:13 2010
@@ -70,32 +70,28 @@ public class ThreadsDefinition extends O
 
     @Override
     public Processor createProcessor(RouteContext routeContext) throws 
Exception {
-        // The threads name
+        // the threads name
         String name = getThreadName() != null ? getThreadName() : "Threads";
 
         // prefer any explicit configured executor service
         executorService = 
ExecutorServiceHelper.getConfiguredExecutorService(routeContext, name, this);
+        // if no explicit then create from the options
         if (executorService == null) {
-            // none was configured so create an executor based on the other 
parameters
-            if (poolSize == null || poolSize <= 0) {
-                // use the cached thread pool
-                executorService = 
routeContext.getCamelContext().getExecutorServiceStrategy().newDefaultThreadPool(this,
 name);
-            } else {
-                ThreadPoolProfile profile = 
routeContext.getCamelContext().getExecutorServiceStrategy().getDefaultThreadPoolProfile();
-                // use the default thread pool profile as base and then 
override with values
-                // use a custom pool based on the settings
-                int max = getMaxPoolSize() != null ? getMaxPoolSize() : 
profile.getMaxPoolSize();
-                long keepAlive = getKeepAliveTime() != null ? 
getKeepAliveTime() : profile.getKeepAliveTime();
-                int maxQueue = getMaxQueueSize() != null ? getMaxQueueSize() : 
profile.getMaxQueueSize();
-                TimeUnit tu = getTimeUnit() != null ? getTimeUnit() : 
profile.getTimeUnit();
-                RejectedExecutionHandler rejected = 
profile.getRejectedExecutionHandler();
-                if (rejectedPolicy != null) {
-                    rejected = rejectedPolicy.asRejectedExecutionHandler();
-                }
-
-                executorService = 
routeContext.getCamelContext().getExecutorServiceStrategy()
-                                        .newThreadPool(this, name, poolSize, 
max, keepAlive, tu, maxQueue, rejected, true);
+            ThreadPoolProfile profile = 
routeContext.getCamelContext().getExecutorServiceStrategy().getDefaultThreadPoolProfile();
+            // use the default thread pool profile as base and then override 
with values
+            // use a custom pool based on the settings
+            int core = getPoolSize() != null ? getPoolSize() : 
profile.getPoolSize();
+            int max = getMaxPoolSize() != null ? getMaxPoolSize() : 
profile.getMaxPoolSize();
+            long keepAlive = getKeepAliveTime() != null ? getKeepAliveTime() : 
profile.getKeepAliveTime();
+            int maxQueue = getMaxQueueSize() != null ? getMaxQueueSize() : 
profile.getMaxQueueSize();
+            TimeUnit tu = getTimeUnit() != null ? getTimeUnit() : 
profile.getTimeUnit();
+            RejectedExecutionHandler rejected = 
profile.getRejectedExecutionHandler();
+            if (rejectedPolicy != null) {
+                rejected = rejectedPolicy.asRejectedExecutionHandler();
             }
+
+            executorService = 
routeContext.getCamelContext().getExecutorServiceStrategy()
+                                    .newThreadPool(this, name, core, max, 
keepAlive, tu, maxQueue, rejected, true);
         }
 
         ThreadsProcessor thread = new 
ThreadsProcessor(routeContext.getCamelContext(), executorService);

Copied: 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ThreadsZeroInCoreAndMaxPoolTest.java
 (from r1021617, 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ThreadsCoreAndMaxPoolTest.java)
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ThreadsZeroInCoreAndMaxPoolTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ThreadsZeroInCoreAndMaxPoolTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ThreadsCoreAndMaxPoolTest.java&r1=1021617&r2=1021642&rev=1021642&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ThreadsCoreAndMaxPoolTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ThreadsZeroInCoreAndMaxPoolTest.java
 Tue Oct 12 07:14:13 2010
@@ -22,7 +22,7 @@ import org.apache.camel.builder.RouteBui
 /**
  * @version $Revision$
  */
-public class ThreadsCoreAndMaxPoolTest extends ContextTestSupport {
+public class ThreadsZeroInCoreAndMaxPoolTest extends ContextTestSupport {
 
     public void testThreadsCoreAndMaxPool() throws Exception {
         getMockEndpoint("mock:result").expectedMessageCount(1);
@@ -46,13 +46,13 @@ public class ThreadsCoreAndMaxPoolTest e
             @Override
             public void configure() throws Exception {
                 from("direct:start")
-                    // will use a a custom thread pool with 5 in core and 10 
as max
-                    .threads(5, 10)
+                    // will use a a custom thread pool with 0 in core and 2 max
+                    .threads(0, 2)
                     .to("mock:result");
 
                 from("direct:foo")
-                    // using the builder style
-                    .threads().poolSize(5).maxPoolSize(10).threadName("myPool")
+                    // only change thread name and max, but rely on default 
settings
+                    .threads().maxPoolSize(20).threadName("myPool")
                     .to("mock:result");
             }
         };


Reply via email to