From 9466afadd6d71db5ff7f1d048cfc9d23739773e7 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Mon, 16 May 2011 23:13:43 -0400 Subject: [PATCH] INT-929 reverting MethodInvokingOutboundChannelAdapterParser to the state before accidental push --- ...odInvokingOutboundChannelAdapterParser.java | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/xml/MethodInvokingOutboundChannelAdapterParser.java b/spring-integration-core/src/main/java/org/springframework/integration/config/xml/MethodInvokingOutboundChannelAdapterParser.java index 214ba1fe60..ab35b765d3 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/config/xml/MethodInvokingOutboundChannelAdapterParser.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/config/xml/MethodInvokingOutboundChannelAdapterParser.java @@ -37,14 +37,15 @@ public class MethodInvokingOutboundChannelAdapterParser extends AbstractOutbound protected String parseAndRegisterConsumer(Element element, ParserContext parserContext) { BeanComponentDefinition consumerDefinition = IntegrationNamespaceUtils.parseInnerHandlerDefinition(element, parserContext); String consumerRef = null; + if (consumerDefinition == null){ consumerRef = element.getAttribute(IntegrationNamespaceUtils.REF_ATTRIBUTE); } else { consumerRef = consumerDefinition.getBeanName(); } if (element.hasAttribute(IntegrationNamespaceUtils.METHOD_ATTRIBUTE)) { - AbstractBeanDefinition def = this.parseConsumer(element, parserContext); - consumerRef = BeanDefinitionReaderUtils.registerWithGeneratedName(def, parserContext.getRegistry()); + consumerRef = BeanDefinitionReaderUtils.registerWithGeneratedName( + this.parseConsumer(element, parserContext), parserContext.getRegistry()); } Assert.hasText(consumerRef, "Can not determine consumer for 'outbound-channel-adapter'"); return consumerRef; @@ -58,28 +59,19 @@ public class MethodInvokingOutboundChannelAdapterParser extends AbstractOutbound invokerBuilder.addPropertyValue("componentType", "outbound-channel-adapter"); BeanComponentDefinition innerHandlerDefinition = IntegrationNamespaceUtils.parseInnerHandlerDefinition(element, parserContext); - if (innerHandlerDefinition == null){ Assert.hasText(element.getAttribute(IntegrationNamespaceUtils.REF_ATTRIBUTE), - "You must provide 'ref' attribute or register inner bean or use 'expression' atribute for " + + "You must provide 'ref' attribute or register inner bean for " + "Outbound Channel consumer."); invokerBuilder.addConstructorArgReference(element.getAttribute(IntegrationNamespaceUtils.REF_ATTRIBUTE)); } else { invokerBuilder.addConstructorArgValue(innerHandlerDefinition); } - String methodName = element.getAttribute(IntegrationNamespaceUtils.METHOD_ATTRIBUTE); - if (StringUtils.hasText(methodName)){ - invokerBuilder.addConstructorArgValue(methodName); - } - else { - parserContext.getReaderContext().error("'outbound-channel-adapter' must define 'method' attribute", element); - } - + invokerBuilder.addConstructorArgValue(element.getAttribute(IntegrationNamespaceUtils.METHOD_ATTRIBUTE)); String order = element.getAttribute(IntegrationNamespaceUtils.ORDER); if (StringUtils.hasText(order)) { invokerBuilder.addPropertyValue(IntegrationNamespaceUtils.ORDER, order); } return invokerBuilder.getBeanDefinition(); } - }