Annotation Type Filter
@Target({METHOD,ANNOTATION_TYPE}) @Retention(RUNTIME) @Documented public @interface Filter
Indicates that a method is capable of playing the role of a Message Filter.
A method annotated with @Filter may accept a parameter of type
Message
or of the expected
Message payload's type. Any type conversion supported by default or any
Converters registered with the "integrationConversionService" bean will be
applied to the Message payload if necessary. Header values can also be passed
as Message parameters by using the
@Header
parameter annotation.
The return type of the annotated method must be a boolean (or Boolean).
- Since:
- 2.0
- Author:
- Mark Fisher, Gary Russell, Artem Bilan
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description String[]
adviceChain
Specify a "chain" ofAdvice
beans that will "wrap" the message handler.String
autoStartup
TheSmartLifecycle
autoStartup
option.String
discardChannel
Specify the channel to which this filter will send messages that do no pass the selector.String
discardWithinAdvice
Whentrue
(default) any discard action (and exception thrown) will occur within the scope of the advice class(es) in the chain.String
inputChannel
Specify the channel from which this filter will consume messages.String
outputChannel
Specify the channel to which this filter will send messages that pass the selector.String
phase
Specify aSmartLifecycle
phase
option.Poller[]
poller
Reactive
reactive
String
sendTimeout
Specify the maximum amount of time in milliseconds to wait when sending a replyMessage
to theoutputChannel()
.String
throwExceptionOnRejection
Throw an exception if the filter rejects the message.
-
Element Details
-
inputChannel
String inputChannelSpecify the channel from which this filter will consume messages. If the channel does not exist, aDirectChannel
with this name will be registered in the application context.- Returns:
- The channel name.
- Default:
- ""
-
outputChannel
String outputChannelSpecify the channel to which this filter will send messages that pass the selector.- Returns:
- The channel name.
- Default:
- ""
-
discardChannel
String discardChannelSpecify the channel to which this filter will send messages that do no pass the selector.- Returns:
- The channel name.
- Default:
- ""
-
throwExceptionOnRejection
String throwExceptionOnRejectionThrow an exception if the filter rejects the message. Defaults tofalse
. Can be specified as 'property placeholder', e.g.${spring.integration.throwExceptionOnRejection}
.- Returns:
- the throw Exception on rejection flag.
- Default:
- ""
-
adviceChain
String[] adviceChainSpecify a "chain" ofAdvice
beans that will "wrap" the message handler. Only the handler is advised, not the downstream flow.- Returns:
- the advice chain.
- Default:
- {}
-
discardWithinAdvice
String discardWithinAdviceWhentrue
(default) any discard action (and exception thrown) will occur within the scope of the advice class(es) in the chain. Otherwise, these actions will occur after the advice chain returns. Can be specified as 'property placeholder', e.g.${spring.integration.discardWithinAdvice}
.- Returns:
- the discard within advice flag.
- Default:
- ""
-
sendTimeout
String sendTimeoutSpecify the maximum amount of time in milliseconds to wait when sending a replyMessage
to theoutputChannel()
. Defaults to-1
- blocking indefinitely. It is applied only if the output channel has some 'sending' limitations, e.g.QueueChannel
with fixed a 'capacity'. In this case aMessageDeliveryException
is thrown. The 'sendTimeout' is ignored in case ofAbstractSubscribableChannel
implementations. Can be specified as 'property placeholder', e.g.${spring.integration.sendTimeout}
.- Returns:
- The timeout for sending results to the reply target (in milliseconds)
- Default:
- ""
-
autoStartup
String autoStartupTheSmartLifecycle
autoStartup
option. Can be specified as 'property placeholder', e.g.${foo.autoStartup}
. Defaults totrue
.- Returns:
- the auto startup
boolean
flag.
- Default:
- ""
-
phase
String phaseSpecify aSmartLifecycle
phase
option. DefaultsInteger.MAX_VALUE / 2
forPollingConsumer
andInteger.MIN_VALUE
forEventDrivenConsumer
. Can be specified as 'property placeholder', e.g.${foo.phase}
.- Returns:
- the
SmartLifecycle
phase.
- Default:
- ""
-
poller
Poller[] poller- Returns:
- the
Poller
options for a polled endpoint (PollerMetadata
). This attribute is anarray
just to allow an empty default (no poller). Mutually exclusive withreactive()
.
- Default:
- {}
-
reactive
Reactive reactive- Default:
- @org.springframework.integration.annotation.Reactive("\n\t\t\n\t\t\n\ue000\ue001\ue002\n\t\t\t\t\n")
-