This is an automated email from the ASF dual-hosted git repository. orpiske pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
commit 00d7093be2fd37f5ba3eeebbe94a7514bbbf61f5 Author: Otavio R. Piske <angusyo...@gmail.com> AuthorDate: Sat Jan 27 20:25:51 2024 +0100 (chores) camel-jms: simplify overly complex methods Signed-off-by: Otavio R. Piske <angusyo...@gmail.com> --- .../jms/DefaultJmsMessageListenerContainer.java | 36 +++++++++++++--------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultJmsMessageListenerContainer.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultJmsMessageListenerContainer.java index 4cf0c4a8ede..cb89cc573c3 100644 --- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultJmsMessageListenerContainer.java +++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultJmsMessageListenerContainer.java @@ -97,27 +97,35 @@ public class DefaultJmsMessageListenerContainer extends DefaultMessageListenerCo TaskExecutor answer; if (endpoint.getDefaultTaskExecutorType() == DefaultTaskExecutorType.ThreadPool) { - ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); - executor.setBeanName(beanName); - executor.setThreadFactory(new CamelThreadFactory(pattern, beanName, true)); - executor.setCorePoolSize(endpoint.getConcurrentConsumers()); - // Direct hand-off mode. Do not queue up tasks: assign it to a thread immediately. - // We set no upper-bound on the thread pool (no maxPoolSize) as it's already implicitly constrained by - // maxConcurrentConsumers on the DMLC itself (i.e. DMLC will only grow up to a level of concurrency as - // defined by maxConcurrentConsumers). - executor.setQueueCapacity(0); - executor.initialize(); - answer = executor; + answer = createThreadPoolExecutor(beanName, pattern); } else { - SimpleAsyncTaskExecutor executor = new SimpleAsyncTaskExecutor(beanName); - executor.setThreadFactory(new CamelThreadFactory(pattern, beanName, true)); - answer = executor; + answer = createAsyncTaskExecutor(beanName, pattern); } taskExecutor = answer; return answer; } + private static TaskExecutor createAsyncTaskExecutor(String beanName, String pattern) { + SimpleAsyncTaskExecutor executor = new SimpleAsyncTaskExecutor(beanName); + executor.setThreadFactory(new CamelThreadFactory(pattern, beanName, true)); + return executor; + } + + private TaskExecutor createThreadPoolExecutor(String beanName, String pattern) { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + executor.setBeanName(beanName); + executor.setThreadFactory(new CamelThreadFactory(pattern, beanName, true)); + executor.setCorePoolSize(endpoint.getConcurrentConsumers()); + // Direct hand-off mode. Do not queue up tasks: assign it to a thread immediately. + // We set no upper-bound on the thread pool (no maxPoolSize) as it's already implicitly constrained by + // maxConcurrentConsumers on the DMLC itself (i.e. DMLC will only grow up to a level of concurrency as + // defined by maxConcurrentConsumers). + executor.setQueueCapacity(0); + executor.initialize(); + return executor; + } + @Override public void stop() throws JmsException { if (logger.isDebugEnabled()) {