public class CamelInternalProcessor
extends org.apache.camel.support.processor.DelegateAsyncProcessor
Processor
that Camel routing engine used during routing for cross cutting functionality such as:
UnitOfWork
RoutePolicy
Transformer
CamelInternalProcessorAdvice
advice (before and after advice)
by executing the CamelInternalProcessorAdvice.before(org.apache.camel.Exchange)
and
CamelInternalProcessorAdvice.after(org.apache.camel.Exchange, Object)
callbacks in correct order during routing.
This reduces number of stack frames needed during routing, and reduce the number of lines in stacktraces, as well
makes debugging the routing engine easier for end users.
Debugging tips: Camel end users whom want to debug their Camel applications with the Camel source code, then make sure to
read the source code of this class about the debugging tips, which you can find in the
process(org.apache.camel.Exchange, org.apache.camel.AsyncCallback)
method.
The added advices can implement Ordered
to control in which order the advices are executed.Modifier and Type | Class and Description |
---|---|
static class |
CamelInternalProcessor.BacklogDebuggerAdvice
Advice to execute the
BacklogDebugger if enabled. |
static class |
CamelInternalProcessor.BacklogTracerAdvice
Advice to execute the
BacklogTracer if enabled. |
static class |
CamelInternalProcessor.ChildUnitOfWorkProcessorAdvice
Advice when an EIP uses the shareUnitOfWork functionality.
|
static class |
CamelInternalProcessor.DebuggerAdvice
Advice to execute when using custom debugger.
|
static class |
CamelInternalProcessor.DelayerAdvice
Advice for delaying
|
static class |
CamelInternalProcessor.MessageHistoryAdvice
Advice when Message History has been enabled.
|
static class |
CamelInternalProcessor.RouteInflightRepositoryAdvice
Advice to keep the
InflightRepository up to date. |
static class |
CamelInternalProcessor.RouteLifecycleAdvice
Advice to invoke callbacks for before and after routing.
|
static class |
CamelInternalProcessor.RoutePolicyAdvice
Advice to execute any
RoutePolicy a route may have been configured with. |
static class |
CamelInternalProcessor.StreamCachingAdvice
Advice for
StreamCachingStrategy |
static class |
CamelInternalProcessor.TracingAdvice
Advice for tracing
|
static class |
CamelInternalProcessor.UnitOfWorkProcessorAdvice
Advice to inject new
UnitOfWork to the Exchange if needed, and as well to ensure
the UnitOfWork is done and stopped. |
Constructor and Description |
---|
CamelInternalProcessor() |
CamelInternalProcessor(org.apache.camel.Processor processor) |
Modifier and Type | Method and Description |
---|---|
void |
addAdvice(org.apache.camel.spi.CamelInternalProcessorAdvice<?> advice)
Adds an
CamelInternalProcessorAdvice advice to the list of advices to execute by this internal processor. |
<T> T |
getAdvice(Class<T> type)
Gets the advice with the given type.
|
boolean |
process(org.apache.camel.Exchange exchange,
org.apache.camel.AsyncCallback originalCallback) |
String |
toString() |
static Object |
unwrap(org.apache.camel.spi.CamelInternalProcessorAdvice<?> advice) |
static <T> org.apache.camel.spi.CamelInternalProcessorAdvice<T> |
wrap(org.apache.camel.spi.ManagementInterceptStrategy.InstrumentationProcessor<T> instrumentationProcessor)
Wrap an InstrumentationProcessor into a CamelInternalProcessorAdvice
|
doShutdown, doStart, doStop, getProcessor, hasNext, next, setProcessor, setProcessor
doInit, doResume, doSuspend, getStatus, init, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspend
public CamelInternalProcessor()
public CamelInternalProcessor(org.apache.camel.Processor processor)
public void addAdvice(org.apache.camel.spi.CamelInternalProcessorAdvice<?> advice)
CamelInternalProcessorAdvice
advice to the list of advices to execute by this internal processor.advice
- the advice to addpublic <T> T getAdvice(Class<T> type)
type
- the type of the advicepublic boolean process(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback originalCallback)
process
in interface org.apache.camel.AsyncProcessor
process
in class org.apache.camel.support.processor.DelegateAsyncProcessor
public String toString()
toString
in class org.apache.camel.support.processor.DelegateAsyncProcessor
public static <T> org.apache.camel.spi.CamelInternalProcessorAdvice<T> wrap(org.apache.camel.spi.ManagementInterceptStrategy.InstrumentationProcessor<T> instrumentationProcessor)
public static Object unwrap(org.apache.camel.spi.CamelInternalProcessorAdvice<?> advice)
Apache Camel