INT-672 Added support for the 'channel-resolver' attribute on <router/> elements.
This commit is contained in:
@@ -49,10 +49,13 @@ public class DefaultRouterParser extends AbstractRouterParser {
|
||||
String method = element.getAttribute(METHOD_ATTRIBUTE);
|
||||
builder.addPropertyValue("targetMethodName", method);
|
||||
}
|
||||
BeanDefinitionBuilder resolverBuilder = BeanDefinitionBuilder.genericBeanDefinition(
|
||||
IntegrationNamespaceUtils.BASE_PACKAGE + ".channel.BeanFactoryChannelResolver");
|
||||
String resolverBeanName = BeanDefinitionReaderUtils.registerWithGeneratedName(
|
||||
resolverBuilder.getBeanDefinition(), parserContext.getRegistry());
|
||||
String resolverBeanName = element.getAttribute("channel-resolver");
|
||||
if (!StringUtils.hasText(resolverBeanName)) {
|
||||
BeanDefinitionBuilder resolverBuilder = BeanDefinitionBuilder.genericBeanDefinition(
|
||||
IntegrationNamespaceUtils.BASE_PACKAGE + ".channel.BeanFactoryChannelResolver");
|
||||
resolverBeanName = BeanDefinitionReaderUtils.registerWithGeneratedName(
|
||||
resolverBuilder.getBeanDefinition(), parserContext.getRegistry());
|
||||
}
|
||||
builder.addPropertyReference("channelResolver", resolverBeanName);
|
||||
}
|
||||
|
||||
|
||||
@@ -914,7 +914,6 @@
|
||||
Spring-managed object as specified by the "ref" and "method" attributes.
|
||||
]]></xsd:documentation>
|
||||
</xsd:annotation>
|
||||
|
||||
<xsd:complexType>
|
||||
<xsd:complexContent>
|
||||
<xsd:extension base="routerType">
|
||||
@@ -931,6 +930,20 @@
|
||||
</xsd:annotation>
|
||||
</xsd:attribute>
|
||||
<xsd:attribute name="method" type="xsd:string" />
|
||||
<xsd:attribute name="channel-resolver" type="xsd:string">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation><![CDATA[
|
||||
Provides a reference to a ChannelResolver that resolves the return value
|
||||
to the name of a MessageChannel within the application context. If none
|
||||
is provided, the return value is expected to match a channel name exactly.
|
||||
]]></xsd:documentation>
|
||||
<xsd:appinfo>
|
||||
<tool:annotation kind="ref">
|
||||
<tool:expected-type type="org.springframework.integration.channel.ChannelResolver"/>
|
||||
</tool:annotation>
|
||||
</xsd:appinfo>
|
||||
</xsd:annotation>
|
||||
</xsd:attribute>
|
||||
</xsd:extension>
|
||||
</xsd:complexContent>
|
||||
</xsd:complexType>
|
||||
|
||||
Reference in New Issue
Block a user