Skip to content

Releases: rabbitmq/rabbitmq-java-client

5.3.0

14 Jun 11:50
Compare
Choose a tag to compare

This is a maintenance release with a new feature, a usability improvement, and a bug fix. It is compatible with 5.2.x. All users of the 5.x.x series are encouraged to use this version. Users of previous versions should check the 5.0.0 changelog for breaking changes.

Changes between 5.2.0 and 5.3.0

Multi-threaded topology recovery

Automatic topology recovery can now be performed with an ExecutorService provided with ConnectionFactory#setTopologyRecoveryExecutor. This can speed up topology recovery for connections that have lots of queues and bindings. Early tests showed multi-threaded topology recovery can be 5 times faster than single-threaded topology recovery. Note single-threaded topology recovery is still the default.

Thanks to @vikinghawk for this contribution.

GitHub PR: #370

Reduce default channel max to 2047

Max number of channels has been reduced from unlimited to 2048 as of RabbitMQ 3.7.5, to avoid leaking-channel applications starving broker resources. This client-side change is a safety measure for clients that would upgrade the server later.

GitHub issue: #366

Use default client properties when reading from properties file

GitHub issue: #368

4.7.0

14 Jun 09:46
Compare
Choose a tag to compare

This is a maintenance release with a new feature, a usability improvement, and a bug fix. It is compatible with 4.6.x. All users of the 4.x.x and 3.6.x series are encouraged to use this version.

Changes between 4.6.0 and 4.7.0

Multi-threaded topology recovery

Automatic topology recovery can now be performed with an ExecutorService provided with ConnectionFactory#setTopologyRecoveryExecutor. This can speed up topology recovery for connections that have lots of queues and bindings. Early tests showed multi-threaded topology recovery can be 5 times faster than single-threaded topology recovery. Note single-threaded topology recovery is still the default.

Thanks to @vikinghawk for this contribution.

GitHub PR: #370

Reduce default channel max to 2047

Max number of channels has been reduced from unlimited to 2048 as of RabbitMQ 3.7.5, to avoid leaking-channel applications starving broker resources. This client-side change is a safety measure for clients that would upgrade the server later.

GitHub issue: #366

Use default client properties when reading from properties file

GitHub issue: #368

6.0.0.M1

08 Jun 12:18
Compare
Choose a tag to compare
6.0.0.M1 Pre-release
Pre-release

This is the first milestone release for 6.0.0. It introduces new metrics on published messages. This pre-release introduces also a breaking change which impacts users implementing the MetricsCollector interface in their applications. Users of the 5.x.x series are encouraged to test this version.

Changes between 5.x.x and 6.0.0.M1

Metrics for confirmed and unsuccessful outgoing publishes

The client now collects metrics on confirmed, failed, nacked, and unroutable outgoing messages. This change implies a change in the MetricsCollector interface. This is a breaking change for anyone implementing this interface in their application (which is unlikely to be).

Thanks to @slayful for this contribution.

GitHub PR: #354

5.3.0.RC1

04 Jun 11:40
Compare
Choose a tag to compare
5.3.0.RC1 Pre-release
Pre-release

This is a pre-release for 5.3.0, a maintenance release with a new feature, a bug fix, and usability improvements. It is compatible with 5.2.x. All users of the 5.x.x series are encouraged to test this version.

Changes between 5.2.0 and 5.3.0.RC1

Multi-threaded topology recovery

Automatic topology recovery can now be performed with an ExecutorService provided with ConnectionFactory#setTopologyRecoveryExecutor. This can speed up topology recovery for connections that have lots of queues and bindings. Early tests showed multi-threaded topology recovery can be 5 times faster than single-threaded topology recovery. Note single-threaded topology recovery is still the default.

Thanks to @vikinghawk for this contribution.

GitHub PR: #370

Throw an exception instead of trying to transmit a header frame that exceeds max frame size

Thanks to @ibolotin for this contribution.

GitHub issue: #362

Reduce default channel max to 2047

