INT-926 inner handler beans are now created with prototype scope to avoid shared singleton for multiple inheritors of same abstract parent (see tests in this commit for an example).

This commit is contained in:
Mark Fisher
2009-12-23 06:56:42 +00:00
parent b7eabf8102
commit be13958da4
3 changed files with 108 additions and 1 deletions

View File

@@ -65,13 +65,14 @@ public class ChainParser extends AbstractConsumerEndpointParser {
parserContext.getReaderContext().error("child BeanDefinition must not be null", element);
}
else {
String beanName = BeanDefinitionReaderUtils.generateBeanName(beanDefinition, parserContext.getRegistry());
String beanName = BeanDefinitionReaderUtils.generateBeanName(beanDefinition, parserContext.getRegistry(), true);
holder = new BeanDefinitionHolder(beanDefinition, beanName);
}
}
if (holder == null) {
return null;
}
holder.getBeanDefinition().setScope(BeanDefinition.SCOPE_PROTOTYPE);
BeanDefinitionReaderUtils.registerBeanDefinition(holder, parserContext.getRegistry());
return holder.getBeanName();
}