From 2f009b607bf41ace46ab94d53a0124a6a61a7e6a Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Thu, 16 Oct 2008 01:03:52 +0000 Subject: [PATCH] Creating the TaskScheduler as a bean definition within the context in MessageBusParser instead of instantiating with a constructor call. --- .../integration/config/xml/MessageBusParser.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/MessageBusParser.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/MessageBusParser.java index 886bc52a30..459c160da3 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/MessageBusParser.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/MessageBusParser.java @@ -111,7 +111,14 @@ public class MessageBusParser extends AbstractSimpleBeanDefinitionParser { } else { taskExecutor = this.createTaskExecutor(100, "message-bus-"); - builder.addPropertyValue("taskScheduler", new SimpleTaskScheduler(taskExecutor)); + BeanDefinitionBuilder schedulerBuilder = BeanDefinitionBuilder.genericBeanDefinition(SimpleTaskScheduler.class); + schedulerBuilder.addConstructorArgValue(taskExecutor); + // TODO: define bean name as a constant elsewhere + String TASK_SCHEDULER_BEAN_NAME = "taskScheduler"; + BeanDefinitionHolder schedulerHolder = new BeanDefinitionHolder( + schedulerBuilder.getBeanDefinition(), TASK_SCHEDULER_BEAN_NAME); + BeanDefinitionReaderUtils.registerBeanDefinition(schedulerHolder, parserContext.getRegistry()); + builder.addPropertyReference("taskScheduler", TASK_SCHEDULER_BEAN_NAME); } if ("true".equals(element.getAttribute(ASYNC_EVENT_MULTICASTER_ATTRIBUTE).toLowerCase())) { if (taskExecutor == null) {