Max number of channels has been reduced from unlimited to 2048 as of RabbitMQ 3.7.5, to avoid leaking-channel applications starving broker resources. This client-side change is a safety measure for clients that would upgrade the server later.

GitHub issue: #366

Use default client properties when reading from properties file

GitHub issue: #368

4.7.0.RC1

01 Jun 14:58
Compare
Choose a tag to compare
4.7.0.RC1 Pre-release
Pre-release

This is a pre-release for 4.7.0, a maintenance release with a new feature, a usability improvement, and a bug fix. It is compatible with 4.6.x. All users of the 4.x.x and 3.6.x series are encouraged to test this version.

Changes between 4.6.0 and 4.7.0.RC1

Multi-threaded topology recovery

Automatic topology recovery can now be performed with an ExecutorService provided with ConnectionFactory#setTopologyRecoveryExecutor. This can speed up topology recovery for connections that have lots of queues and bindings. Early tests showed multi-threaded topology recovery can be 5 times faster than single-threaded topology recovery. Note single-threaded topology recovery is still the default.

Thanks to @vikinghawk for this contribution.

GitHub PR: #370

Reduce default channel max to 2047

Max number of channels has been reduced from unlimited to 2048 as of RabbitMQ 3.7.5, to avoid leaking-channel applications starving broker resources. This client-side change is a safety measure for clients that would upgrade the server later.

GitHub issue: #366

Use default client properties when reading from properties file

GitHub issue: #368

4.6.0

26 Mar 12:17
Compare
Choose a tag to compare

This is a maintenance release with dependency upgrades only. It is compatible with 4.5.x. All users of the 4.x.x and 3.6.x series are encouraged use this version.

Changes between 4.5.0 and 4.6.0

Upgrade to Micrometer 1.0.2

MicrometerMetricsCollector was using API from Micrometer 1.0.0.rc6 and those API were removed in Micrometer 1.0.0 GA. MicrometerMetricsCollector has been fixed to work against Micrometer 1.0.x.

GitHub issues: #351, #353

Upgrade dependencies

Upgrade to SLF4J 1.7.25 (mandatory dependency) and to Dropwizard Metrics 3.2.6 (optional dependency). This shouldn't impact applications whatsoever.

GitHub commit: eed963c

4.6.0.RC1

19 Mar 15:58
Compare
Choose a tag to compare
4.6.0.RC1 Pre-release
Pre-release

This is a pre-release for 4.6.0, a maintenance release with dependency upgrades only. It is compatible with 4.5.x. All users of the 4.x.x and 3.6.x series are encouraged to test this version.

Changes between 4.5.0 and 4.6.0.RC1

Upgrade to Micrometer 1.0.2

MicrometerMetricsCollector was using API from Micrometer 1.0.0.rc6 and those API were removed in Micrometer 1.0.0 GA. MicrometerMetricsCollector has been fixed to work against Micrometer 1.0.x.

GitHub issues: #351, #353

Upgrade dependencies

Upgrade to SLF4J 1.7.25 (mandatory dependency) and to Dropwizard Metrics 3.2.6 (optional dependency). This shouldn't impact applications whatsoever.

GitHub commit: eed963c

5.2.0

13 Mar 09:02
Compare
Choose a tag to compare

This is a maintenance release that catches up with new features and bug fixes from 4.5.0. It is compatible with 5.1.2. All users of the 5.x.x series are encouraged to use this version. Users of previous versions should check the 5.0.0 changelog for breaking changes.

Changes between 5.1.2 and 5.2.0

Introduce CredentialsProvider interface for authentication

This can be used to provide different credentials between re-connection.

Thanks to @spatula75 for this contribution.

GitHub PR: #350

Add excludeQueueFromRecovery method

This adds a public method to AutorecoveringConnection to allow for removal of a queue from recorded queues (and its related bindings) without having to call Channel#queueDelete.

Thanks to @vikinghawk for this contribution.

GitHub PR: #346

Trigger recovery if a socket write fails

