We are pleased to announce the first milestone of Spring AMQP 2.0 is now available.
Here are some highlights of this release
The framework is now fully Java 8 based; several functional interfaces are provided for convenient Lambda implementations (callbacks,
ReplyingMessageListeneretc). Java 8 is now a requirement. It is also based on Spring Framework 5.0.
The framework uses the new 4.0 amqp-client library.
DirectMessageListenerContaineris now available alongside the existing
SimpleMessageListenerContainer. The new container actually has a simpler architecture and the listener is called directly on the amqp-client thread (hence the name
Direct…). See Choosing a Container to help you decide which container is appropriate for your application.
A subclass -
DirectReplyToMessageLisenerContainer- is also provided, specifically for using the RabbitMQ Direct ReplyTo feature for request/reply messaging. This is now used by the
RabbitTemplate(by default) rather than creating a consumer per request/reply as was the case previously. Consumers are cached for reuse.
AsyncRabbitTemplatenow supports direct replyTo, utilizing the new container; previously the async template did not support direct replyTo.
@RabbitListenerannotations can now be configured with an error handler and the ability to send exceptions to the sender when request/reply messaging is being used.
Connection and channel listeners now receive shutdown signals.
You can now assign names to connections created by Spring AMQP - the name appears on the RabbitMQ Admin UI.
Limited stateful retry (1 redelivery attempt) is now available (when an inbound message does not have a message id) without the need to configure a
MissingMessageIdAdvicewhich has now been removed from the framework. Spring Retry 1.2 is required to support this feature.
The log4j appender is no longer provided due to the EOL of log4j (the log4j2 and logback appenders remain available).
Please take this opportunity to test these new capabilities and provide feedback. The next milestone will be early next year, with GA in the first quarter. Please use JIRA to vote for backlog issues, or add requests for new features you would like to see in this major new release.
See the project page for download and documentation links.