diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/ChannelParser.java b/spring-integration-core/src/main/java/org/springframework/integration/config/ChannelParser.java index 230532e778..a34c38cb42 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/config/ChannelParser.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/config/ChannelParser.java @@ -37,6 +37,13 @@ public class ChannelParser implements BeanDefinitionParser { private static final String CAPACITY_ATTRIBUTE = "capacity"; + private boolean isBroadcaster; + + + public ChannelParser(boolean isBroadcaster) { + this.isBroadcaster = isBroadcaster; + } + public BeanDefinition parse(Element element, ParserContext parserContext) { RootBeanDefinition channelDef = new RootBeanDefinition(SimpleChannel.class); @@ -45,6 +52,9 @@ public class ChannelParser implements BeanDefinitionParser { if (StringUtils.hasText(capacity)) { channelDef.getConstructorArgumentValues().addGenericArgumentValue(Integer.parseInt(capacity)); } + if (this.isBroadcaster) { + channelDef.getPropertyValues().addPropertyValue("broadcaster", Boolean.TRUE); + } String beanName = element.getAttribute(ID_ATTRIBUTE); if (!StringUtils.hasText(beanName)) { beanName = parserContext.getReaderContext().generateBeanName(channelDef); diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/IntegrationNamespaceHandler.java b/spring-integration-core/src/main/java/org/springframework/integration/config/IntegrationNamespaceHandler.java index c3fe2fce70..9696ef737e 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/config/IntegrationNamespaceHandler.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/config/IntegrationNamespaceHandler.java @@ -32,7 +32,7 @@ public class IntegrationNamespaceHandler extends NamespaceHandlerSupport { public void init() { registerBeanDefinitionParser("message-bus", new MessageBusParser()); registerBeanDefinitionParser("annotation-driven", new AnnotationDrivenParser()); - registerBeanDefinitionParser("channel", new ChannelParser()); + registerBeanDefinitionParser("channel", new ChannelParser(false)); registerBeanDefinitionParser("source-adapter", new ChannelAdapterParser(true)); registerBeanDefinitionParser("target-adapter", new ChannelAdapterParser(false)); registerBeanDefinitionParser("endpoint", new EndpointParser());