Creating child ParserContext with containingBeanDefinition to prevent extra bean definition registrations when parsing the child elements.
This commit is contained in:
@@ -44,10 +44,12 @@ public class ChainParser extends AbstractConsumerEndpointParser {
|
||||
BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(MessageHandlerChain.class);
|
||||
ManagedList handlerList = new ManagedList();
|
||||
NodeList children = element.getChildNodes();
|
||||
ParserContext childContext = new ParserContext(
|
||||
parserContext.getReaderContext(), parserContext.getDelegate(), builder.getBeanDefinition());
|
||||
for (int i = 0; i < children.getLength(); i++) {
|
||||
Node child = children.item(i);
|
||||
if (child.getNodeType() == Node.ELEMENT_NODE) {
|
||||
String childBeanName = this.parseChild((Element) child, parserContext);
|
||||
String childBeanName = this.parseChild((Element) child, childContext);
|
||||
handlerList.add(new RuntimeBeanReference(childBeanName));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user