Detecting connection failure on reading can take a lot of time (even forever if the reading thread is stuck), so connection recovery can now be triggered when a write operation fails. This can make the client more reactive to detect TCP connection failure.

GitHub issue: #341

Add RpcClient doCall/responseCall/primitiveCall overloads which include timeout

Thanks to @AndreasPresthammer for this contribution.

GitHub PR: #338

Fix a potential race condition between channel recovery and acknowledgement offset

During recovery, when attempting to acknowledge a delivery the channel could be closed with
reply-code=406, reply-text=PRECONDITION_FAILED - unknown delivery tag 0, class-id=60, method-id=80) and messages would stop being delivered.

Thanks to @vikinghawk for this contribution.

GitHub PR: #343

Upgrade to Micrometer 1.0.0

GitHub issue: #351

5.2.0.RC1

27 Feb 15:30
Compare
Choose a tag to compare
5.2.0.RC1 Pre-release
Pre-release

This is a pre-release for 5.2.0, a maintenance release that catches up with new features and bug fixes from 4.5.0. It is compatible with 5.1.2. All users of the 5.x.x series are encouraged to test this version. Users of previous versions should check the 5.0.0 changelog for breaking changes.

Changes between 5.1.2 and 5.2.0.RC1

Introduce CredentialsProvider interface for authentication

This can be used to provide different credentials between re-connection.

Thanks to @spatula75 for this contribution.

GitHub PR: #350

Add excludeQueueFromRecovery method

This adds a public method to AutorecoveringConnection to allow for removal of a queue from recorded queues (and its related bindings) without having to call Channel#queueDelete.

Thanks to @vikinghawk for this contribution.

GitHub PR: #346

Trigger recovery if a socket write fails

Detecting connection failure on reading can take a lot of time (even forever if the reading thread is stuck), so connection recovery can now be triggered when a write operation fails. This can make the client more reactive to detect TCP connection failure.

GitHub issue: #341

Add RpcClient doCall/responseCall/primitiveCall overloads which include timeout

Thanks to @AndreasPresthammer for this contribution.

GitHub PR: #338

Fix a potential race condition between channel recovery and acknowledgement offset

During recovery, when attempting to acknowledge a delivery the channel could be closed with
reply-code=406, reply-text=PRECONDITION_FAILED - unknown delivery tag 0, class-id=60, method-id=80) and messages would stop being delivered.

Thanks to @vikinghawk for this contribution.

GitHub PR: #343

Upgrade to Micrometer 1.0.0

GitHub issue: #351

4.5.0

26 Feb 09:51
Compare
Choose a tag to compare

Changes between 4.4.2 and 4.5.0

This is a maintenance release that includes new features and bug fixes. This release is backward-compatible with 4.4.0. Users of the 4.x.x and 3.6.x series are encouraged to use this release.

Introduce CredentialsProvider interface for authentication

This can be used to provide different credentials between re-connection.

Thanks to @spatula75 for this contribution.

GitHub PR: #350

Add excludeQueueFromRecovery method

This adds a public method to AutorecoveringConnection to allow for removal of a queue from recorded queues (and its related bindings) without having to call Channel#queueDelete.

Thanks to @vikinghawk for this contribution.

GitHub PR: #346

Trigger recovery if a socket write fails

Detecting connection failure on reading can take a lot of time (even forever if the reading thread is stuck), so connection recovery can now be triggered when a write operation fails. This can make the client more reactive to detect TCP connection failure.

GitHub issue: #341

Add RpcClient doCall/responseCall/primitiveCall overloads which include timeout

Thanks to @AndreasPresthammer for this contribution.

GitHub PR: #338

Fix a potential race condition between channel recovery and acknowledgement offset

During recovery, when attempting to acknowledge a delivery the channel could be closed with
reply-code=406, reply-text=PRECONDITION_FAILED - unknown delivery tag 0, class-id=60, method-id=80) and messages would stop being delivered.

Thanks to @vikinghawk for this contribution.

GitHub PR: #343