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.UnitOfWorkProcessorAdvice
processor
shutdown, 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, process
getProcessor, process, processNext, setProcessor, setProcessor
doResume, doSuspend, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspend
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
process
public DefaultChannel()
public void setNextProcessor(Processor next)
Channel
Exchange
to.setNextProcessor
in interface Channel
next
- the next processorpublic Processor getOutput()
Channel
public boolean hasNext()
Navigate
hasNext
in interface Navigate<Processor>
hasNext
in class DelegateAsyncProcessor
public List<Processor> next()
Navigate
next
in interface Navigate<Processor>
next
in class DelegateAsyncProcessor
public void setOutput(Processor output)
Channel
public Processor getNextProcessor()
Channel
Processor
to route to (not wrapped)getNextProcessor
in interface Channel
public boolean hasInterceptorStrategy(Class<?> type)
public void setErrorHandler(Processor errorHandler)
Channel
ErrorHandler
this Channel uses.setErrorHandler
in interface Channel
errorHandler
- the error handlerpublic Processor getErrorHandler()
Channel
ErrorHandler
this Channel uses.getErrorHandler
in interface Channel
public void addInterceptStrategy(InterceptStrategy strategy)
Channel
addInterceptStrategy
in interface Channel
strategy
- the intercept strategypublic void addInterceptStrategies(List<InterceptStrategy> strategies)
Channel
addInterceptStrategies
in interface Channel
strategies
- list of strategiespublic List<InterceptStrategy> getInterceptStrategies()
Channel
InterceptStrategy
registered to this Channel.getInterceptStrategies
in interface Channel
public ProcessorDefinition<?> getProcessorDefinition()
ModelChannel
getProcessorDefinition
in interface ModelChannel
public void setChildDefinition(ProcessorDefinition<?> childDefinition)
ModelChannel
setChildDefinition
in interface ModelChannel
childDefinition
- the childpublic RouteContext getRouteContext()
Channel
RouteContext
getRouteContext
in interface Channel
protected void doStart() throws Exception
ServiceSupport
ServiceSupport.doStop()
for more details.doStart
in class DelegateAsyncProcessor
Exception
ServiceSupport.doStop()
protected void doStop() throws Exception
ServiceSupport
ServiceSupport.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 DelegateAsyncProcessor
Exception
ServiceSupport.doStart()
protected void doShutdown() throws Exception
ServiceSupport
doShutdown
in class DelegateAsyncProcessor
Exception
public void initChannel(ProcessorDefinition<?> outputDefinition, RouteContext routeContext) throws Exception
ModelChannel
initChannel
in interface ModelChannel
outputDefinition
- the route definition the Channel
representsrouteContext
- the route contextException
- is thrown if some error occurredpublic void postInitChannel(ProcessorDefinition<?> outputDefinition, RouteContext routeContext) throws Exception
ModelChannel
postInitChannel
in interface ModelChannel
outputDefinition
- the route definition the Channel
representsrouteContext
- the route contextException
- is thrown if some error occurredpublic String toString()
toString
in class CamelInternalProcessor
Apache Camel