org.mule.routing.outbound
Class ChainingRouter

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.ChainingRouter
All Implemented Interfaces:
MuleContextAware, Disposable, Initialisable, OutboundRouter, Router

public class ChainingRouter
extends FilteringOutboundRouter

ChainingRouter is used to pass a Mule event through multiple endpoints using the result of the first as the input for the second.


Field Summary
 
Fields inherited from class org.mule.routing.outbound.FilteringOutboundRouter
expressionManager
 
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, resultsHandler, 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
ChainingRouter()
           
 
Method Summary
 void initialise()
          Method used to perform any initialisation work.
protected  void processIntermediaryResult(MuleMessage localResult, MuleMessage intermediaryResult)
          Process intermediary result of invocation.
 MuleMessage route(MuleMessage message, MuleSession session)
          This method is responsible for routing the Message via the MuleSession.
 
Methods inherited from class org.mule.routing.outbound.FilteringOutboundRouter
addEndpoint, getEndpoint, getFilter, getTransformers, isMatch, isRequiresNewMessage, isUseTemplates, setFilter, setTransformers, setUseTemplates
 
Methods inherited from class org.mule.routing.outbound.AbstractOutboundRouter
createTransactionTemplate, dispatch, getEnableCorrelation, getEndpoint, getEndpoints, getMessageInfoMapping, getReplyTo, getResultsHandler, getTransactionConfig, isDynamicEndpoints, removeEndpoint, send, setEnableCorrelation, setEnableCorrelationAsString, setEndpoints, setMessageInfoMapping, setMessageProperties, setReplyTo, setResultsHandler, setTransactionConfig
 
Methods inherited from class org.mule.routing.AbstractRouter
dispose, getMuleContext, getRouterStatistics, 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.Disposable
dispose
 

Constructor Detail

ChainingRouter

public ChainingRouter()
Method Detail

initialise

public void initialise()
                throws InitialisationException
Description copied from interface: Initialisable
Method used to perform any initialisation work. If a fatal error occurs during initialisation an InitialisationException should be thrown, causing the Mule instance to shutdown. If the error is recoverable, say by retrying to connect, a RecoverableException should be thrown. There is no guarantee that by throwing a Recoverable exception that the Mule instance will not shut down.

Specified by:
initialise in interface Initialisable
Overrides:
initialise in class FilteringOutboundRouter
Throws:
InitialisationException - if a fatal error occurs causing the Mule instance to shutdown
RecoverableException - if an error occurs that can be recovered from

route

public MuleMessage route(MuleMessage message,
                         MuleSession session)
                  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 FilteringOutboundRouter
Parameters:
message - the message to send via one or more endpoints on this router
session - the session used to actually send the event
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

processIntermediaryResult

protected void processIntermediaryResult(MuleMessage localResult,
                                         MuleMessage intermediaryResult)
Process intermediary result of invocation. The method will be invoked only if both local and intermediary results are available (not null).

Overriding methods must call super(localResult, intermediaryResult), unless they are modifying the correlation workflow (if you know what that means, you know what you are doing and when to do it).

Default implementation propagates the following properties:

Parameters:
localResult - result of the last endpoint invocation
intermediaryResult - the message travelling across the endpoints


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