For those who are already familiar with Spring Integration, this chapter provides a brief overview of the new features of version 5.4.

If you are interested in the changes and features that were introduced in earlier versions, see the Change History.

What’s New in Spring Integration 5.4?

If you are interested in more details, see the Issue Tracker tickets that were resolved as part of the 5.4 development process.

New Components

Apache Kafka Channel Adapters

The standalone Spring Integration Kafka project has been merged as a spring-integration-kafka module to this project. See Spring for Apache Kafka Support for more information.

The KafkaProducerMessageHandler sendTimeoutExpression default has changed. See Kafka Outbound Channel Adapter for more information.

R2DBC Channel Adapters

The Channel Adapters for R2DBC database interaction have been introduced. See R2DBC Support for more information.

Redis Stream Support

The Channel Adapters for Redis Stream support have been introduced. See Redis Stream Outbound Channel Adapter for more information.

Renewable Lock Registry

A Renewable lock registry has been introduced to allow renew lease of a distributed lock. See JDBC implementation for more information.

ZeroMQ Support

A ZeroMqChannel has been introduced. See ZeroMQ Support for more information.

General Changes

The one-way messaging gateway (the void method return type) now sets a nullChannel explicitly into the replyChannel header to ignore any possible downstream replies. See Setting the Default Reply Channel for more information.

The aggregator (and resequencer) can now expire orphaned groups (groups in a persistent store where no new messages arrive after an application restart). See Aggregator Expiring Groups for more information.

The legacy metrics that were replaced by Micrometer meters have been removed.

The Thread Barrier has now two separate timeout options: requestTimeout and triggerTimeout.

TCP Changes

Connection factories now support multiple sending components (TcpSender); they remain limited to one receiving component (TcpListener). This allows, for example, an inbound gateway and outbound channel adapter to share the same factory, supporting both request/reply and arbitrary messaging from the server to the client. Shared factories should not be used with outbound gateways, unless single-use connections or the ThreadAffinityClientConnectionFactory are being used. See Collaborating Channel Adapters and TCP Gateways for more information.

RMI Changes

The spring-integration-rmi module is deprecated with no replacement and is going to be removed in the next major version. See RMI Support for more information.

AMQP Changes

The outbound endpoints now have a new mechanism for handling publisher confirms and returns. See Alternative Mechanism for Publisher Confirms and Returns for more information.

A new BatchMode.EXTRACT_PAYLOAD_WITH_HEADERS is supported by the AmqpInboundChannelAdapter. See Inbound Channel Adapter for more information.