Replies: 4 comments 2 replies
-
|
If we cannot introduce such minor API changes in a minor release, when can we introduce them? This library focuses on compatibility where it really matters: it supports RabbitMQ server versions going to back to 2010. |
Beta Was this translation helpful? Give feedback.
-
|
The |
Beta Was this translation helpful? Give feedback.
-
|
Thanks for updating the changelog. As an open source maintainer myself, I try to limit binary incompatibilities to major releases. It's definitely not possible in every situation, but I try to avoid them when possible. In this particular instance, changing the return type of Totally your call though. I appreciate your work on this project. |
Beta Was this translation helpful? Give feedback.
-
|
I think this is a change from |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Describe the bug
Changes to
ConnectionFactorymade in 5.27.0 are not binary compatible with 5.26.0. They are source-compatible, however.For example, the
useNio()method in 5.26.0 was:But in 5.27.0, it changed to:
Changing the return type of a method is not binary compatible.
When a user uses 5.27.0 is at runtime, with code that was compiled against 5.26.0, the following error will occur:
A more concrete example is when an app upgrades from Spring Boot 3.5.8 to 4.0.0, the version of amqp-client is bumped from 5.25.0 to 5.27.0. If that application also uses a library calling
useNio()that was compiled against 5.0.0 -> 5.26.0, then the runtime error will occur.Reproduction steps
Expected behavior
Expect no error to occur.
Expect minor versions of the rabbitmq-java-client to remain binary compatible
Additional context
Ideally, revert the method signature, to keep binary compatibility with 5.0 -> 5.26
Otherwise, call out the breaking change in the release notes for 5.27.0
Beta Was this translation helpful? Give feedback.
All reactions