org.mule.routing.outbound
Class ExceptionBasedRouter

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.ExceptionBasedRouter
All Implemented Interfaces:
UMOOutboundRouter, UMORouter

public class ExceptionBasedRouter
extends FilteringOutboundRouter

ExceptionBasedRouter Will send the current event to the first endpoint that doesn't throw an exception. If all attempted endpoints fail then an exception is thrown.

The router will override the sync/async mode of the endpoint and force the sync mode for all endpoints except the last one. remoteSync is also enforced.


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
ExceptionBasedRouter()
           
 
Method Summary
 void addEndpoint(UMOEndpoint endpoint)
          Adds an endpoint to this router
protected  boolean exceptionPayloadAvailable(UMOMessage message)
           
 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

ExceptionBasedRouter

public ExceptionBasedRouter()
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

exceptionPayloadAvailable

protected boolean exceptionPayloadAvailable(UMOMessage message)
Parameters:
message - message to check
Returns:
true if there was an exception payload set


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