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; } }