This version is still in development and is not considered stable yet. For the latest stable version, please use Spring Integration 6.5.1!

What’s New?

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

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 7.0?

For more details, see the GitHub Issues that were resolved as part of the 7.0 development process.

In general the project has been moved to the latest dependency versions. Java 17 is still baseline, but Java 24 is supported.

General Changes

Junit 4 Based Support Components are deprecated.

The project now leverages JSpecify annotations to expose null-safe APIs and to check the consistency of those nullability declarations with NullAway as part of its build.

New Components

A new DistributedLock interface has been introduced, providing new methods, lock(Duration ttl) and tryLock(long time, TimeUnit unit, Duration ttl), to acquire a lock with a custom time-to-live (TTL). See Distributed Locks for more information.

The Jackson 2 support has been deprecated for removal. Jackson 3 is now the default with new components: JacksonJsonObjectMapper, JacksonPropertyAccessor, JacksonIndexAccessor, and JacksonMessagingUtils. See their JavaDocs for more information, and deprecated classes for migration path.

JDBC Changes

The JDBC module now provides a Java DSL API via its dedicated org.springframework.integration.jdbc.dsl.Jdbc factory. The Java DSL for JDBC Components chapter provides more details.

The JdbcLock now supports the feature of customized time-to-live for the lock status data. See JDBC Lock Registry for more information.

Redis Changes

The RedisLock now supports the feature of customized time-to-live for the lock status data. See Redis Lock Registry for more information.

Hazelcast Changes

Previously deprecated classes in the spring-integation-hazelcast module, such as LeaderInitiator, HazelcastMembershipListener, HazelcastLocalInstanceRegistrar and HazelcastLockRegistry, are now removed due to not supported CP-subsystem in Hazelcast library for Open Source.

MQTT Changes

The AbstractMqttMessageDrivenChannelAdapter and ClientManager implementations now expose a quiescentTimeout option which is propagated in their stop() method down to the disconnectForcibly() API of the MQTT Paho clients. See MQTT Support for more information.