|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.camel.support.ServiceSupport org.apache.camel.processor.RoutingSlip
public class RoutingSlip
Implements a Routing Slip pattern where the list of actual endpoints to send a message exchange to are dependent on the value of a message header.
This implementation mirrors the logic from thePipeline
in the async variation
as the failover load balancer is a specialized pipeline. So the trick is to keep doing the same as the
pipeline to ensure it works the same and the async routing engine is flawless.
Nested Class Summary | |
---|---|
protected static interface |
RoutingSlip.RoutingSlipIterator
The iterator to be used for retrieving the next routing slip(s) to be used. |
Field Summary | |
---|---|
protected CamelContext |
camelContext
|
protected Expression |
expression
|
protected String |
header
|
protected boolean |
ignoreInvalidEndpoints
|
protected org.slf4j.Logger |
log
|
protected ProducerCache |
producerCache
|
protected String |
uriDelimiter
|
Fields inherited from class org.apache.camel.support.ServiceSupport |
---|
shutdown, shuttingdown, started, starting, stopped, stopping, suspended, suspending |
Constructor Summary | |
---|---|
RoutingSlip(CamelContext camelContext)
|
|
RoutingSlip(CamelContext camelContext,
Expression expression,
String uriDelimiter)
|
Method Summary | |
---|---|
protected RoutingSlip.RoutingSlipIterator |
createRoutingSlipIterator(Exchange exchange)
Creates the route slip iterator to be used. |
boolean |
doRoutingSlip(Exchange exchange,
Object routingSlip,
AsyncCallback callback)
|
protected void |
doShutdown()
Implementations override this method to perform customized shutdown. |
protected void |
doStart()
Implementations override this method to support customized start/stop. |
protected void |
doStop()
Implementations override this method to support customized start/stop. |
String |
getTraceLabel()
Gets the trace label used for logging when tracing is enabled. |
boolean |
isIgnoreInvalidEndpoints()
|
protected Exchange |
prepareExchangeForRoutingSlip(Exchange current,
Endpoint endpoint)
|
void |
process(Exchange exchange)
Processes the message exchange |
boolean |
process(Exchange exchange,
AsyncCallback callback)
Processes the message exchange. |
protected boolean |
processExchange(Endpoint endpoint,
Exchange exchange,
Exchange original,
AsyncCallback callback,
RoutingSlip.RoutingSlipIterator iter)
|
protected Endpoint |
resolveEndpoint(RoutingSlip.RoutingSlipIterator iter,
Exchange exchange)
|
void |
setDelimiter(String delimiter)
|
void |
setIgnoreInvalidEndpoints(boolean ignoreInvalidEndpoints)
|
String |
toString()
|
Methods inherited from class org.apache.camel.support.ServiceSupport |
---|
doResume, doSuspend, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspended, isSuspending, resume, shutdown, start, stop, suspend |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected final transient org.slf4j.Logger log
protected ProducerCache producerCache
protected boolean ignoreInvalidEndpoints
protected String header
protected Expression expression
protected String uriDelimiter
protected final CamelContext camelContext
Constructor Detail |
---|
public RoutingSlip(CamelContext camelContext)
public RoutingSlip(CamelContext camelContext, Expression expression, String uriDelimiter)
Method Detail |
---|
public void setDelimiter(String delimiter)
public boolean isIgnoreInvalidEndpoints()
public void setIgnoreInvalidEndpoints(boolean ignoreInvalidEndpoints)
public String toString()
toString
in class Object
public String getTraceLabel()
Traceable
getTraceLabel
in interface Traceable
public void process(Exchange exchange) throws Exception
Processor
process
in interface Processor
exchange
- the message exchange
Exception
- if an internal processing error has occurred.public boolean process(Exchange exchange, AsyncCallback callback)
AsyncProcessor
Processor.process(org.apache.camel.Exchange)
, but the caller supports having the exchange asynchronously processed.
If there was a failure processing then the caused Exception
would be set on the Exchange
.
process
in interface AsyncProcessor
exchange
- the message exchangecallback
- the AsyncCallback
will be invoked when the processing of the exchange is completed.
If the exchange is completed synchronously, then the callback is also invoked synchronously.
The callback should therefore be careful of starting recursive loop.
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback)
public boolean doRoutingSlip(Exchange exchange, Object routingSlip, AsyncCallback callback)
protected RoutingSlip.RoutingSlipIterator createRoutingSlipIterator(Exchange exchange) throws Exception
exchange
- the exchange
Exception
protected Endpoint resolveEndpoint(RoutingSlip.RoutingSlipIterator iter, Exchange exchange) throws Exception
Exception
protected Exchange prepareExchangeForRoutingSlip(Exchange current, Endpoint endpoint)
protected boolean processExchange(Endpoint endpoint, Exchange exchange, Exchange original, AsyncCallback callback, RoutingSlip.RoutingSlipIterator iter)
protected void doStart() throws Exception
ServiceSupport
ServiceSupport.doStop()
for more details.
doStart
in class ServiceSupport
Exception
ServiceSupport.doStop()
protected void doStop() throws Exception
ServiceSupport
ServiceSupport.doStop()
method when
the service is being stopped. This method will also be invoked
if the service is still in uninitialized state (eg has not
been started). The method is always called to allow the service
to do custom logic when the service is being stopped, such as when
CamelContext
is shutting down.
doStop
in class ServiceSupport
Exception
ServiceSupport.doStart()
protected void doShutdown() throws Exception
ServiceSupport
doShutdown
in class ServiceSupport
Exception
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |