org.mule.routing.outbound
Class ChainingRouter

java.lang.Object
  extended byorg.mule.routing.AbstractRouter
      extended byorg.mule.routing.outbound.AbstractOutboundRouter
          extended byorg.mule.routing.outbound.FilteringOutboundRouter
              extended byorg.mule.routing.outbound.ChainingRouter
All Implemented Interfaces:
UMOOutboundRouter, UMORouter

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.AbstractOutboundRouter
ENABLE_CORRELATION_ALWAYS, ENABLE_CORRELATION_IF_NOT_SET, ENABLE_CORRELATION_NEVER, enableCorrelation, endpoints, logger, propertyExtractor, replyTo, transactionConfig
 
Constructor Summary
ChainingRouter()
           
 
Method Summary
 void addEndpoint(UMOEndpoint endpoint)
          Adds an endpoint to this router
protected  void processIntermediaryResult(UMOMessage localResult, UMOMessage intermediaryResult)
          Process intermediary result of invocation.
 UMOMessage route(UMOMessage message, UMOSession session, boolean synchronous)
          This method is responsible for routing the Message via the Session.
 
Methods inherited from class org.mule.routing.outbound.FilteringOutboundRouter
getEndpoint, getFilter, getTransformer, isMatch, isUseTemplates, setFilter, setTransformer, setUseTemplates
 
Methods inherited from class org.mule.routing.outbound.AbstractOutboundRouter
dispatch, getEnableCorrelation, getEndpoints, getPropertyExtractor, getReplyTo, getTransactionConfig, isDynamicEndpoints, removeEndpoint, send, setEnableCorrelation, setEnableCorrelationAsString, setEndpoints, setMessageProperties, setPropertyExtractor, setPropertyExtractorAsString, setReplyTo, setTransactionConfig
 
Methods inherited from class org.mule.routing.AbstractRouter
getRouterStatistics, 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.umo.routing.UMORouter
getRouterStatistics, setRouterStatistics
 

Constructor Detail

ChainingRouter

public ChainingRouter()
Method Detail

route

public UMOMessage route(UMOMessage message,
                        UMOSession session,
                        boolean synchronous)
                 throws RoutingException
Description copied from interface: UMOOutboundRouter
This method is responsible for routing the Message via the Session. 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 UMOOutboundRouter
Overrides:
route in class FilteringOutboundRouter
Throws:
RoutingException

addEndpoint

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

Specified by:
addEndpoint in interface UMOOutboundRouter
Overrides:
addEndpoint in class FilteringOutboundRouter

processIntermediaryResult

protected void processIntermediaryResult(UMOMessage localResult,
                                         UMOMessage 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-2008 MuleSource, Inc.. All Rights Reserved.