public class CamelInternalProcessor
extends org.apache.camel.support.processor.DelegateAsyncProcessor
implements org.apache.camel.spi.InternalProcessor
Processor that Camel routing engine used during routing for cross cutting functionality such as:
UnitOfWorkRoutePolicyTransformerCamelInternalProcessorAdvice 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.NodeHistoryAdvice
Advice that stores the node id and label of the processor that is processing the exchange.
|
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(org.apache.camel.CamelContext camelContext) |
CamelInternalProcessor(org.apache.camel.CamelContext camelContext,
org.apache.camel.Processor processor) |
| Modifier and Type | Method and Description |
|---|---|
void |
addAdvice(org.apache.camel.spi.CamelInternalProcessorAdvice<?> advice) |
void |
addManagementInterceptStrategy(org.apache.camel.spi.ManagementInterceptStrategy.InstrumentationProcessor processor) |
void |
addRouteInflightRepositoryAdvice(org.apache.camel.spi.InflightRepository inflightRepository,
String routeId) |
void |
addRouteLifecycleAdvice() |
void |
addRoutePolicyAdvice(List<org.apache.camel.spi.RoutePolicy> routePolicyList) |
<T> T |
getAdvice(Class<T> type) |
boolean |
process(org.apache.camel.Exchange exchange,
org.apache.camel.AsyncCallback originalCallback) |
void |
setRouteOnAdvices(org.apache.camel.Route route) |
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, setProcessorbuild, doBuild, doFail, doInit, doLifecycleChange, doResume, doSuspend, fail, getStatus, init, isBuild, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspendclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitpublic CamelInternalProcessor(org.apache.camel.CamelContext camelContext)
public CamelInternalProcessor(org.apache.camel.CamelContext camelContext,
org.apache.camel.Processor processor)
public void addAdvice(org.apache.camel.spi.CamelInternalProcessorAdvice<?> advice)
addAdvice in interface org.apache.camel.spi.InternalProcessorpublic <T> T getAdvice(Class<T> type)
getAdvice in interface org.apache.camel.spi.InternalProcessorpublic void addRoutePolicyAdvice(List<org.apache.camel.spi.RoutePolicy> routePolicyList)
addRoutePolicyAdvice in interface org.apache.camel.spi.InternalProcessorpublic void addRouteInflightRepositoryAdvice(org.apache.camel.spi.InflightRepository inflightRepository,
String routeId)
addRouteInflightRepositoryAdvice in interface org.apache.camel.spi.InternalProcessorpublic void addRouteLifecycleAdvice()
addRouteLifecycleAdvice in interface org.apache.camel.spi.InternalProcessorpublic void addManagementInterceptStrategy(org.apache.camel.spi.ManagementInterceptStrategy.InstrumentationProcessor processor)
addManagementInterceptStrategy in interface org.apache.camel.spi.InternalProcessorpublic void setRouteOnAdvices(org.apache.camel.Route route)
setRouteOnAdvices in interface org.apache.camel.spi.InternalProcessorpublic boolean process(org.apache.camel.Exchange exchange,
org.apache.camel.AsyncCallback originalCallback)
process in interface org.apache.camel.AsyncProcessorprocess in class org.apache.camel.support.processor.DelegateAsyncProcessorpublic String toString()
toString in class org.apache.camel.support.processor.DelegateAsyncProcessorpublic 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