You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ra...@apache.org on 2013/01/16 01:33:37 UTC
svn commit: r1433767 - in /camel/trunk/components/camel-jms: ./
src/main/java/org/apache/camel/component/jms/DefaultJmsMessageListenerContainer.java
Author: raulk
Date: Wed Jan 16 00:33:36 2013
New Revision: 1433767
URL: http://svn.apache.org/viewvc?rev=1433767&view=rev
Log:
CAMEL-5974 camel-jms: Make ThreadPoolTaskExecutor the default Task Executor
Modified:
camel/trunk/components/camel-jms/ (props changed)
camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultJmsMessageListenerContainer.java
Propchange: camel/trunk/components/camel-jms/
------------------------------------------------------------------------------
Merged /camel/branches/camel-2.10.x/components/camel-jms:r1433765
Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultJmsMessageListenerContainer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultJmsMessageListenerContainer.java?rev=1433767&r1=1433766&r2=1433767&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultJmsMessageListenerContainer.java (original)
+++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultJmsMessageListenerContainer.java Wed Jan 16 00:33:36 2013
@@ -16,10 +16,11 @@
*/
package org.apache.camel.component.jms;
+import org.apache.camel.spi.ExecutorServiceManager;
import org.apache.camel.util.concurrent.CamelThreadFactory;
-import org.springframework.core.task.SimpleAsyncTaskExecutor;
import org.springframework.core.task.TaskExecutor;
import org.springframework.jms.listener.DefaultMessageListenerContainer;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
/**
* The default {@link DefaultMessageListenerContainer container} which listen for messages
@@ -28,7 +29,7 @@ import org.springframework.jms.listener.
* This implementation extends Springs {@link DefaultMessageListenerContainer} supporting
* automatic recovery and throttling.
*
- * @version
+ * @version
*/
public class DefaultJmsMessageListenerContainer extends DefaultMessageListenerContainer {
@@ -46,18 +47,26 @@ public class DefaultJmsMessageListenerCo
/**
* Create a default TaskExecutor. Called if no explicit TaskExecutor has been specified.
- * <p>The default implementation builds a {@link org.springframework.core.task.SimpleAsyncTaskExecutor}
- * with the specified bean name and using Camel's {@link org.apache.camel.spi.ExecutorServiceManager}
+ * <p>The default implementation builds a {@link ThreadPoolTaskExecutor} with the following parameters:
+ * <ul>
+ * <li>corePoolSize = concurrentConsumers</li>
+ * <li>maxPoolSize = maxConcurrentConsumers</li>
+ * </ul>
+ * It uses the specified bean name and Camel's {@link org.apache.camel.spi.ExecutorServiceManager}
* to resolve the thread name.
- * @see org.springframework.core.task.SimpleAsyncTaskExecutor#SimpleAsyncTaskExecutor(String)
+ * @see ThreadPoolTaskExecutor#setBeanName(String)
*/
@Override
protected TaskExecutor createDefaultTaskExecutor() {
- String pattern = endpoint.getCamelContext().getExecutorServiceManager().getThreadNamePattern();
+ ExecutorServiceManager esm = endpoint.getCamelContext().getExecutorServiceManager();
+ String pattern = esm.getThreadNamePattern();
String beanName = getBeanName();
- SimpleAsyncTaskExecutor answer = new SimpleAsyncTaskExecutor(beanName);
+ ThreadPoolTaskExecutor answer = new ThreadPoolTaskExecutor();
+ answer.setBeanName(beanName);
answer.setThreadFactory(new CamelThreadFactory(pattern, beanName, true));
+ answer.setCorePoolSize(endpoint.getConcurrentConsumers());
+ answer.setMaxPoolSize(endpoint.getMaxConcurrentConsumers());
return answer;
}