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; }