This version is still in development and is not considered stable yet. For the latest stable version, please use Spring AMQP 3.2.6! |
What’s New
Changes in 4.0 Since 3.2
The spring-rabbitmq-client
module
The new spring-rabbitmq-client
module (with same artifact name) is introduced.
This is an implementation of AMQP 1.0 protocol specific to RabbitMQ since 4.0
and based on the com.rabbitmq.client:amqp-client
library.
See RabbitMQ AMQP 1.0 Support for more information.
Deprecation of JUnit 4 utilities
The latest JUnit 4 release was 4.13.2
in February 2021 and the next JUnit 6 will be based on Java 17.
There is no need to keep outdated utilities, and the recommendation is to migrate to respective tools for JUnit Jupiter.
The Jackson 3 Support
The Jackson 2 has been deprecated for removal in the whole Spring portfolio. Respective new classes have been introduced to support Jackson 3.
See Message Converters for more information.
MessageListenerContainer Changes
The SimpleMessageListenerContainer
now awaits at most shutdownTimeout
for pending replies from the provided RabbitTemplate
listener on its shutdown.
Migration to Spring Core Retry
The Spring Retry API and usage in the project have been replaced with similar API from spring-core
module.
The respective org.springframework.retry:spring-retry
dependency has been removed.
This is a breaking change, but reasonable for the current new major generation of the whole Spring portfolio.
See new convenient classes: StatelessRetryOperationsInterceptor
and StatefulRetryOperationsInterceptor
.
The SendRetryContextAccessor
was removed in favor of the MessageRecoverer
contract.
The replyTo
address of the failure could be obtained from the ReplyFailureException
propagated after retry exhausted into the mentioned MessageRecoverer
.