For those who are already familiar with Spring Integration, this chapter provides a brief overview of the new features of version 5.2.
If you are interested in the changes and features that were introduced in earlier versions, see the Change History.
If you are interested in more details, see the Issue Tracker tickets that were resolved as part of the 5.2 development process.
Also see a new Reactive Streams Support chapter in this documentation.
See the Migration Guide about behavior changes in this version.
spring-integration-rsocket module is now available with channel adapter implementations for RSocket protocol support.
See RSocket Support for more information.
RateLimiterRequestHandlerAdvice is now available for limiting requests rate on handlers.
See Rate Limiter Advice for more information.
CacheRequestHandlerAdvice is now available for caching request results on handlers.
See Caching Advice for more information.
The JSR223 scripting module now includes a support for Kotlin scripts. See Scripting Support for more information.
FluxAggregatorMessageHandler is now available for grouping and windowing messages logic based on the Project Reactor
See Flux Aggregator for more information.
Simple Apache Avro transformers are now provided. See Avro Transformers for more information.
JsonToObjectTransformer now supports generics for the target object to deserialize into.
See JSON Transformers for more information.
splitter now supports a
discardChannel configuration option.
See Splitter for more information.
The Control Bus can now handle
Pausable (extension of
See Control Bus for more information.
Function<MessageGroup, Map<String, Object>> strategy has been introduced for the aggregator component to merge and compute headers for output messages.
See Aggregator Programming Model for more information.
MessageHandlingException s thrown in the framework, includes now a bean resource and source for back tracking a configuration part in case no end-user code involved.
See Error Handling for more information.
For better end-user experience, Java DSL now provides a configurer variant for starting flow with a gateway interface.
IntegrationFlows.from(Class<?> serviceInterface, Consumer<GatewayProxySpec> endpointConfigurer) JavaDocs for more information.
MethodArgsHolder is now a root object for evaluation context for all the expressions in the
#method evaluation context variables are now deprecated.
See Messaging Gateways for more information.
The outbound endpoints can now be configured to synthesize a "nack" if no publisher confirm is received within a timeout. See Outbound Channel Adapter for more information.
The inbound channel adapter can now receive batched messages as a
List<?> payload instead of receiving a discrete message for each batch fragment.
See Batched Messages for more information.
The outbound channel adapter can now be configured to block the calling thread until a publisher confirm (acknowledgment) is received. See Outbound Channel Adapter for more information.
Some improvements to filtering remote files have been made. See Remote Persistent File List Filters for more information.
The length header used by the
ByteArrayLengthHeaderSerializer can now include the length of the header in addition to the payload.
See Message Demarcation (Serializers and Deserializers) for more information.
When using a
TcpNioServerConnectionFactory, priority is now given to accepting new connections over reading from existing connections, but it is configurable.
See About Non-blocking I/O (NIO) for more information.
The outbound gateway has a new property
closeStreamAfterSend; when used with a new connection for each request/reply it signals EOF to the server, without closing the connection.
This is useful for servers that use the EOF to signal end of message instead of some delimiter in the data.
See TCP Gateways for more information.
The client connection factories now support
connectTimeout which causes an exception to be thrown if the connection is not established in that time.
See TCP Connection Factories for more information.
SoftEndOfStreamException is now a
RuntimeException instead of extending
AbstractMailReceiver has now an
autoCloseFolder option (
true by default), to disable an automatic folder close after a fetch, but populate
IntegrationMessageHeaderAccessor.CLOSEABLE_RESOURCE header instead for downstream interaction.
See Mail-receiving Channel Adapter for more information.
The HTTP inbound endpoint now support a request payload validation. See HTTP Support for more information.
WebFluxRequestExecutingMessageHandler now supports a
MultiValueMap as a request message
WebFluxInboundEndpoint now supports a request payload validation.
See WebFlux Support for more information.
MongoDbMessageStore can now be configured with custom converters.
See MongoDB Support for more information.
You can now disable falling back to the channel key as the channel bean name. See Dynamic Routers for more information.
RotatingServerAdvice is decoupled now from the
RotationPolicy and its
The remote file information, including host/port and directory are included now into message headers in the
Also this information is included into headers in the read operations results of the
The FTP outbound endpoints now support
chmod to change permissions on the uploaded file.
(SFTP already supported it since version 4.3).
See FTP(S) Support and SFTP Support for more information.