public class DefaultChannel extends CamelInternalProcessor implements ModelChannel
Channel.
The current implementation is just a composite containing the interceptors and error handler
that beforehand was added to the route graph directly.
Channel we can in the future implement better strategies for routing the
Exchange in the route graph, as we have a Channel between each and every node
in the graph.CamelInternalProcessor.BacklogDebuggerAdvice, CamelInternalProcessor.BacklogTracerAdvice, CamelInternalProcessor.ChildUnitOfWorkProcessorAdvice, CamelInternalProcessor.DelayerAdvice, CamelInternalProcessor.InstrumentationAdvice, CamelInternalProcessor.MessageHistoryAdvice, CamelInternalProcessor.RouteContextAdvice, CamelInternalProcessor.RouteInflightRepositoryAdvice, CamelInternalProcessor.RouteLifecycleAdvice, CamelInternalProcessor.RoutePolicyAdvice, CamelInternalProcessor.StreamCachingAdvice, CamelInternalProcessor.SubUnitOfWorkProcessorAdvice, CamelInternalProcessor.UnitOfWorkProcessorAdviceprocessorshutdown, shuttingdown, started, starting, stopped, stopping, suspended, suspending| Constructor and Description |
|---|
DefaultChannel() |
| Modifier and Type | Method and Description |
|---|---|
void |
addInterceptStrategies(List<InterceptStrategy> strategies)
|
void |
addInterceptStrategy(InterceptStrategy strategy)
|
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.
|
Processor |
getErrorHandler()
Gets the
ErrorHandler this Channel uses. |
List<InterceptStrategy> |
getInterceptStrategies()
Gets the list of
InterceptStrategy registered to this Channel. |
Processor |
getNextProcessor()
Gets the next
Processor to route to (not wrapped) |
Processor |
getOutput()
Gets the wrapped output that at runtime should be delegated to.
|
ProcessorDefinition<?> |
getProcessorDefinition()
Gets the definition of the next processor
|
RouteContext |
getRouteContext()
Gets the
RouteContext |
boolean |
hasInterceptorStrategy(Class<?> type) |
boolean |
hasNext()
Are there more outputs?
Important only invoke this once, as this method do not carry state, and is not intended to be used in a while loop,
but used by a if statement instead.
|
void |
initChannel(ProcessorDefinition<?> outputDefinition,
RouteContext routeContext)
Initializes the channel.
|
List<Processor> |
next()
Next group of outputs
Important only invoke this once, as this method do not carry state, and is not intended to be used in a while loop,
but used by a if statement instead.
|
void |
postInitChannel(ProcessorDefinition<?> outputDefinition,
RouteContext routeContext)
Post initializes the channel.
|
void |
setChildDefinition(ProcessorDefinition<?> childDefinition)
If the initialized output definition contained outputs (children) then we need to
set the child so we can leverage fine grained tracing
|
void |
setErrorHandler(Processor errorHandler)
Sets the
ErrorHandler this Channel uses. |
void |
setNextProcessor(Processor next)
Sets the processor that the channel should route the
Exchange to. |
void |
setOutput(Processor output)
Sets the wrapped output that at runtime should be delegated to.
|
String |
toString() |
addAdvice, continueProcessing, getAdvice, processgetProcessor, process, processNext, setProcessor, setProcessordoResume, doSuspend, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspendclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitprocesspublic void setNextProcessor(Processor next)
ChannelExchange to.setNextProcessor in interface Channelnext - the next processorpublic Processor getOutput()
Channelpublic boolean hasNext()
NavigatehasNext in interface Navigate<Processor>hasNext in class DelegateAsyncProcessorpublic List<Processor> next()
Navigatenext in interface Navigate<Processor>next in class DelegateAsyncProcessorpublic void setOutput(Processor output)
Channelpublic Processor getNextProcessor()
ChannelProcessor to route to (not wrapped)getNextProcessor in interface Channelpublic boolean hasInterceptorStrategy(Class<?> type)
public void setErrorHandler(Processor errorHandler)
ChannelErrorHandler this Channel uses.setErrorHandler in interface ChannelerrorHandler - the error handlerpublic Processor getErrorHandler()
ChannelErrorHandler this Channel uses.getErrorHandler in interface Channelpublic void addInterceptStrategy(InterceptStrategy strategy)
ChanneladdInterceptStrategy in interface Channelstrategy - the intercept strategypublic void addInterceptStrategies(List<InterceptStrategy> strategies)
ChanneladdInterceptStrategies in interface Channelstrategies - list of strategiespublic List<InterceptStrategy> getInterceptStrategies()
ChannelInterceptStrategy registered to this Channel.getInterceptStrategies in interface Channelpublic ProcessorDefinition<?> getProcessorDefinition()
ModelChannelgetProcessorDefinition in interface ModelChannelpublic void setChildDefinition(ProcessorDefinition<?> childDefinition)
ModelChannelsetChildDefinition in interface ModelChannelchildDefinition - the childpublic RouteContext getRouteContext()
ChannelRouteContextgetRouteContext in interface Channelprotected void doStart()
throws Exception
ServiceSupportServiceSupport.doStop() for more details.doStart in class DelegateAsyncProcessorExceptionServiceSupport.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 DelegateAsyncProcessorExceptionServiceSupport.doStart()protected void doShutdown()
throws Exception
ServiceSupportdoShutdown in class ServiceSupportExceptionpublic void initChannel(ProcessorDefinition<?> outputDefinition, RouteContext routeContext) throws Exception
ModelChannelinitChannel in interface ModelChanneloutputDefinition - the route definition the Channel representsrouteContext - the route contextException - is thrown if some error occurredpublic void postInitChannel(ProcessorDefinition<?> outputDefinition, RouteContext routeContext) throws Exception
ModelChannelpostInitChannel in interface ModelChanneloutputDefinition - the route definition the Channel representsrouteContext - the route contextException - is thrown if some error occurredpublic String toString()
toString in class CamelInternalProcessorApache Camel