org.mule.routing
Class UntilSuccessful
java.lang.Object
org.mule.processor.AbstractMuleObjectOwner<MessageProcessor>
org.mule.processor.AbstractMessageProcessorOwner
org.mule.routing.outbound.AbstractOutboundRouter
org.mule.routing.UntilSuccessful
- All Implemented Interfaces:
- AnnotatedObject, FlowConstructAware, MuleContextAware, Disposable, Initialisable, Lifecycle, Startable, Stoppable, MessageProcessor, MessageProcessorContainer, MessageRouter, Matchable, MatchableMessageProcessor, MatchableMessageRouter, OutboundRouter, RouterStatisticsRecorder, UntilSuccessfulConfiguration
public class UntilSuccessful
- extends AbstractOutboundRouter
- implements UntilSuccessfulConfiguration
UntilSuccessful attempts to route a message to the message processor it contains.
Routing is considered successful if no exception has
been raised and, optionally, if the response matches an expression.
UntilSuccessful internal route can be executed synchronously or asynchronously depending
on the threading profile defined on it. By default, if no threading profile is defined, then
it will use the default threading profile configuration for the application. This means that
the default behavior is to process asynchronously.
UntilSuccessful can optionally be configured to synchronously return an
acknowledgment message when it has scheduled the event for processing.
UntilSuccessful is backed by a ListableObjectStore for storing the events
that are pending (re)processing.
To execute until-successful asynchronously the threading profile defined on it must have
doThreading attribute set with true value.
To execute until-successful synchronously the threading profile defined on it must have
doThreading attribute set with false value.
| Methods inherited from class org.mule.routing.outbound.AbstractOutboundRouter |
addRoute, cloneMessage, cloneMessage, createEventToRoute, dispose, getEnableCorrelation, getMuleContext, getOwnedMessageProcessors, getReplyTo, getResultsHandler, getRoute, getRouterStatistics, getRoutes, getTransactionConfig, isDynamicRoutes, process, propagateMagicProperties, removeRoute, sendRequest, sendRequestEvent, setEnableCorrelation, setEnableCorrelationAsString, setMessageProcessors, setMessageProperties, setReplyTo, setResultsHandler, setRouterStatistics, setRoutes, setTransactionConfig |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PROCESS_ATTEMPT_COUNT_PROPERTY_NAME
public static final String PROCESS_ATTEMPT_COUNT_PROPERTY_NAME
- See Also:
- Constant Field Values
UntilSuccessful
public UntilSuccessful()
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 AbstractOutboundRouter
- Throws:
InitialisationException - if a fatal error occurs causing the Mule instance to shutdown
RecoverableException - if an error occurs that can be recovered from
start
public void start()
throws MuleException
- Specified by:
start in interface Startable- Overrides:
start in class AbstractOutboundRouter
- Throws:
MuleException
stop
public void stop()
throws MuleException
- Specified by:
stop in interface Stoppable- Overrides:
stop in class AbstractOutboundRouter
- Throws:
MuleException
isMatch
public boolean isMatch(MuleMessage message)
throws MuleException
- Description copied from interface:
Matchable
- Determines if the event should be processed
- Specified by:
isMatch in interface Matchable
- Parameters:
message - the current message to evaluate
- Returns:
- true if the event should be processed by this router
- Throws:
MuleException - if the event cannot be evaluated
route
protected MuleEvent route(MuleEvent event)
throws MessagingException
- Specified by:
route in class AbstractOutboundRouter
- Throws:
MessagingException
getObjectStore
public ListableObjectStore<MuleEvent> getObjectStore()
- Specified by:
getObjectStore in interface UntilSuccessfulConfiguration
- Returns:
- an ObjectStore to store until successful internal data. Always returns a not null value.
setObjectStore
public void setObjectStore(ListableObjectStore<MuleEvent> objectStore)
getMaxRetries
public int getMaxRetries()
- Specified by:
getMaxRetries in interface UntilSuccessfulConfiguration
- Returns:
- the number of retries to process the route when failing. Default value is 5.
setMaxRetries
public void setMaxRetries(int maxRetries)
setSecondsBetweenRetries
@Deprecated
public void setSecondsBetweenRetries(long secondsBetweenRetries)
- Deprecated. use
setMillisBetweenRetries(long) instead
- Parameters:
secondsBetweenRetries - the number of seconds to wait between retries
getMillisBetweenRetries
public long getMillisBetweenRetries()
- Specified by:
getMillisBetweenRetries in interface UntilSuccessfulConfiguration
- Returns:
- the number of milliseconds between retries. Default value is 60000.
setMillisBetweenRetries
public void setMillisBetweenRetries(long millisBetweenRetries)
getFailureExpression
public String getFailureExpression()
setFailureExpression
public void setFailureExpression(String failureExpression)
getAckExpression
public String getAckExpression()
- Specified by:
getAckExpression in interface UntilSuccessfulConfiguration
- Returns:
- the expression that will define the returned payload after the until successful route execution.
setAckExpression
public void setAckExpression(String ackExpression)
setDeadLetterQueue
public void setDeadLetterQueue(Object deadLetterQueue)
getDeadLetterQueue
public Object getDeadLetterQueue()
getEventKeyPrefix
public String getEventKeyPrefix()
getFailureExpressionFilter
public ExpressionFilter getFailureExpressionFilter()
- Specified by:
getFailureExpressionFilter in interface UntilSuccessfulConfiguration
- Returns:
- ExpressionFilter to determine if the message was processed successfully or not. Always returns a not null value.
setThreadingProfile
public void setThreadingProfile(ThreadingProfile threadingProfile)
getThreadingProfile
public ThreadingProfile getThreadingProfile()
- Specified by:
getThreadingProfile in interface UntilSuccessfulConfiguration
- Returns:
- threading profile to executes message processing inside until successful. Always returns a not null value.
getDlqMP
public MessageProcessor getDlqMP()
- Specified by:
getDlqMP in interface UntilSuccessfulConfiguration
- Returns:
- the route to which the message must be sent if the processing fails.
getRoute
public MessageProcessor getRoute()
- Specified by:
getRoute in interface UntilSuccessfulConfiguration
- Returns:
- the route to which the message should be routed to. Always returns a not null value.
getRouter
public AbstractOutboundRouter getRouter()
- Specified by:
getRouter in interface UntilSuccessfulConfiguration
- Returns:
- the until sucessful router instance.
setSynchronous
public void setSynchronous(boolean synchronous)
Copyright © 2003–2014 MuleSoft, Inc.. All rights reserved.