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

Changes between 6.1 and 6.2

New Components

Debezium Inbound Channel Adapter

The Debezium Engine based Change Data Capture (CDC) channel adapter, that allows capturing database change events, converting them into Messages and streaming those to the outbound channels. See Debezium Support for more information.

General Changes

  • The XML configuration for <poller> and @Poller annotation now support ISO 8601 duration format for fixed-delay, fixed-rate and initial-delay options. See Polling Consumer for more information.

  • Java, Groovy and Kotlin DSLs have now context-specific methods in the IntegrationFlowDefinition with a single Consumer argument to configure an endpoint and its handler with one builder and readable options. See, for example, transformWith(), splitWith() in Java DSL Chapter.

  • A new spring.integration.endpoints.defaultTimeout global property has been introduced to override the default 30 seconds timeout for all the endpoints in the application. See Global Properties for more information.

  • The @MessagingGateway and GatewayEndpointSpec provided by the Java DSL now expose the errorOnTimeout property of the internal MethodInvocationGateway extension of the MessagingGatewaySupport. See Gateway Behavior When No response Arrives for more information.

  • The LockRegistry provides template-like API to execute provided task while locked. See Distributed Locks for more information.

  • The default trigger for polling endpoint is now a PeriodicTrigger instance with a 1 second fixed delay period; previously, the default was 10 milliseconds. See Polling Consumer for more information.

WebSockets Changes

  • For the server and client WebSocket containers, the send buffer overflow strategy is now configurable in IntegrationWebSocketContainer and in XML via send-buffer-overflow-strategy. This strategy determines the behavior when a session’s outbound message buffer has reached the configured limit. See WebSockets Support for more information.

Apache Kafka Support Changes

The KafkaMessageSource now extracts an ErrorHandlingDeserializer configuration from the consumer properties and re-throws DeserializationException extracted from failed record headers. See Kafka Inbound Channel Adapter for more information.

JDBC Support Changes

The JdbcMessageStore, JdbcChannelMessageStore, JdbcMetadataStore, and DefaultLockRepository implement SmartLifecycle and perform a SELECT COUNT query, on their respective tables, in the start() method to ensure that the required table (according to the provided prefix) is present in the target database. The PostgresChannelMessageStoreQueryProvider now provides single DELETE…​RETURNING statement for polling queries. For this purpose the ChannelMessageStoreQueryProvider exposes isSingleStatementForPoll option which is consulted from the JdbcChannelMessageStore. See JDBC Message Store for more information.

MongoDB Support Changes

A new option setCreateIndexes(boolean) has been introduced in AbstractConfigurableMongoDbMessageStore to disable the auto indexes creation. See MongoDB Message Store for an example.

Remote Files Support Changes

FtpLastModifiedFileListFilter, SftpLastModifiedFileListFilter and SmbLastModifiedFileListFilter have been introduced to allow files filtering based on a last-modified strategy respectively for FTP, SFTP and SMB. See FTP Inbound Channel Adapter, SFTP Inbound Channel Adapter, and SMB Inbound Channel Adapter for more information.

SFTP Support Changes

A new DefaultSftpSessionFactory.createSftpClient(…​) method has been introduced to support a custom SftpClient when overridden. See SFTP Session Factory for more information.

Security Support Changes

The last class in spring-integration-security module SecurityContextPropagationChannelInterceptor has been deprecated in favor of similar class moved to spring-security-messaging module. See Security in Spring Integration for more information.