org.mule.module.xml.routing
Class RoundRobinXmlSplitter

java.lang.Object
  extended by org.mule.routing.AbstractRouter
      extended by org.mule.routing.outbound.AbstractOutboundRouter
          extended by org.mule.routing.outbound.FilteringOutboundRouter
              extended by org.mule.routing.outbound.AbstractMessageSplitter
                  extended by org.mule.module.xml.routing.FilteringXmlMessageSplitter
                      extended by org.mule.module.xml.routing.RoundRobinXmlSplitter
All Implemented Interfaces:
MuleContextAware, Disposable, Initialisable, OutboundRouter, Router

public class RoundRobinXmlSplitter
extends FilteringXmlMessageSplitter

This router will split the Xml message into parts based on the xpath expression and route each new event to the endpoints on the router, one after the other.


Field Summary
protected  boolean enableEndpointFiltering
           
 
Fields inherited from class org.mule.module.xml.routing.FilteringXmlMessageSplitter
externalSchemaLocation, namespaces, nodesContext, propertiesContext, splitExpression, validateSchema
 
Fields inherited from class org.mule.routing.outbound.AbstractMessageSplitter
honorSynchronicity, multimatch
 
Fields inherited from class org.mule.routing.outbound.AbstractOutboundRouter
ENABLE_CORRELATION_ALWAYS, ENABLE_CORRELATION_IF_NOT_SET, ENABLE_CORRELATION_NEVER, enableCorrelation, endpoints, logger, messageInfoMapping, replyTo, transactionConfig
 
Fields inherited from class org.mule.routing.AbstractRouter
muleContext
 
Fields inherited from interface org.mule.api.lifecycle.Initialisable
PHASE_NAME
 
Fields inherited from interface org.mule.api.lifecycle.Disposable
PHASE_NAME
 
Constructor Summary
RoundRobinXmlSplitter()
           
 
Method Summary
 void addEndpoint(OutboundEndpoint endpoint)
          Adds an endpoint to this router
protected  OutboundEndpoint getEndpointForMessage(MuleMessage message)
          Retrieves a specific message part for the given endpoint.
 boolean isDeterministic()
           
 boolean isEnableEndpointFiltering()
           
 MuleMessage route(MuleMessage message, MuleSession session, boolean synchronous)
          This method is responsible for routing the Message via the MuleSession.
 void setDeterministic(boolean deterministic)
           
 void setEnableEndpointFiltering(boolean enableEndpointFiltering)
           
 
Methods inherited from class org.mule.module.xml.routing.FilteringXmlMessageSplitter
cleanup, getExternalSchemaLocation, getMessagePart, getNamespaces, getSplitExpression, initialise, isValidateSchema, setExternalSchemaLocation, setNamespaces, setSplitExpression, setValidateSchema
 
Methods inherited from class org.mule.routing.outbound.AbstractMessageSplitter
isHonorSynchronicity, setHonorSynchronicity
 
Methods inherited from class org.mule.routing.outbound.FilteringOutboundRouter
getEndpoint, getFilter, getTransformers, isMatch, isUseTemplates, setFilter, setTransformers, setUseTemplates
 
Methods inherited from class org.mule.routing.outbound.AbstractOutboundRouter
createTransactionTemplate, dispatch, getEnableCorrelation, getEndpoint, getEndpoints, getMessageInfoMapping, getReplyTo, getTransactionConfig, isDynamicEndpoints, removeEndpoint, send, setEnableCorrelation, setEnableCorrelationAsString, setEndpoints, setMessageInfoMapping, setMessageProperties, setReplyTo, setTransactionConfig
 
Methods inherited from class org.mule.routing.AbstractRouter
dispose, getMuleContext, getRouterStatistics, initialise, setMuleContext, setRouterStatistics
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.mule.api.routing.Router
getRouterStatistics, setRouterStatistics
 
Methods inherited from interface org.mule.api.lifecycle.Initialisable
initialise
 
Methods inherited from interface org.mule.api.lifecycle.Disposable
dispose
 

Field Detail

enableEndpointFiltering

protected volatile boolean enableEndpointFiltering
Constructor Detail

RoundRobinXmlSplitter

public RoundRobinXmlSplitter()
Method Detail

route

public MuleMessage route(MuleMessage message,
                         MuleSession session,
                         boolean synchronous)
                  throws RoutingException
Description copied from interface: OutboundRouter
This method is responsible for routing the Message via the MuleSession. The logic for this method will change for each type of router depending on expected behaviour. For example, a MulticastingRouter might just iterate through the list of assoaciated endpoints sending the message. Another type of router such as the ExceptionBasedRouter will hit the first endpoint, if it fails try the second, and so on. Most router implementations will extends the FilteringOutboundRouter which implements all the common logic need for a router.

Specified by:
route in interface OutboundRouter
Overrides:
route in class AbstractMessageSplitter
Parameters:
message - the message to send via one or more endpoints on this router
session - the session used to actually send the event
synchronous - whether the invocation process should be synchronous or not
Returns:
a result message if any from the invocation. If the synchronous flag is false a null result will always be returned.
Throws:
RoutingException
See Also:
FilteringOutboundRouter, ExceptionBasedRouter, MulticastingRouter

getEndpointForMessage

protected OutboundEndpoint getEndpointForMessage(MuleMessage message)
Retrieves a specific message part for the given endpoint. the message will then be routed via the provider.

Parameters:
message - the current message being processed
Returns:
the message part to dispatch

addEndpoint

public void addEndpoint(OutboundEndpoint endpoint)
Description copied from interface: OutboundRouter
Adds an endpoint to this router

Specified by:
addEndpoint in interface OutboundRouter
Overrides:
addEndpoint in class FilteringOutboundRouter
Parameters:
endpoint - the endpoint to add to the router

isEnableEndpointFiltering

public boolean isEnableEndpointFiltering()

setEnableEndpointFiltering

public void setEnableEndpointFiltering(boolean enableEndpointFiltering)

isDeterministic

public boolean isDeterministic()

setDeterministic

public void setDeterministic(boolean deterministic)


Copyright © 2003-2008 MuleSource, Inc.. All Rights Reserved.