Spring Integration

org.springframework.integration.xml.router
Class XPathRouter

java.lang.Object
  extended by org.springframework.integration.context.IntegrationObjectSupport
      extended by org.springframework.integration.handler.AbstractMessageHandler
          extended by org.springframework.integration.router.AbstractMessageRouter
              extended by org.springframework.integration.router.AbstractMappingMessageRouter
                  extended by org.springframework.integration.xml.router.XPathRouter
All Implemented Interfaces:
org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.InitializingBean, org.springframework.core.Ordered, NamedComponent, Orderable, MessageHandler, TrackableComponent, MappingMessageRouterManagement

public class XPathRouter
extends AbstractMappingMessageRouter

Message Router that uses XPathExpression evaluation to determine channel names.

Author:
Jonas Partner, Oleg Zhurakousky

Field Summary
 
Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport
logger
 
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
 
Constructor Summary
XPathRouter(java.lang.String expression)
          Create a router that uses an XPath expression with no namespaces.
XPathRouter(java.lang.String expression, java.util.Map<java.lang.String,java.lang.String> namespaces)
          Create a router that uses an XPath expression.
XPathRouter(java.lang.String expression, java.lang.String prefix, java.lang.String namespace)
          Create a router uses an XPath expression with one namespace.
XPathRouter(org.springframework.xml.xpath.XPathExpression expression)
          Create a router that uses the provided XPath expression.
 
Method Summary
protected  java.util.List<java.lang.Object> getChannelKeys(Message<?> message)
          Subclasses must implement this method to return the channel keys.
 java.lang.String getComponentType()
          Subclasses may implement this method to provide component type information.
 void setConverter(XmlPayloadConverter converter)
          Specify the Converter to use when converting payloads prior to XPath evaluation.
 void setEvaluateAsString(boolean evaluateAsString)
           
 
Methods inherited from class org.springframework.integration.router.AbstractMappingMessageRouter
determineTargetChannels, getChannelMappings, onInit, removeChannelMapping, setChannelMapping, setChannelMappings, setChannelResolver, setPrefix, setResolutionRequired, setSuffix
 
Methods inherited from class org.springframework.integration.router.AbstractMessageRouter
getMessagingTemplate, getRequiredConversionService, handleMessageInternal, setApplySequence, setDefaultOutputChannel, setIgnoreSendFailures, setTimeout
 
Methods inherited from class org.springframework.integration.handler.AbstractMessageHandler
getOrder, handleMessage, setOrder, setShouldTrack
 
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, getBeanFactory, getComponentName, getConversionService, getTaskScheduler, setBeanFactory, setBeanName, setComponentName, setConversionService, setTaskScheduler, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.springframework.integration.context.NamedComponent
getComponentName
 

Constructor Detail

XPathRouter

public XPathRouter(java.lang.String expression,
                   java.util.Map<java.lang.String,java.lang.String> namespaces)
Create a router that uses an XPath expression. The expression may contain zero or more namespace prefixes.

Parameters:
expression - the XPath expression as a String
namespaces - map of namespaces with prefixes as the map keys

XPathRouter

public XPathRouter(java.lang.String expression,
                   java.lang.String prefix,
                   java.lang.String namespace)
Create a router uses an XPath expression with one namespace. For example, expression='/ns1:one/@type' prefix='ns1' namespace='www.example.org'

Parameters:
expression - the XPath expression as a String
prefix - namespace prefix
namespace - namespace uri

XPathRouter

public XPathRouter(java.lang.String expression)
Create a router that uses an XPath expression with no namespaces. For example '/one/@type'

Parameters:
expression - the XPath expression as a String

XPathRouter

public XPathRouter(org.springframework.xml.xpath.XPathExpression expression)
Create a router that uses the provided XPath expression.

Parameters:
expression - the XPath expression
Method Detail

setEvaluateAsString

public void setEvaluateAsString(boolean evaluateAsString)

setConverter

public void setConverter(XmlPayloadConverter converter)
Specify the Converter to use when converting payloads prior to XPath evaluation.


getComponentType

public java.lang.String getComponentType()
Description copied from class: IntegrationObjectSupport
Subclasses may implement this method to provide component type information.

Specified by:
getComponentType in interface NamedComponent
Overrides:
getComponentType in class AbstractMessageRouter

getChannelKeys

protected java.util.List<java.lang.Object> getChannelKeys(Message<?> message)
Description copied from class: AbstractMappingMessageRouter
Subclasses must implement this method to return the channel keys. A "key" might be present in this router's "channelMappings", or it could be the channel's name or even the Message Channel instance itself.

Specified by:
getChannelKeys in class AbstractMappingMessageRouter

Spring Integration