Package org.apache.camel.impl.engine
Class CamelInternalProcessor
java.lang.Object
org.apache.camel.support.service.BaseService
org.apache.camel.support.service.ServiceSupport
org.apache.camel.support.AsyncProcessorSupport
org.apache.camel.support.processor.DelegateAsyncProcessor
org.apache.camel.impl.engine.CamelInternalProcessor
- All Implemented Interfaces:
AutoCloseable,org.apache.camel.AsyncProcessor,org.apache.camel.DelegateProcessor,org.apache.camel.Navigate<org.apache.camel.Processor>,org.apache.camel.Processor,org.apache.camel.Service,org.apache.camel.ShutdownableService,org.apache.camel.spi.InternalProcessor,org.apache.camel.StatefulService,org.apache.camel.SuspendableService
- Direct Known Subclasses:
DefaultChannel
public class CamelInternalProcessor
extends org.apache.camel.support.processor.DelegateAsyncProcessor
implements org.apache.camel.spi.InternalProcessor
Internal
Processor that Camel routing engine used during routing for cross cutting functionality such as:
- Execute
UnitOfWork - Keeping track which route currently is being routed
- Execute
RoutePolicy - Gather JMX performance statics
- Tracing
- Debugging
- Message History
- Stream Caching
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.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classAdvice to execute theBacklogDebuggerif enabled.static final classAdvice to execute theBacklogTracerif enabled.static classAdvice when an EIP uses the shareUnitOfWork functionality.static final classAdvice to execute when using custom debugger.static classAdvice for delayingstatic classAdvice when Message History has been enabled.static classAdvice that stores the node id and label of the processor that is processing the exchange.static classAdvice to keep theInflightRepositoryup to date.static classAdvice to invoke callbacks for before and after routing.static classAdvice to execute anyRoutePolicya route may have been configured with.static classAdvice forStreamCachingStrategystatic classAdvice for tracingstatic classAdvice to inject newUnitOfWorkto theExchangeif needed, and as well to ensure theUnitOfWorkis done and stopped. -
Field Summary
Fields inherited from class org.apache.camel.support.processor.DelegateAsyncProcessor
processorFields inherited from class org.apache.camel.support.service.BaseService
BUILT, FAILED, INITIALIZED, INITIALIZING, lock, NEW, SHUTDOWN, SHUTTING_DOWN, STARTED, STARTING, status, STOPPED, STOPPING, SUSPENDED, SUSPENDING -
Constructor Summary
ConstructorsConstructorDescriptionCamelInternalProcessor(org.apache.camel.CamelContext camelContext) CamelInternalProcessor(org.apache.camel.CamelContext camelContext, org.apache.camel.Processor processor) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddAdvice(org.apache.camel.spi.CamelInternalProcessorAdvice<?> advice) voidaddManagementInterceptStrategy(org.apache.camel.spi.ManagementInterceptStrategy.InstrumentationProcessor processor) voidaddRouteInflightRepositoryAdvice(org.apache.camel.spi.InflightRepository inflightRepository, String routeId) voidvoidaddRoutePolicyAdvice(List<org.apache.camel.spi.RoutePolicy> routePolicyList) protected voiddoBuild()protected void<T> Tbooleanprocess(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback originalCallback) voidsetRouteOnAdvices(org.apache.camel.Route route) toString()static Objectunwrap(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 CamelInternalProcessorAdviceMethods inherited from class org.apache.camel.support.processor.DelegateAsyncProcessor
doInit, doStart, doStop, getProcessor, hasNext, next, setProcessor, setProcessorMethods inherited from class org.apache.camel.support.AsyncProcessorSupport
process, processAsyncMethods inherited from class org.apache.camel.support.service.BaseService
build, doFail, doLifecycleChange, doResume, doSuspend, fail, getInternalLock, getStatus, init, isBuild, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspendMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.camel.AsyncProcessor
processAsyncMethods inherited from interface org.apache.camel.Processor
processMethods inherited from interface org.apache.camel.Service
build, close, init, start, stopMethods inherited from interface org.apache.camel.ShutdownableService
shutdownMethods inherited from interface org.apache.camel.StatefulService
getStatus, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspendingMethods inherited from interface org.apache.camel.SuspendableService
isSuspended, resume, suspend
-
Constructor Details
-
CamelInternalProcessor
public CamelInternalProcessor(org.apache.camel.CamelContext camelContext) -
CamelInternalProcessor
public CamelInternalProcessor(org.apache.camel.CamelContext camelContext, org.apache.camel.Processor processor)
-
-
Method Details
-
doBuild
- Overrides:
doBuildin classorg.apache.camel.support.processor.DelegateAsyncProcessor- Throws:
Exception
-
doShutdown
- Overrides:
doShutdownin classorg.apache.camel.support.processor.DelegateAsyncProcessor- Throws:
Exception
-
addAdvice
public void addAdvice(org.apache.camel.spi.CamelInternalProcessorAdvice<?> advice) - Specified by:
addAdvicein interfaceorg.apache.camel.spi.InternalProcessor
-
getAdvice
- Specified by:
getAdvicein interfaceorg.apache.camel.spi.InternalProcessor
-
addRoutePolicyAdvice
- Specified by:
addRoutePolicyAdvicein interfaceorg.apache.camel.spi.InternalProcessor
-
addRouteInflightRepositoryAdvice
public void addRouteInflightRepositoryAdvice(org.apache.camel.spi.InflightRepository inflightRepository, String routeId) - Specified by:
addRouteInflightRepositoryAdvicein interfaceorg.apache.camel.spi.InternalProcessor
-
addRouteLifecycleAdvice
public void addRouteLifecycleAdvice()- Specified by:
addRouteLifecycleAdvicein interfaceorg.apache.camel.spi.InternalProcessor
-
addManagementInterceptStrategy
public void addManagementInterceptStrategy(org.apache.camel.spi.ManagementInterceptStrategy.InstrumentationProcessor processor) - Specified by:
addManagementInterceptStrategyin interfaceorg.apache.camel.spi.InternalProcessor
-
setRouteOnAdvices
public void setRouteOnAdvices(org.apache.camel.Route route) - Specified by:
setRouteOnAdvicesin interfaceorg.apache.camel.spi.InternalProcessor
-
process
public boolean process(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback originalCallback) - Specified by:
processin interfaceorg.apache.camel.AsyncProcessor- Overrides:
processin classorg.apache.camel.support.processor.DelegateAsyncProcessor
-
toString
- Overrides:
toStringin classorg.apache.camel.support.processor.DelegateAsyncProcessor
-
wrap
public static <T> org.apache.camel.spi.CamelInternalProcessorAdvice<T> wrap(org.apache.camel.spi.ManagementInterceptStrategy.InstrumentationProcessor<T> instrumentationProcessor) Wrap an InstrumentationProcessor into a CamelInternalProcessorAdvice -
unwrap
-