Added namespace support for publish-subscribe channel.

This commit is contained in:
Mark Fisher
2008-01-16 03:21:50 +00:00
parent 3254c132d2
commit 45d1332659
5 changed files with 100 additions and 11 deletions

View File

@@ -37,12 +37,7 @@ public class ChannelParser implements BeanDefinitionParser {
private static final String CAPACITY_ATTRIBUTE = "capacity";
private boolean isBroadcaster;
public ChannelParser(boolean isBroadcaster) {
this.isBroadcaster = isBroadcaster;
}
private static final String PUBLISH_SUBSCRIBE_ATTRIBUTE = "publish-subscribe";
public BeanDefinition parse(Element element, ParserContext parserContext) {
@@ -52,7 +47,8 @@ public class ChannelParser implements BeanDefinitionParser {
if (StringUtils.hasText(capacity)) {
channelDef.getConstructorArgumentValues().addGenericArgumentValue(Integer.parseInt(capacity));
}
if (this.isBroadcaster) {
String isPublishSubscribe = element.getAttribute(PUBLISH_SUBSCRIBE_ATTRIBUTE);
if ("true".equals(isPublishSubscribe)) {
channelDef.getPropertyValues().addPropertyValue("broadcaster", Boolean.TRUE);
}
String beanName = element.getAttribute(ID_ATTRIBUTE);

View File

@@ -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(false));
registerBeanDefinitionParser("channel", new ChannelParser());
registerBeanDefinitionParser("source-adapter", new ChannelAdapterParser(true));
registerBeanDefinitionParser("target-adapter", new ChannelAdapterParser(false));
registerBeanDefinitionParser("endpoint", new EndpointParser());

View File

@@ -49,6 +49,7 @@
<xsd:complexContent>
<xsd:extension base="beans:identifiedType">
<xsd:attribute name="capacity" type="xsd:integer"/>
<xsd:attribute name="publish-subscribe" type="xsd:boolean" default="false"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>