org.springframework.integration.xml.router
Class XPathSingleChannelRouter

java.lang.Object
  extended by org.springframework.integration.handler.AbstractMessageHandler
      extended by org.springframework.integration.router.AbstractMessageRouter
          extended by org.springframework.integration.router.AbstractChannelNameResolvingMessageRouter
              extended by org.springframework.integration.xml.router.AbstractXPathRouter
                  extended by org.springframework.integration.xml.router.XPathSingleChannelRouter
All Implemented Interfaces:
org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.InitializingBean, org.springframework.core.Ordered, MessageHandler

public class XPathSingleChannelRouter
extends AbstractXPathRouter

Router that evaluates the payload using XPathExpression.evaluateAsString(Node) to extract a channel name. The payload is extracted as a node using the provided XmlPayloadConverter with DefaultXmlPayloadConverter being the default.

The provided XPathExpression must evaluate to a non-empty String.

Author:
Jonas Partner

Field Summary
 
Fields inherited from class org.springframework.integration.handler.AbstractMessageHandler
logger
 
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
 
Constructor Summary
XPathSingleChannelRouter(java.lang.String expression)
           
XPathSingleChannelRouter(java.lang.String expression, java.util.Map<java.lang.String,java.lang.String> namespaces)
           
XPathSingleChannelRouter(java.lang.String expression, java.lang.String prefix, java.lang.String namespace)
           
XPathSingleChannelRouter(org.springframework.xml.xpath.XPathExpression expression)
           
 
Method Summary
protected  java.util.List<java.lang.Object> getChannelIndicatorList(Message<?> message)
          Evaluates the payload using XPathExpression.evaluateAsString(Node)
 
Methods inherited from class org.springframework.integration.xml.router.AbstractXPathRouter
getConverter, getXPathExpression, setConverter
 
Methods inherited from class org.springframework.integration.router.AbstractChannelNameResolvingMessageRouter
addChannelFromString, addToCollection, afterPropertiesSet, determineTargetChannels, resolveChannelForName, setBeanFactory, setChannelResolver, setIgnoreChannelNameResolutionFailures, setPrefix, setSuffix
 
Methods inherited from class org.springframework.integration.router.AbstractMessageRouter
handleMessageInternal, setDefaultOutputChannel, setResolutionRequired, setTimeout
 
Methods inherited from class org.springframework.integration.handler.AbstractMessageHandler
getOrder, handleMessage, setOrder
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XPathSingleChannelRouter

public XPathSingleChannelRouter(java.lang.String expression,
                                java.util.Map<java.lang.String,java.lang.String> namespaces)
See Also:
AbstractXPathRouter#AbstractXPathChannelNameResolver(String, Map)

XPathSingleChannelRouter

public XPathSingleChannelRouter(java.lang.String expression,
                                java.lang.String prefix,
                                java.lang.String namespace)
See Also:
AbstractXPathRouter#AbstractXPathChannelNameResolver(String, String, String)

XPathSingleChannelRouter

public XPathSingleChannelRouter(java.lang.String expression)
See Also:
AbstractXPathRouter#AbstractXPathChannelNameResolver(String)

XPathSingleChannelRouter

public XPathSingleChannelRouter(org.springframework.xml.xpath.XPathExpression expression)
See Also:
AbstractXPathRouter#AbstractXPathChannelNameResolver(XPathExpression)
Method Detail

getChannelIndicatorList

protected java.util.List<java.lang.Object> getChannelIndicatorList(Message<?> message)
Evaluates the payload using XPathExpression.evaluateAsString(Node)

Specified by:
getChannelIndicatorList in class AbstractChannelNameResolvingMessageRouter
Throws:
MessagingException - if the XPathExpression evaluates to an empty string