|
This version is still in development and is not considered stable yet. For the latest stable version, please use Spring Integration 7.1.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.2.
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.2?
For more details, see the GitHub Issues that were resolved as part of the 7.2 development process.
In general, the project has been moved to the latest dependency versions. Java 17 is still the baseline, but Java 25 is supported.
New Components
A new KafkaShareMessageDrivenChannelAdapter provides a message-driven inbound channel adapter for Apache Kafka share groups (queues), built on ShareKafkaMessageListenerContainer from Spring for Apache Kafka.
See Message-driven Channel Adapter for Share Groups for more information.
A new spring-integration-mqtt-client module has been introduced to provide similar capabilities to the existing spring-integration-mqtt, but based on the HiveMQ MQTT client.
The Paho-based spring-integration-mqtt module is deprecated for removal in favor of this new module.
See MQTT Support for more information.
A new PayloadValidatingMessageSelector accepts a message only if its payload passes a Spring Validator, such as a Bean Validation one from the LocalValidatorFactoryBean.
See Validating Payloads for more information.
General Changes
The AllowListDeserializingConverter (and every component built on it) now supports a default list of framework and JDK types for Java deserialization, instead of all classes; use addAllowedPatterns() to trust your own types.
See Java Deserialization for more information.
The DefaultErrorMessageStrategy now preserves the original headers when building the ErrorMessage.
See Error Handling for more information.
AMQP Support Changes
The wait-for-confirm option on the outbound channel adapter now also works with simple publisher confirms.
When the message has no correlation data, the send is performed within the scope of a RabbitTemplate.invoke() operation and waitForConfirmsOrDie() is used.
A warning is now logged when the option is set but the connection factory supports no publisher confirms at all.
See Outbound Channel Adapter for more information.
Feed Support Changes
The FeedEntryMessageSource now uses the feed’s published date when none of the retrieved entries has an updated or published date.
Undated entries are again sorted after dated entries, so they are emitted together with new dated entries.
See Duplicate Entries for more information.
JDBC Support Changes
The METADATA_VALUE column in the JdbcMetadataStore schema scripts is now NOT NULL.
Existing databases created with older scripts should remove any null-valued rows and alter the column to NOT NULL when upgrading.
See JDBC Metadata Store for more information.
On PostgreSQL, the DefaultLockRepository now adds ON CONFLICT DO NOTHING to its default insert query.
See JDBC Lock Registry for more information.
JDBC tests and documentation no longer use Apache Derby.
Use H2 or HSQL for embedded testing.
EmbeddedDatabaseType.DERBY is deprecated in Spring Framework 7.1.
The DerbyChannelMessageStoreQueryProvider and schema-derby.sql are deprecated for removal.
The <int-jdbc:message-store> element has a new allowed-patterns attribute.
The comma-delimited patterns are added to the default allow-list, the same way as addAllowedPatterns().
The mutually exclusive allowed-patterns-override attribute replaces the default allow-list instead, the same way as setAllowedPatterns().
The JdbcMessageStore and JdbcChannelMessageStore now also provide setAllowedPatterns() to replace the defaults.
HTTP Support Changes
The RestTemplate-based configuration for the HTTP outbound gateway and outbound channel adapter (the rest-template attribute, and the respective Java DSL and constructor options) is now deprecated in favor of RestClient-based configuration, which also gains new options for configuring error handling.
The SerializingHttpMessageConverter now allows only the default framework and JDK types for deserialization; use addAllowedPatterns() to trust additional classes.
See the HTTP Support chapter for more information about these and other changes.
FTP Support Changes
The FTP session factories can now connect through a proxy.
The proxy property of the AbstractFtpSessionFactory accepts a java.net.Proxy (SOCKS or HTTP), and the new FtpHttpProxySessionFactory tunnels the connections through an HTTP proxy that requires credentials.
See Proxy Support for more information.
JMS Support Changes
Spring Framework’s JMS MessageConverter implementations may now return null from fromMessage() when a JMS Message has no payload.
A null payload conversion is treated as a conversion failure, a MessageConversionException is then thrown.
This affects AbstractJmsChannel, JmsDestinationPollingSource, ChannelPublishingJmsMessageListener, and JmsOutboundGateway.
See JMS Support for more information.
The DefaultJmsHeaderMapper can now be configured with the patterns of the message header names to map outbound to JMS properties, through its setOutboundHeaderNames() method.
See Mapping Message Headers to and from JMS Message for more information.