From 0852008d38fd457f59a6507ebeab05b83d8f4ae3 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Thu, 11 Nov 2010 18:14:12 -0500 Subject: [PATCH] INT-1604 renamed outbound parser to include 'ChannelAdapter' --- .../config/TwitterNamespaceHandler.java | 4 ++-- ... TwitterOutboundChannelAdapterParser.java} | 19 ++++++++++++++----- 2 files changed, 16 insertions(+), 7 deletions(-) rename spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/{TwitterSendingMessageHandlerParser.java => TwitterOutboundChannelAdapterParser.java} (82%) diff --git a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/TwitterNamespaceHandler.java b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/TwitterNamespaceHandler.java index 2db1f0f397..2958953ea6 100644 --- a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/TwitterNamespaceHandler.java +++ b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/TwitterNamespaceHandler.java @@ -38,8 +38,8 @@ public class TwitterNamespaceHandler extends AbstractIntegrationNamespaceHandler registerBeanDefinitionParser("search-inbound-channel-adapter", new TwitterInboundChannelAdapterParser()); // outbound - registerBeanDefinitionParser("outbound-channel-adapter", new TwitterSendingMessageHandlerParser()); - registerBeanDefinitionParser("dm-outbound-channel-adapter", new TwitterSendingMessageHandlerParser()); + registerBeanDefinitionParser("outbound-channel-adapter", new TwitterOutboundChannelAdapterParser()); + registerBeanDefinitionParser("dm-outbound-channel-adapter", new TwitterOutboundChannelAdapterParser()); } } diff --git a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/TwitterSendingMessageHandlerParser.java b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/TwitterOutboundChannelAdapterParser.java similarity index 82% rename from spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/TwitterSendingMessageHandlerParser.java rename to spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/TwitterOutboundChannelAdapterParser.java index f60d84f8a7..fb5e2398f5 100644 --- a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/TwitterSendingMessageHandlerParser.java +++ b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/TwitterOutboundChannelAdapterParser.java @@ -31,21 +31,30 @@ import org.w3c.dom.Element; * @author Oleg Zhurakousky * @since 2.0 */ -public class TwitterSendingMessageHandlerParser extends AbstractOutboundChannelAdapterParser { +public class TwitterOutboundChannelAdapterParser extends AbstractOutboundChannelAdapterParser { @Override protected AbstractBeanDefinition parseConsumer(Element element, ParserContext parserContext) { - String elementName = element.getLocalName().trim(); + String className = determineClassName(element, parserContext); + BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(className); + builder.addConstructorArgReference(element.getAttribute("twitter-template")); + return builder.getBeanDefinition(); + } + + + private static String determineClassName(Element element, ParserContext parserContext) { String className = null; + String elementName = element.getLocalName().trim(); if ("outbound-channel-adapter".equals(elementName)) { className = BASE_PACKAGE + ".outbound.TimelineSendingMessageHandler"; } else if ("dm-outbound-channel-adapter".equals(elementName)) { className = BASE_PACKAGE + ".outbound.DirectMessageSendingMessageHandler"; } - BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(className); - builder.addConstructorArgReference(element.getAttribute("twitter-template")); - return builder.getBeanDefinition(); + else { + parserContext.getReaderContext().error("element '" + elementName + "' is not supported by this parser.", element); + } + return className; } }