Enables annotation support for Message Endpoints.
Default output channel for the @Publisher annotation support.
Defines the ApplicationEventMulticaster to use for this
ApplicationContext.
The "task-executor"
reference is optional. If not provided, an
instance of
ThreadPoolTaskExecutor will be created by default.
Defines a Point-to-Point MessageChannel.
Identifies this channel as a Queue style
channel
Identifies this channel as a Queue style
channel where messages could be prioritized
based on custom logic
Provides MessageDispatcher configuration
(i.e., failover, load-balancing, task-executor)
Defines a queue for messages. If 'capacity' is specified, it will be a
bounded queue.
A custom Queue
implementation can be injected using the 'ref'
attribute.
Capacity for this queue. Default capacity is 0 which means
this queue will accumulate as many
messages as available resources allow.
Reference to a MessageGroupStore that can be used to buffer the messages. If a message store is
specified then it will store messages for this channel with a correlation key equal to the
channel name. If you need
more control over the correlation key (e.g. two channels in the same
application share a name), then you need to
look to the queue implementation itself and provide an
explicit instance via the "ref" attribute, or else maybe the
message store has a way to specify a region or similar additional
tag for messages. This attribute is
mutually
exclusive with the "ref" attribute (only one can be specified).
Reference to a BlockingQueue that can be used to buffer the messages. This attribute is
mutually
exclusive with the "message-store" attribute (only one can be specified).
Defines a queue with priority-ordering for message reception.
Capacity for this queue. Default capacity is 0 which means
this queue will accumulate as many
messages as available resources allow.
Defines a rendezvous queue where a sender will block until the receiver
arrives or vice-versa.
Defines the dispatching configuration for a non-buffering channel
(i.e. one without a queue).
Defines a load-balancing strategy for the channel's dispatcher.
The default is a round-robin load
balancer.
[DEFAULT] Defines a Round Robin dispatching strategy which allows
load balancing of messages
between multiple Message Handlers. Which
message
handler receives the message first is determined by the 'order'
attribute
of such Message Handler.
No LoadBalancingStrategy will be used.
Specifies whether this dispatcher has failover enabled. By default,
failover will be enabled. Set
this to 'false' to disable it.
When enabled and message delivery to the primary Message Handler fails,
an attempt
will be made to deliver the message to the next handler
and so on...
Primary, secondary etc... is determined by the
load-balancing strategy in
use
(e.g. round-robin). If no load-balancer strategy is configured, the
order will
be fixed
in a sequence determined by the 'order' attribute on the
Message Handlers
(or the @Ordered annotation on adapted
methods).
Defines a Publish-Subscribe channel that broadcasts messages to its
subscribers.
Specify whether Exceptions thrown by any subscribed handler should be
ignored (only logged).
Specify whether the sequence size, sequence number, and correlation id
headers should be set on
Messages that are sent through this channel.
Defines a message channel.
This attribute is DEPRECATED. Please use the dispatcher sub-element
instead.
Enables failover, but disables load-balancing.
See the dispatcher sub-element for more
information.
Defines a Messaging Gateway.
Defines a Messaging Gateway to be used within a chain.
Defines a Channel Adapter that receives from a MessageSource and sends to a
MessageChannel.
Maximum amount of time in milliseconds to wait when sending a message to the channel if such channel may block.
For example, a Queue Channel can block until space is available if its maximum capacity has been reached.
Defines a Channel Adapter that receives from a MessageChannel and passes to
a method-invoking
MessageHandler.
Specifies the order for invocation when this endpoint is connected as a
subscriber to a channel. This is particularly relevant when that channel
is using a "failover" dispatching strategy. It has no effect when this
endpoint itself is a Polling Consumer for a channel with a queue.
A reference to a bean defined in the application context.
A method defined on the bean referenced by 'ref' attribute
SpEL expression to be evaluated for each triggered execution.
The result of the evaluation will be
passed as the payload of
the Message that is sent to the MessageChannel.
Identifies channel attached to this adapter. Depending on the type of the adapter
this channel could be the receiving channel (e.g., outbound-channel-adapter) or channel where
messages will be sent to by this adapter (e.g., inbound-channel-adapter).
Lifecycle attribute signaling if this component should be started during Application Context startup.
Defines an endpoint for exposing any bean reference as a service that
receives request Messages
from an 'input-channel' and may send reply
Messages to an 'output-channel'. The 'ref' may point to an instance
that
has either a single public method or a method with the
@ServiceActivator annotation. Otherwise, the 'method'
attribute
should be provided along with 'ref'.
Specify whether the service method must return a non-null value. This value will be
FALSE by
default, but if set to TRUE, a MessageHandlingException will be thrown when
the underlying service method (or
expression) returns a NULL value.
Base type for Message-handling endpoints.
A reference to a bean that implements the handler.
The bean can be an implementation of the MessageHandler interface or a POJO
A method defined on the bean referenced by 'ref' attribute
Base type for Message Handlers.
A reference to a bean that implements the handler.
The bean can be an implementation of the MessageHandler interface or a POJO
A method defined on the bean referenced by 'ref' attribute
Defines an endpoint that passes a Message to the output-channel after a
delay. The delay may
be
retrieved from a Message header or else fallback to the
'default-delay' of this endpoint.
Specify the default delay in milliseconds. This value can be set to 0
if the only Messages
that
should be delayed are those with a particular header (in that
case, be sure to provide
a value for the
'delay-header-name' attribute).
Specify the name of the header that should contain the delay value.
This value can either
represent the number of milliseconds to delay counting from the current
time or it can be an
absolute Date until
which the Message should be delayed.
Provide a reference to the ScheduledExecutorService instance to which
this endpoint should
delegate when scheduling the sending of delayed Messages. If not
provided, the default
will use a thread pool of
size
1.
Provide a reference to the MessageStore instance that should be used
to store Messages while
awaiting the delay.
Specify whether tasks should be able to complete on shutdown. By
default this is 'false'.
Defines an endpoint that passes a Message to the
output-channel without
modifying it.
Defines an endpoint composed of a chain of Message
Handlers.
Defines a top-level poller.
Defines the configuration metadata for a poller.
NOTE: The 'interval-trigger' sub-element is deprecated as of Spring Integration 2.0 and will be
removed in version
2.1.
Use one of the interval trigger attributes instead ('fixed-delay' or 'fixed-rate').
NOTE: The 'cron-trigger' sub-element is deprecated as of Spring Integration 2.0 and will be
removed in version 2.1.
Use the 'cron' attribute instead.
Fixed delay trigger (in milliseconds).
Allows this poller to reference another instance of a top-level poller.
[IMPORTANT] - This attribute is only allowed on inner poller definitions.
Defining this attribute on a top-level poller definition will result in a configuration exception.
Fixed rate trigger (in milliseconds).
Cron trigger.
Defines an interval-based trigger.
Defines an cron-based trigger.
Defines a MessageSelector chain.
Provides a MessageSelector reference. If a method attribute is set the
referred bean doesn't need
to implement the MessageSelector
interface.
Defines a HeaderEnricher endpoint for values defined in the MessageHeader.
Shortcut to specify value for 'replyChannel' header
Shortcut to specify value for 'errorChannel' header
Shortcut to specify value for 'correlationId' header
Shortcut to specify value for 'expirationDate' header (java.lang.Long)
Shortcut to specify value for 'priority' header when using PriorityChannel
Integer value identifying the value of the 'priority' header.
Boolean value to indicate whether this header value should overwrite
an existing header
value
for the same name.
Element that accepts any user-defined header name/value pair.
Allows you to configure Message Poller if this endpoint is a Polling Consumer
Specify the default boolean value for whether to overwrite existing
header values. This will
only
take effect for
sub-elements that do not provide their own 'overwrite' attribute. If the
'default-overwrite'
attribute is not
provided, then the specified header values will NOT overwrite any
existing ones with the same
header
names.
Specify whether null values, such as might be returned from an expression evaluation,
should be
skipped. The default value is true. Set this to false if a null value should
trigger removal of the corresponding
header instead.
Reference to an Object to be invoked for header values.
The 'method' attribute is required
along
with this.
Method to be invoked on the referenced Object as specified by the
'ref' attribute. The method
should return a Map with String-typed keys.
Defines a Message Header with a literal value or object reference.
Name of the header to be added.
Provides a header value for the given header name. Requires
exactly one of the 'ref', 'value', or
'expression' attributes.
The 'type' attribute allows for the specification of the expected
type when using a 'value'
or 'expression', but it is optional.
Literal value to be associated with the given header name.
Expression to be evaulated at runtime to determine the header value.
The EvaluationContext will
include variables for 'payload' and
'headers'.
Reference to be associated with the given header name.
Name of a method to be invoked on the referenced target object.
Boolean value to indicate whether this header value should overwrite an
existing header value for
the same name.
Defines a HeaderFilter endpoint to remove values defined in the MessageHeaders.
Specify one or more header names (as a comma separated list) to
be removed from the
MessageHeaders
of the Message being handled.
Boolean flag that specifies whether values provided in 'header-names' should be treated as
match patterns or literal values. For example header-names='foo*' would mean remove all
headers that begin with 'foo' including the header named 'foo*'. However if you want to
treat '*' as literal value setting this flag to FALSE will not perform pattern match and
the only header that will be removed is the one that is an exact match.
Defines a Transformer.
Defines a Transformer that converts any Object payload to a String by
invoking its toString()
method.
Defines a Transformer that converts any Object payload to a SpEL Map.
Defines a Transformer that converts SpEL-based Map to an object.
The name of the bean to be produced by this transformer. The bean MUST BE of scope 'prototype'.
NOTE: This attribute is mutually-exclusive with 'type'.
Defines a Transformer that converts any Object payload to a JSON String.
Reference to a Jackson ObjectMapper instance to be provided optionally
if the default ObjectMapper
configuration is not desirable.
Defines a Transformer that converts a JSON String to an object.
Reference to a Jackson ObjectMapper instance to be provided optionally
if the default ObjectMapper
configuration is not desirable.
Defines a Transformer that converts an object payload to a byte array.
Reference to a Serializer instance to convert from an object to a byte array.
This is optional.
The default will use standard Java serialization.
Defines a Transformer that converts a byte array to an object.
Reference to a Deserializer instance to convert from a byte array to an object.
This is optional.
The default will use standard Java deserialization.
Defines a Transformer that stores a Message and returns a new Message whose
payload is the id of
the stored Message.
Defines a Transformer that accepts a Message whose payload is a UUID and
retrieves the Message
associated with that id from a MessageStore if
available (else null).
If set to 'true' the Message will be removed from the MessageStore by
this transformer. Useful when Message can be 'claimed' only once. DEFAULT is 'false'.
Reference to the MessageStore to be used by this Claim Check transformer.
If not specified, the
default reference will be to a bean named 'messageStore'.
Defines a Message Filters that is used to decide whether a Message should be passed
along or dropped based on some criteria
The channel where the filter will send the messages that were dropped
An expression to be evaluated to determine if this recipient should be included in the
recipient
list for a given input Message. The evaluation result of the expression must be a boolean.
If this
attribute is not defined, the channel will always be among the list of recipients.
A value of the evaluation token that will be mapped to a channel reference
(e.g., mapping value='foo' channel='myChannel')
A reference to a bean that defines a Message Channel
(e.g., mapping value='foo' channel='myChannel')
Specify whether a failure to resolve a channel name returned by this
router should be ignored.
Reference to the default channel where Messages should be sent if channel
resolution fails to
return any channels. If no default channel
is
provided, the router will either drop the Message or throw an
Exception
depending on the value of the "resolution-required" attribute.
Specify whether this router should always be required to return at least
one channel or name.
Specify the maximum amount of time in milliseconds to wait when sending
Messages
to the target
MessageChannels. By default the send will block
indefinitely.
Specify whether a failure to send to a single channel should be ignored.
Otherwise
MessageDeliveryExceptions will be thrown.
Specify whether sequence number and size headers should be added to each
Message.
Defines a Splitter.
Specify whether the splitter method must return a non-null value. This value will be
FALSE by default, but if set to TRUE, a MessageHandlingException will be thrown when
the underlying service method (or expression) returns a NULL value.
Set this flag to false to prevent adding sequence related headers in this splitter.
This can be convenient in cases where the set sequence numbers conflict with downstream
custom aggregations.
Provide one or more delimiters (as a single String value, e.g. delimiters=",;:") for
tokenizing String-typed payload values. This attribute is only allowed if no 'ref' or
'expression' have been provided since that is when the DefaultMessageSplitter would
be used, and it's the implementation that contains the "delimiters" property.
Defines an aggregating message endpoint.
A SpEL expression to be evaluated against the input message list as its root object.
A reference to a bean that implements the release strategy.
The bean can be an implementation of the
ReleaseStrategy interface or a POJO
A method defined on the bean referenced by release-strategy, that implements the completion
decision algorithm.
A SpEL expression to evaluate against a root object that is the Collection of messages within the message group (e.g, size() > 6)
A reference to a bean that implements the decision algorithm as to whether a given
message group is complete. The bean can be an implementation of the
CorrelationStrategy interface or a POJO.
A method defined on the bean referenced by correlation-strategy, that implements the
correlation decision algorithm
A SpEL expression which implements correlation decision
algorithm to apply to the Message (e.g., payload.getPerson().getId() - correlate
based on the 'id' of the 'person' attribute of the message payload object)
The channel where the aggregator will send the messages that timed out (if send-partial-results-
on-expiry is 'false').
Reference to a MessageGroupStore for holding
state in between message processing. The default
is to use a volatile in-memory store, which means that unprocessed messages
will be lost if the JVM exits. To customize
the expiry of incomplete message groups configure the message store.
Specifies whether messages that expired should be aggregated and sent to the 'output-channel' or 'replyChannel'.
Messages are expired when their containing MessageGroup expires. One of the ways of expiring MessageGroups is by
configuring a MessageGroupStoreReaper. However MessageGroups can alternatively be expired by simply calling
MessageGroupStore.expireMessageGroup(groupId). That could be accomplished via a ControlBus operation
or by simply invoking that method if you have a reference to the MessageGroupStore instance.
Defines a resequencing message endpoint.
Comparator for messages used to sort the sequence when released. Defaults to comparing
the
sequence number header.
Flag to say that partial sequences can be released (e.g. 1-4 of 10).
Defaults to true, so the
sequence has to be complete before any messages
are released.
This is mutually exclusive with the release-strategy
attribute (either or none can be specified , but not both).
Defines a list of interceptors. Each element may be a ChannelInterceptor,
ref, or inner-bean.
Reference to a bean in this Application Context that implements ChannelInterceptor
Reference to a bean in this Application Context that implements ChannelInterceptor
Alows you to configure a Wire Tap interceptor that will send a copy of the message to a
channel identified by 'channel' attribute.
Defines a Wire Tap Channel Interceptor.
A reference to a bean in the Application Context
which implements MessageSelector that must accept a message for it to be
sent to the intercepting channel
The timeout for sending the message to the intercepting channel
A SpEL expression to be evaluated against the input Message as its root object.
The key for retrieving the expression from an ExpressionSource.
The reference to an ExpressionSource.
Defines a MessagePublishingInterceptor which allows you to generate messages
as a by-product of
method invocations on Spring configured components.
[REQUIRED] Channel name(s) or patterns. To specify more than one channel use
','
(e.g.,
channel-name-pattern="input*, foo, bar")
[OPTIONAL] Specifies the order in which this interceptor will be
added to the existing channel
interceptors (if any).
Negative value (e.g., -2) will signify BEFORE existing iinterceptors (if any). Positive
value (e.g., 2)
will signify AFTER existing interceptors (if any)
Allows you to define channel interceptors to be applied globally.
[REQUIRED] Channel name(s) or patterns. To specify more than one channel use
','
(e.g.,
channel-name-pattern="input*, foo, bar")
[OPTIONAL] Specifies the order in which this interceptor will be
added to the existing channel
interceptors (if any).
Negative value (e.g., -2) will signify BEFORE existing iinterceptors (if any). Positive
value (e.g., 2)
will signify AFTER existing interceptors (if any)
Allows you to register Converters (implementation of the Converter interface) that will
be automatically registered with the ConversionService. ConversionService itself does not have to be
explicitly defined since the default ConversionService will be registered under the name 'integrationConversionService'
unless bean with this name is already registered.
Identifies the Message channel where Message will be sent after it's being processed by this endpoint
Specify the maximum amount of time in milliseconds to wait when sending a reply
Message to the
output channel. By default the send will block for one second.
The receiving Message channel of this endpoint
Lifecycle attribute signaling if this component should be started during Application Context startup.