|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.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 Objectpublic String getTraceLabel()
Traceable
getTraceLabel in interface Traceable
public void process(Exchange exchange)
throws Exception
Processor
process in interface Processorexchange - the message exchange
Exception - if an internal processing error has occurred.
public boolean process(Exchange exchange,
AsyncCallback callback)
AsyncProcessorProcessor.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 AsyncProcessorexchange - 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
ServiceSupportServiceSupport.doStop() for more details.
doStart in class ServiceSupportExceptionServiceSupport.doStop()
protected void doStop()
throws Exception
ServiceSupportServiceSupport.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 ServiceSupportExceptionServiceSupport.doStart()
protected void doShutdown()
throws Exception
ServiceSupport
doShutdown in class ServiceSupportException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||