Channel
Used to transport a message between two endpoints.
Specifies the interceptors of this channel.
A wire tap can be used to send a copy of the messages of this channel on an other channel, for backup or logging purposes for example.
The entry tracking and exit tracking interceptors are used for message tracking at the first and last channel(s) of a full message flow.
The debug interceptor is used for sending debug messages to the debugger.
Datatype
Specifies the datatype of this channel.
Use to create a Datatype Channel that only accepts messages containing certain payload types. Leave empty if all datatypes are accepted.
Set with a comma-delimited list of the fully-qualified class names of the types, eg.: java.lang.String, java.lang.Number
Default: empty
Channel type
Specifies the channel type
Direct Channel (default) Dispatches messages directly to a subscriber. The invocation will occur in the sender's thread.
Queue Channel Each Message is placed in a BlockingQueue whose capacity may be specified. If the queue has reached capacity, then the sender will block until room is available. Likewise, a receive call will return immediately if a message is available on the queue, but if the queue is empty, then a receive call may block until either a message is available or the timeout elapses.
RendezvousChannel A zero-capacity version of QueueChannel. This accommodates "handoff" scenarios (i.e. blocking while waiting for another party to send or receive).
ExecutorChannel Delegates all dispatching invocations to an Executor. Does not block the sender's Thread since it uses another Thread for the dispatch.
NOTE: unlike DirectChannel, the ExecutorChannel does not support a shared transactional context between sender and handler, because the Executor typically does not block the sender's Thread since it uses another Thread for the dispatch. (SyncTaskExecutor is an exception but would provide no value for this channel. If synchronous dispatching is required, a DirectChannel should be used instead).
Fixed subscriber
When true
, only one subscriber is allowed; the subscriber must be available at context initialization time, and will be subscribed during bean initialization rather than when being started; "auto-startup" will take no effect on a subscriber to this channel, the subscriber will always be "started". The subscriber cannot be stopped.
Only allowed on a direct channel without a datatype.
Default is false
.
Capacity
Capacity of the queue channel.
Can not be used when the queue channel is backed by a message store. In this case the capacity should be configured on the message store support object.
Default is unlimited (actually: Integer.MAX_VALUE
).
Message store
Optional message store to hold the queued messages.
If not set, an in-memory queue is used that does not provide any message persistance.
Task executor
TaskExecutor to perform the dispatch.
Id
Name that uniquely identifies this flow component.
Required