For those who are already familiar with Spring Integration, this chapter provides a brief overview of the new features of version 6.1.
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 6.1?
If you are interested in more details, see the Issue Tracker tickets that were resolved as part of the 6.1 development process.
In general the project has been moved to the latest dependency versions.
New Components
Zip Support
The Zip Spring Integration Extension project has been migrated as the spring-integration-zip
module.
See Zip Support for more information.
ContextHolderRequestHandlerAdvice
The ContextHolderRequestHandlerAdvice
allows to store a value from a request message into some context around MessageHandler
execution.
See Context Holder Advice for more information.
The handleReactive()
operator for Java DSL
The IntegrationFlow
can now end with a convenient handleReactive(ReactiveMessageHandler)
operator.
See ReactiveMessageHandler
for more information.
PartitionedChannel
A new PartitionedChannel
has been introduced to process messages with the same partition key in the same thread.
See PartitionedChannel
for more information.
General Changes
-
Added support for transforming to/from Protocol Buffers. See Protocol Buffers Transformers for more information.
-
The
MessageFilter
now emits a warning into logs when message is silently discarded and dropped. See Filter for more information. -
The default timeout for send and receive operations in gateways and replying channel adapters has been changed from infinity to
30
seconds. Only one left as a1
second is areceiveTimeout
forPollingConsumer
to not block a scheduler thread too long and let other queued tasks to be performed with theTaskScheduler
. -
The
IntegrationComponentSpec.get()
method has been deprecated with removal planned for the next version. SinceIntegrationComponentSpec
is aFactoryBean
, its bean definition must stay as is without any target object resolutions. The Java DSL and the framework by itself will manage theIntegrationComponentSpec
lifecycle. See Java DSL for more information. -
The
AbstractMessageProducingHandler
is marked as anasync
by default if its output channel is configured to aReactiveStreamsSubscribableChannel
. See Asynchronous Service Activator for more information.
Web Sockets Changes
A ClientWebSocketContainer
can now be configured with a predefined URI
instead of a combination of uriTemplate
and uriVariables
.
See WebSocket Overview for more information.
JMS Changes
The JmsInboundGateway
, via its ChannelPublishingJmsMessageListener
, can now be configured with a replyToExpression
to resolve a reply destination against the request message at runtime.
See JMS Inbound Gateway for more information.
Mail Changes
The (previously deprecated) ImapIdleChannelAdapter.sendingTaskExecutor
property has been removed in favor of an asynchronous message process downstream in the flow.
See Mail-receiving Channel Adapter for more information.
Files Changes
The FileReadingMessageSource
now exposes watchMaxDepth
and watchDirPredicate
options for the WatchService
.
See WatchServiceDirectoryScanner
for more information.
AMQP Changes
The Java DSL API for Rabbit Streams (the RabbitStream
factory) exposes additional properties for simple configurations.
See RabbitMQ Stream Queue Support
for more information.
JDBC Changes
The DefaultLockRepository
now exposes setters for insert
, update
and renew
queries.
See JDBC Lock Registry for more information.