Class XPathRouter
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.handler.MessageHandlerSupport
org.springframework.integration.handler.AbstractMessageHandler
org.springframework.integration.router.AbstractMessageRouter
org.springframework.integration.router.AbstractMappingMessageRouter
org.springframework.integration.xml.router.XPathRouter
- All Implemented Interfaces:
org.reactivestreams.Subscriber<org.springframework.messaging.Message<?>>
,org.springframework.beans.factory.Aware
,org.springframework.beans.factory.BeanFactoryAware
,org.springframework.beans.factory.BeanNameAware
,org.springframework.beans.factory.DisposableBean
,org.springframework.beans.factory.InitializingBean
,org.springframework.context.ApplicationContextAware
,org.springframework.core.Ordered
,org.springframework.integration.context.ExpressionCapable
,org.springframework.integration.context.Orderable
,org.springframework.integration.IntegrationPattern
,org.springframework.integration.router.MessageRouter
,org.springframework.integration.support.context.NamedComponent
,org.springframework.integration.support.management.IntegrationManagement
,org.springframework.integration.support.management.MappingMessageRouterManagement
,org.springframework.integration.support.management.TrackableComponent
,org.springframework.messaging.MessageHandler
,reactor.core.CoreSubscriber<org.springframework.messaging.Message<?>>
public class XPathRouter
extends org.springframework.integration.router.AbstractMappingMessageRouter
Message Router that uses
XPathExpression
evaluation to determine channel names.-
Nested Class Summary
-
Field Summary
Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER, logger
-
Constructor Summary
Constructors Constructor Description XPathRouter(java.lang.String expression)
Create a router that uses an XPath expression with no namespaces.XPathRouter(java.lang.String expression, java.lang.String prefix, java.lang.String namespace)
Create a router uses an XPath expression with one namespace.XPathRouter(java.lang.String expression, java.util.Map<java.lang.String,java.lang.String> namespaces)
Create a router that uses an XPath expression.XPathRouter(org.springframework.xml.xpath.XPathExpression expression)
Create a router that uses the provided XPath expression. -
Method Summary
Modifier and Type Method Description protected java.util.List<java.lang.Object>
getChannelKeys(org.springframework.messaging.Message<?> message)
java.lang.String
getComponentType()
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, getDynamicChannelNames, removeChannelMapping, replaceChannelMappings, setChannelKeyFallback, setChannelMapping, setChannelMappings, setDynamicChannelLimit, setPrefix, setResolutionRequired, setSuffix
Methods inherited from class org.springframework.integration.router.AbstractMessageRouter
getDefaultOutputChannel, getIntegrationPatternType, getMessagingTemplate, getRequiredConversionService, handleMessageInternal, onInit, setApplySequence, setDefaultOutputChannel, setDefaultOutputChannelName, setIgnoreSendFailures, setSendTimeout
Methods inherited from class org.springframework.integration.handler.AbstractMessageHandler
handleMessage, onComplete, onError, onNext, onSubscribe
Methods inherited from class org.springframework.integration.handler.MessageHandlerSupport
buildSendTimer, destroy, getManagedName, getManagedType, getMetricsCaptor, getOrder, getOverrides, isLoggingEnabled, registerMetricsCaptor, sendTimer, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, shouldTrack
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Constructor Details
-
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 Stringnamespaces
- 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 Stringprefix
- namespace prefixnamespace
- 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 Details
-
setEvaluateAsString
public void setEvaluateAsString(boolean evaluateAsString) -
setConverter
Specify the Converter to use when converting payloads prior to XPath evaluation.- Parameters:
converter
- The payload converter.
-
getComponentType
public java.lang.String getComponentType()- Specified by:
getComponentType
in interfaceorg.springframework.integration.support.context.NamedComponent
- Overrides:
getComponentType
in classorg.springframework.integration.router.AbstractMessageRouter
-
getChannelKeys
protected java.util.List<java.lang.Object> getChannelKeys(org.springframework.messaging.Message<?> message)- Specified by:
getChannelKeys
in classorg.springframework.integration.router.AbstractMappingMessageRouter
-