From b9f8b085b084819aa1a67fbdc6ec777d133079ac Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Fri, 21 Nov 2008 17:30:25 +0000 Subject: [PATCH] Removed 'parseAdapter' method from AbstractConsumerEndpointParser. --- .../xml/AbstractConsumerEndpointParser.java | 15 ------------- .../integration/config/xml/FilterParser.java | 19 ++++++++++++++++- .../config/xml/TransformerParser.java | 21 +++++++++++++++++-- 3 files changed, 37 insertions(+), 18 deletions(-) diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/AbstractConsumerEndpointParser.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/AbstractConsumerEndpointParser.java index 62fd65a7b9..2ea1d92317 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/AbstractConsumerEndpointParser.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/AbstractConsumerEndpointParser.java @@ -26,7 +26,6 @@ import org.springframework.beans.factory.xml.ParserContext; import org.springframework.integration.channel.DirectChannel; import org.springframework.integration.config.ConsumerEndpointFactoryBean; import org.springframework.util.Assert; -import org.springframework.util.StringUtils; import org.springframework.util.xml.DomUtils; /** @@ -71,20 +70,6 @@ public abstract class AbstractConsumerEndpointParser extends AbstractSingleBeanD return "input-channel"; } - protected String parseAdapter(Element element, ParserContext parserContext, Class adapterClass) { - String ref = element.getAttribute(REF_ATTRIBUTE); - Assert.hasText(ref, "The '" + REF_ATTRIBUTE + "' attribute is required."); - if (StringUtils.hasText(element.getAttribute(METHOD_ATTRIBUTE))) { - BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(adapterClass); - String method = element.getAttribute(METHOD_ATTRIBUTE); - builder.addConstructorArgReference(ref); - builder.addConstructorArgValue(method); - return BeanDefinitionReaderUtils.registerWithGeneratedName( - builder.getBeanDefinition(), parserContext.getRegistry()); - } - return ref; - } - @Override protected final void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { BeanDefinitionBuilder consumerBuilder = this.parseConsumer(element, parserContext); diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/FilterParser.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/FilterParser.java index d149299352..e0cb5dea17 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/FilterParser.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/FilterParser.java @@ -19,9 +19,12 @@ package org.springframework.integration.config.xml; import org.w3c.dom.Element; import org.springframework.beans.factory.support.BeanDefinitionBuilder; +import org.springframework.beans.factory.support.BeanDefinitionReaderUtils; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.integration.filter.MessageFilter; import org.springframework.integration.filter.MethodInvokingSelector; +import org.springframework.util.Assert; +import org.springframework.util.StringUtils; /** * Parser for the <filter/> element. @@ -33,8 +36,22 @@ public class FilterParser extends AbstractConsumerEndpointParser { @Override protected BeanDefinitionBuilder parseConsumer(Element element, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(MessageFilter.class); - builder.addConstructorArgReference(this.parseAdapter(element, parserContext, MethodInvokingSelector.class)); + builder.addConstructorArgReference(this.parseSelector(element, parserContext)); return builder; } + private String parseSelector(Element element, ParserContext parserContext) { + String ref = element.getAttribute("ref"); + Assert.hasText(ref, "The 'ref' attribute is required."); + String method = element.getAttribute("method"); + if (!StringUtils.hasText(method)) { + return ref; + } + BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(MethodInvokingSelector.class); + builder.addConstructorArgReference(ref); + builder.addConstructorArgValue(method); + return BeanDefinitionReaderUtils.registerWithGeneratedName( + builder.getBeanDefinition(), parserContext.getRegistry()); + } + } diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/TransformerParser.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/TransformerParser.java index 339dd9f8d9..a1c692d3b8 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/TransformerParser.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/TransformerParser.java @@ -19,9 +19,12 @@ package org.springframework.integration.config.xml; import org.w3c.dom.Element; import org.springframework.beans.factory.support.BeanDefinitionBuilder; +import org.springframework.beans.factory.support.BeanDefinitionReaderUtils; import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.integration.transformer.MethodInvokingTransformer; import org.springframework.integration.transformer.MessageTransformingHandler; +import org.springframework.integration.transformer.MethodInvokingTransformer; +import org.springframework.util.Assert; +import org.springframework.util.StringUtils; /** * Parser for the <transformer/> element. @@ -33,8 +36,22 @@ public class TransformerParser extends AbstractConsumerEndpointParser { @Override protected BeanDefinitionBuilder parseConsumer(Element element, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(MessageTransformingHandler.class); - builder.addConstructorArgReference(this.parseAdapter(element, parserContext, MethodInvokingTransformer.class)); + builder.addConstructorArgReference(this.parseTransformer(element, parserContext)); return builder; } + private String parseTransformer(Element element, ParserContext parserContext) { + String ref = element.getAttribute("ref"); + Assert.hasText(ref, "The 'ref' attribute is required."); + String method = element.getAttribute("method"); + if (!StringUtils.hasText(method)) { + return ref; + } + BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(MethodInvokingTransformer.class); + builder.addConstructorArgReference(ref); + builder.addConstructorArgValue(method); + return BeanDefinitionReaderUtils.registerWithGeneratedName( + builder.getBeanDefinition(), parserContext.getRegistry()); + } + }