SimaTankSAAS / nifi-1.4.0

Apache License 2.0
0 stars 1 forks source link

Update dependency com.rabbitmq:amqp-client to v5 #39

Open mend-for-github-com[bot] opened 8 months ago

mend-for-github-com[bot] commented 8 months ago

This PR contains the following updates:

Package Type Update Change
com.rabbitmq:amqp-client (source) compile major 3.6.0 -> 5.18.0

By merging this PR, the issue #55 will be automatically resolved and closed:

Severity CVSS Score CVE
Medium Medium 4.9 CVE-2023-46120

Release Notes

rabbitmq/rabbitmq-java-client (com.rabbitmq:amqp-client) ### [`v5.18.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.18.0) [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.17.1...v5.18.0) ### Changes between 5.17.0 and 5.18.0 This is a minor release with usability improvements and dependency upgrades. It is compatible with 5.17.x. All users of the 5.x.x series are encouraged to upgrade. Inbound message size is now enforced, with default limit being 64 MiB. Thanks to [@​JHahnHRO](https://togithub.com/JHahnHRO) and Sérgio Faria ([@​sergio91pt](https://togithub.com/sergio91pt)) for their contribution. #### Add ability to specify maximum message size GitHub issue: [#​1062](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/1062) #### Do not confirmSelect more than once per channel GitHub PR: [#​1057](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/1057) #### Make RpcClient (Auto)Closeable GitHub issue: [#​1032](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/1032) #### Bump dependencies GitHub issue: [#​999](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/999) ### Dependency #### Maven ```xml com.rabbitmq amqp-client 5.18.0 ``` #### Gradle ```groovy compile 'com.rabbitmq:amqp-client:5.18.0' ``` ### [`v5.17.1`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.17.1) [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.17.0...v5.17.1) ### Changes between 5.17.0 and 5.17.1 This is a minor release with a usability improvement. It is compatible with 5.17.0. Inbound message size is now enforced, with the default limit being 64 MiB. #### Add ability to specify maximum message size GitHub issue: [#​1062](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/1062) ### [`v5.17.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.17.0) [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.16.1...v5.17.0) ### Changes between 5.16.0 and 5.17.0 This is a minor release with bug fixes, usability improvements, and dependency upgrades. It is compatible with 5.16.x. All users of the 5.x.x series are encouraged to upgrade. Thanks to Nikita Nefedov ([@​nikita2206](https://togithub.com/nikita2206)) for his contribution. #### Remove hard dependency on Jackson in OAuth 2 support GitHub PR: [#​969](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/969) #### NPE in `AbstractMetricsCollector` when channel limit is exceeded GitHub issue: [#​944](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/944) #### Report publish failures for the closed channel as well GitHub PR: [#​943](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/943) #### Remove dependency on java.sql.Timestamp GitHub PR: [#​878](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/878) #### Bump dependencies GitHub issue: [#​848](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/848) ### Dependency #### Maven ```xml com.rabbitmq amqp-client 5.17.0 ``` #### Gradle ```groovy compile 'com.rabbitmq:amqp-client:5.17.0' ``` ### [`v5.16.1`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.16.1) [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.16.0...v5.16.1) ### Changes between 5.16.0 and 5.16.1 This is a minor release with a usability improvement. It is compatible with 5.16.0. Inbound message size is now enforced, with the default limit being 64 MiB. #### Add ability to specify maximum message size GitHub issue: [#​1062](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/1062) ### [`v5.16.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.16.0): 5.16.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.15.0...v5.16.0) ### Changes between 5.15.0 and 5.16.0 This is a minor release with a new feature, usability improvements, and dependency upgrades. It is compatible with 5.15.x. All users of the 5.x.x series are encouraged to upgrade. Thanks to Rogelio J. Baucells ([@​rjbaucells](https://togithub.com/rjbaucells)) and Oleg Golberg ([@​ogolberg](https://togithub.com/ogolberg)) for their contribution. #### Re-enable DNS round robin GitHub PR: [#​827](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/827) #### OpenTelemetry metrics collector implementation GitHub PR: [#​817](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/817) #### Increase max ConsumerWorkService block size to 256 GitHub PR: [#​814](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/814) #### Bump dependencies GitHub issue: [#​797](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/797) ### [`v5.15.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.15.0): 5.15.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.14.3...v5.15.0) ### Changes between 5.14.2 and 5.15.0 This is a minor release with a bug fix, usability improvements, and dependency upgrades. It is compatible with 5.14.x. All users of the 5.x.x series are encouraged to upgrade. Thanks to [@​vikinghawk](https://togithub.com/vikinghawk) and [@​laststem](https://togithub.com/laststem) for their contribution. #### Fix potential deadlock in `AutorecoveringConnection` GitHub PR: [#​786](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/786) #### Use available processor number for default thread count in consumer work service GitHub issue: [#​730](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/730) #### Add host description when throwing `MissedHeartbeatException` GitHub PR: [#​726](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/726) #### Bump dependencies GitHub issue: [#​717](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/717) ### [`v5.14.3`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.14.3) [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.14.2...v5.14.3) ### Changes between 5.14.2 and 5.14.3 This is a minor release with a usability improvement. It is compatible with 5.14.x. Inbound message size is now enforced, with the default limit being 64 MiB. #### Add ability to specify maximum message size GitHub issue: [#​1062](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/1062) ### [`v5.14.2`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.14.2) [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.14.1...v5.14.2) ### Changes between 5.14.1 and 5.14.2 This is a patch release with a bug fix in the ConnectionFactory file-based configuration. It is compatible with 5.14.2. All users are encouraged to upgrade. Thanks to [@​laurentperez](https://togithub.com/laurentperez) for his contribution. #### Fix topology recovery flag evaluation in file-based configuration GitHub PR: [#​724](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/724) ### [`v5.14.1`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.14.1): 5.14.1 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.14.0...v5.14.1) ### Changes between 5.14.0 and 5.14.1 This is a patch release with 2 bug fixes in the NIO mode. It is compatible with 5.14.0. All users are encouraged to upgrade. Thanks to [@​mgrafl](https://togithub.com/mgrafl) for his contribution. #### Enforce connection timeout in NIO TLS handshake GitHub issue: [#​719](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/719) #### Set timeout on NIO connection GitHub PR: [#​720](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/720) ### [`v5.14.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.14.0): 5.14.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.13.1...v5.14.0) ### Changes between 5.13.1 and 5.14.0 This is a minor release with bug fixes, usability improvements, and dependency upgrades. It is compatible with 5.13.x. All users are encouraged to upgrade. Thanks to [@​wangqiandeniangniang](https://togithub.com/wangqiandeniangniang), [@​ByteAlex](https://togithub.com/ByteAlex), and [@​Yaytay](https://togithub.com/Yaytay) for their contribution. #### TLS handshake hangs with NIO and TLS 1.3 GitHub issue: [#​715](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/715) #### Unsigned 8 bit number field type seems not to be supported GitHub issue: [#​714](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/714) #### Change/remove usage of some deprecated JDK API GitHub issue: [#​709](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/709) #### Be more defensive about provided channelMax values GitHub PR: [#​695](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/695) #### Bump dependencies GitHub issue: [#​699](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/699) ### [`v5.13.1`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.13.1): 5.13.1 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.13.0...v5.13.1) ### Changes between 5.13.0 and 5.13.1 This is a patch release with a bug fix. It is compatible with 5.13.0. All users are encouraged to upgrade. Thanks to [@​YuryAndr](https://togithub.com/YuryAndr) for his contribution. #### Large message deliveries with TLS and NIO enabled results in a "buffer closed" exception in SslEngineHelper GitHub PR: [#​700](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/700) ### [`v5.13.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.13.0): 5.13.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.12.0...v5.13.0) ### Changes between 5.12.0 and 5.13.0 This is a minor release with usability improvements, a bug fix, and dependency upgrades. It is compatible with 5.12.0. All users are encouraged to upgrade. Thanks to [@​ValSmith](https://togithub.com/ValSmith) and [@​vikinghawk](https://togithub.com/vikinghawk) for their contribution. #### Move resolved address shuffling to AddressResolver GitHub PR: [#​691](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/691) #### Allow changing queue names during recovery GitHub PR: [#​693](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/693) #### Topology recovery retry fixes for auto-delete queues GitHub PR: [#​692](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/692) #### Bump dependencies GitHub PR: [#​683](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/683) ### [`v5.12.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.12.0): 5.12.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.11.0...v5.12.0) ### Changes between 5.11.0 and 5.12.0 This is a minor release with usability improvements and dependency upgrades. All users are encouraged to upgrade. Thanks to [@​vikinghawk](https://togithub.com/vikinghawk), [@​gustf](https://togithub.com/gustf), and [@​captainju](https://togithub.com/captainju) for their contribution. #### Consumer recovery retry needs to return the new consumer tag GitHub PR: [#​680](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/680) #### Improvements to topology recovery retry logic GitHub PR: [#​678](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/678) #### Add support for reading unsigned int "i" GitHub PR: [#​675](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/675) #### Add support for reading unsigned short "u" GitHub PR: [#​674](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/674) #### Handle basic query parameters in connection URI GitHub PR: [#​672](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/672) #### Bump dependencies GitHub issue: [#​681](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/681) ### [`v5.11.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.11.0): 5.11.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.10.0...v5.11.0) ### Changes between 5.10.0 and 5.11.0 This is a minor release with usability improvements, a bug fix, and dependency upgrades. All users are encouraged to upgrade. Thanks to [@​vikinghawk](https://togithub.com/vikinghawk) and [@​rjbaucells](https://togithub.com/rjbaucells) for their contribution. #### Binding recovery retry should recover all bindings on the recovered queue GitHub PR: [#​667](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/667) #### Add topology recovery started method to `RecoveryListener` GitHub PR: [#​668](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/668) #### Adds required command line args to GraalVM native-image command GitHub PR: [#​666](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/666) #### Recover channels with user-provided number GitHub issue: [#​670](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/670) #### Bump dependencies GitHub issue: [#​662](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/662) ### [`v5.10.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.10.0): 5.10.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.9.0...v5.10.0) ### Changes between 5.9.0 and 5.10.0 This is a maintenance release with a usability improvement, bug fixes, and dependency upgrades. All users are encouraged to upgrade. #### Add TLS settings for property-based configuration GitHub issue: [#​646](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/646) #### Remove unnecessary lock acquisition GitHub issue: [#​650](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/650) #### Channel state not cleaned when using abort GitHub issue: [#​661](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/661) #### Bump optional dependencies GitHub issue: [#​660](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/660) ### [`v5.9.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.9.0): 5.9.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.8.0...v5.9.0) ### Changes between 5.8.0 and 5.9.0 This is a maintenance release with a new feature, a bug fix, and dependency upgrades. All users are encouraged to upgrade to this version. Thanks to [@​janssk1](https://togithub.com/janssk1) for their contribution on this release. #### Allow configurable correlation ID generation in RpcClient GitHub issue: [#​637](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/637) #### Make sure qos, heartbeat, max channel are unsigned shorts GitHub issue: [#​642](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/642) #### Bump optional dependencies GitHub issue: [#​644](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/644) ### [`v5.8.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.8.0): 5.8.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.7.3...v5.8.0) ### Changes between 5.7.3 and 5.8.0 This is a maintenance release with a new feature, a usability improvement, and dependency upgrades. All users are encouraged to upgrade to this version. #### Add support for OAuth 2 authentication [Documentation](https://www.rabbitmq.com/api-guide.html#oauth2-support) GitHub issue: [#​626](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/626) #### Sanitise peer certificate values we log GitHub PR: [#​623](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/623) #### Bump dependencies GitHub issue: [#​625](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/625) #### Do not depend on generated classes for update-secret extension GitHub PR: [#​627](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/627) ### [`v5.7.3`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.7.3): 5.7.3 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.7.2...v5.7.3) ### Changes between 5.7.2 and 5.7.3 This is a patch release with an optional dependency bump to address a vulnerability. All users of the 5.x.x series are encouraged to upgrade to this version. The optional dependency affected by [the vulnerability is Jackson](https://nvd.nist.gov/vuln/detail/CVE-2019-12814). The Java client uses this library as a pluggable mapping solution in the JSON RPC support. In the context of the Java client, you are affected by this vulnerability only if you added explicitly Jackson to your dependencies. You must then upgrade Jackson to 2.9.9.1. #### Bump Jackson to 2.9.9.1 GitHub issue: [#​621](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/621) ### [`v5.7.2`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.7.2): 5.7.2 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.7.1...v5.7.2) ### Changes between 5.7.1 and 5.7.2 This is a patch release with a bug fix and upgrades of optional dependencies. All users of the 5.x.x series are encouraged to upgrade to this version. #### ValueWriter.writeFieldValue allows BigDecimals that are too big to be written GitHub issue: [#​617](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/617) #### Bump optional dependencies (Micrometer, Dropwizard Metrics) GitHub issue: [#​619](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/619) ### [`v5.7.1`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.7.1): 5.7.1 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.7.0...v5.7.1) ### Changes between 5.7.0 and 5.7.1 This is a patch release with a bug fix and an optional dependency bump to address a vulnerability. All users of the 5.x.x series are encouraged to upgrade to this version. The optional dependency affected by [the vulnerability is Jackson](https://nvd.nist.gov/vuln/detail/CVE-2019-12086). The Java client uses this library as a pluggable mapping solution in the JSON RPC support. In the context of the Java client, you are affected by this vulnerability only if you added explicitly Jackson to your dependencies. You must then upgrade Jackson to 2.9.9. #### Handle exception in NIO loop to avoid abrupt termination GitHub issue: [#​611](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/611) #### Bump Jackson to 2.9.9 GitHub issue: [#​612](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/612) ### [`v5.7.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.7.0): 5.7.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.6.0...v5.7.0) ### Changes between 5.6.0 and 5.7.0 This is a minor release with usability improvements and dependency upgrades. All users of the 5.x.x series are encouraged to upgrade to this version. #### Improve logging for TLS connections GitHub issue: [#​441](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/441) #### Don't panic when cancelling an unknown consumer GitHub issue: [#​525](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/525) #### Bump dependencies GitHub issue: [#​607](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/607) ### [`v5.6.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.6.0): 5.6.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.5.3...v5.6.0) ### Changes between 5.5.3 and 5.6.0 This is a minor release with 2 new features and 2 bug fixes. All users of the 5.x.x series are encouraged to upgrade to this version. #### Introduce Connection#openChannel that returns an optional GitHub issue: [#​431](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/431) #### Add option to make RpcClient fail early if there are no bindings GitHub issue: [#​417](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/417) #### RpcServer doesn't stop when its thread is interrupted GitHub issue: [#​428](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/428) #### Make properties private in JSON RPC classes GitHub issue: [#​417](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/417) ### [`v5.5.3`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.5.3): 5.5.3 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.5.2...v5.5.3) ### Changes between 5.5.2 and 5.5.3 This is a patch release with an optional dependency bump to address a vulnerability. All users of the 5.x.x series are encouraged to upgrade to this version. The optional dependency affected by [the vulnerability is Jackson](https://www.cvedetails.com/cve/CVE-2017-7525/). The Java client uses this library as a pluggable mapping solution in the JSON RPC support. In the context of the Java client, you are affected by this vulnerability only if you added explicitly Jackson to your dependencies. You must then upgrade Jackson to 2.9.8. #### Bump Jackson to 2.9.8 GitHub issue: [#​439](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/439) ### [`v5.5.2`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.5.2): 5.5.2 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.5.1...v5.5.2) ### Changes between 5.5.1 and 5.5.2 This is a patch release with a bug fix. All users of the 5.x.x series are encouraged to upgrade to this version. Thanks to Andrew Steinborn for his contribution on this release. #### Spurious warnings emitted by ClientVersion when the library is relocated GitHub issue: [#​436](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/436) ### [`v5.5.1`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.5.1): 5.5.1 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.5.0...v5.5.1) ### Changes between 5.5.0 and 5.5.1 This is a patch release with a bug fix. All users of the 5.x.x series are encouraged to upgrade to this version. #### Record recoverable entities in RPC channel methods GitHub issue: [#​425](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/425) ### [`v5.5.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.5.0): 5.5.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.4.3...v5.5.0) This is a maintenance release with 2 new features and a bug fix. All users of the 5.x.x series are encouraged to upgrade to this version. ### Changes between 5.4.3 and 5.5.0 #### Add traffic listener GitHub issue: [#​411](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/411) #### Connection recovery runs into timeouts when using NIO GitHub issue: [#​413](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/413) #### Provide factories to create NIO artefacts GitHub issue: [#​410](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/410) ### [`v5.4.3`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.4.3): 5.4.3 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.4.2...v5.4.3) ### Changes between 5.4.2 and 5.4.3 This is a patch release with a bug fix. All users of the 5.x.x series are encouraged to upgrade to this release. Thanks to Casper Mout for his contribution on this release. #### Handle realTag = 0 in RecoveryAwareChannelN GitHub issue: [#​395](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/395) ### [`v5.4.2`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.4.2): 5.4.2 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.4.1...v5.4.2) ### Changes between 5.4.1 and 5.4.2 This is a patch release with a bug fix and a usability improvement. All users of the 5.x.x series are encouraged to upgrade to this release. #### Header size exception when frame max is negotiated to 0 GitHub issue: [#​407](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/407) #### Change default exponential backoff sequence to not start with zero GitHub issue: [#​409](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/409) ### [`v5.4.1`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.4.1): 5.4.1 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.4.0...v5.4.1) ### Changes between 5.4.0 and 5.4.1 This is a patch release with a minor change. All users of the 5.x.x series are encouraged to upgrade to this release. #### Don't use anchor in warning message link GitHub issue: [#​405](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/405) ### [`v5.4.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.4.0): 5.4.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.3.0...v5.4.0) This is a maintenance release with new features and bug fixes. All users of the 5.x.x series are encouraged to use this version. Note that as of this release, default DNS resolution on the server hostname is disabled when using TLS ([#​400](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/400)). This avoids interfering with hostname verification ([#​394](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/394)). DNS resolution can be easily re-enabled by passing in a `DnsRecordIpAddressResolver` instance to one the `ConnectionFactory#newConnection` methods. Thanks to [@​vikinghawk](https://togithub.com/vikinghawk) for his contribution on this release. ### Changes between 5.3.0 and 5.4.0 #### Make it easier to enable hostname verification when TLS is enabled GitHub issue: [#​394](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/394) #### Disable DNS resolution when using TLS GitHub issue: [#​400](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/400) #### Add filter to skip some entities on topology recovery GitHub issue: [#​383](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/383) #### Add optional retry logic to topology recovery GitHub issue: [#​387](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/387) #### Address parser is incapable of handling IPv6 address literals GitHub issue: [#​385](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/385) #### Add option for connection recovery triggering GitHub issue: [#​379](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/379) #### Continuations (requests) are not discarded on timeouts GitHub issue: [#​375](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/375) #### Backport publishing metrics GitHub issue: [#​374](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/374) #### Add equals and hashCode to generated classes GitHub issue: [#​377](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/377) #### Improve JSON RPC support by using Jackson GitHub issue: [#​378](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/378) #### Add dedicated executor to close connections in NIO mode GitHub issue: [#​380](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/380) ### [`v5.3.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.3.0): 5.3.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.2.0...v5.3.0) 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](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.0.0) 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](https://togithub.com/vikinghawk) for this contribution. GitHub PR: [#​370](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/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](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/366) #### Use default client properties when reading from properties file GitHub issue: [#​368](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/368) ### [`v5.2.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.2.0): 5.2.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.1.2...v5.2.0) 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](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.0.0) 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](https://togithub.com/spatula75) for this contribution. GitHub PR: [#​350](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/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](https://togithub.com/vikinghawk) for this contribution. GitHub PR: [#​346](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/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](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/341) #### Add RpcClient doCall/responseCall/primitiveCall overloads which include timeout Thanks to [@​AndreasPresthammer](https://togithub.com/AndreasPresthammer) for this contribution. GitHub PR: [#​338](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/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](https://togithub.com/vikinghawk) for this contribution. GitHub PR: [#​343](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/343) #### Upgrade to Micrometer 1.0.0 GitHub issue: [#​351](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/351) ### [`v5.1.2`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.1.2): 5.1.2 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.1.1...v5.1.2) ### Changes between 5.1.1 and 5.1.2 This patch release improves Micrometer support and fixes a bug that can occur when using metrics in combination with automatic recovery. All users of the 5.x.x series are encouraged to upgrade to this release. #### Support tags in Micrometer metrics collector GitHub issue: [#​342](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/342) #### Upgrade Micrometer to 1.0.0-rc.6 GitHub issue: [#​340](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/340) #### Fix metrics for acked/nacked/rejected messages after automatic recovery has kicked in The metrics are correct and delivery tags no longer leak in the metrics implementation. GitHub issue: [#​339](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/339) ### [`v5.1.1`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.1.1): 5.1.1 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.1.0...v5.1.1) ### Changes between 5.1.0 and 5.1.1 This is a patch release with a bug fix. It is compatible with 5.0.0 and 5.1.0. All users of the 5.x.x series are encouraged to upgrade to this version. Users of previous version should check the [5.0.0 changelog](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.0.0) for breaking changes #### Fix client version property file name A warning log message was emitted because of a misnamed file. GitHub issue: [#​335](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/335) ### [`v5.1.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.1.0): 5.1.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v5.0.0...v5.1.0) ### Changes between 5.0.0 and 5.1.0 This maintenance release catches up with new features and bug fixes from 4.3.0 and 4.4.0. It is compatible with 5.0.0. All users of 5.0.0 are encouraged to upgrade to this version. Users of previous version should check the [5.0.0 changelog](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.0.0) for breaking changes. #### Add property file-based initialization It's now possible to use a property file to configure the `ConnectionFactory` (e.g. host, username, password, etc). GitHub issue: [#​324](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/324) #### Add Java 9 module name The `Automatic-Module-Name: com.rabbitmq.client` entry has been added to the JAR manifest, for interoperability with JDK 9 module system. GitHub issue: [#​320](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/320) #### Get rid of read retry in NIO The NIO mode used to use retries on network reading to make sure the outstanding frame would be completed in the current loop iteration. It now handle partial frames and moves on if a frame cannot be completed immediately. This behaviour is more consistent with NIO usage. GitHub issue: [#​319](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/319) #### Load client version in a more reliable way This could affect classpath-sensitive environments like OSGi. GitHub issue: [#​334](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/334) #### Support Micrometer The Java Client supports [Micrometer](http://micrometer.io) through its `MicrometerMetricsCollector` implementation of `MetricsCollector`. Micrometer is an instrumentation facade, which supports popular metrics backends (Atlas, Graphite, Ganglia, Datadog, JMX, etc). Note Micrometer requires Java 8 or more. The Java Client 4.3.x still supports Java 6, but Micrometer support isn't usable on Java 6 and Java 7. GitHub issue: [#​313](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/313) #### Make auto-recovery retry interval calculation pluggable The `RecoveryDelayHandler` interface has been introduced to calculate the retry interval between each connection recovery attempt. The default strategy is still the same: a constant interval (5 seconds by default). The `ExponentialBackoffDelayHandler` implementation can be used to have an exponential retry interval. Thanks to [@​vikinghawk](https://togithub.com/vikinghawk) for this contribution. GitHub issue: [#​308](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/308) #### Handle several buffer underflow results in `SslEngineByteBufferInputStream` Thanks to [@​dimas](https://togithub.com/dimas) for this fix. GitHub issue: [#​317](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/317) ### [`v5.0.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.0.0): 5.0.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v4.12.0...v5.0.0) ### Changes between 4.x.x and 5.0.0 This major release requires Java 8. It introduces several new features and lambda-oriented methods for common use cases. It has also a few breaking changes that should have minor or no impact on most applications. Users running Java 8 or Java 9 are encouraged to upgrade to this release. #### Java 8 is Now Required The client no longer supports JDK 6 and 7. JDK 8 is now required to both build and run (use) this library. Starting with the 5.0 release, there are Java 8-specific features in the API (e.g. lambdas). Because of the Java 8 requirement, this client **only supports Android 7.0 or later**. If support for earlier Android versions is desired, use the 4.x releases instead. GitHub issue: [#​304](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/304). #### Lambda-oriented API for Consumers `Channel` has now `basicConsume` methods with functional interfaces as arguments, making it possible to use lambdas in the method call. Note that not all the methods of `Consumer` are supported, we retained only the "essential" ones: when a message is delivered, when the consumer is cancelled, and when the channel/connection is closed. Simple or straightforward consumers will benefit from these lambda-based methods, more advanced consumers can still implement all the callbacks they need in the `Consumer` interface. Have a look at the [test class](https://togithub.com/rabbitmq/rabbitmq-java-client/blob/master/src/test/java/com/rabbitmq/client/test/LambdaCallbackTest.java) for examples of usage. GitHub issue: [#​247](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/247) #### Make it possible to use lambdas instead of \*Listener objects It's now possible to use lambdas for the following listeners: `ConfirmListener`, `ReturnListener`, and `BlockedListener`, thanks to new functional interfaces and new methods in `Connection` and in `Channel`. The original `*Listener` methods and interfaces are still around though. Have a look at the [test class](https://togithub.com/rabbitmq/rabbitmq-java-client/blob/master/src/test/java/com/rabbitmq/client/test/LambdaCallbackTest.java) for examples of usage. GitHub issue: [#​246](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/246) #### Add an asynchronous method which returns a `CompletableFuture` `Channel` has a new method to handle AMQP asynchronous calls: ```java CompletableFuture asyncCompletableRpc(Method method) throws IOException; ``` This method is a foundation to build so-called reactive applications, thanks to the returned `CompletableFuture`. It's on purpose quite low-level (using the `Method` type as an argument). GitHub issue: [#​215](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/215) #### Introduce `SslContextFactory` interface to create `SSLContext` instances `ConnectionFactory` has now a new `SslContextFactory` property to create `SSLContext` contexts for connections. The connection name (part of the connection properties) can be used to conditionally create the `SSLContext` instance for the connection. This way the same `ConnectionFactory` instance can create connections with different certificates but sharing the same resources (e.g. IO threads when using NIO). This features introduces a breaking change: the `FrameHandlerFactory#create` method has now an extra `connectionName` `String` argument. This shouldn't impact applications as `FrameHandlerFactory` is an interface meant to be used internally. Note all the `ConnectionFactory#useSslProtocol` methods still work the same way, they use the `SslContextFactory` interface under the covers. GitHub issue: [#​241](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/241) #### Remove `QueueingConsumer` from `RpcServer` `RpcServer` was using `QueueingConsumer` internally, which has been removed in this release. Depending on the use of `RpcServer`, this can imply breaking changes (see below). The overall behavior of `RpcServer` shouldn't change, as it's using now its own private version of a `QueueingConsumer`. GitHub issue: [#​221](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/221) #### Replace `AssertionError`s with more appropriate exceptions `AssertionError`s have been replaced by more appropriate, less dramatic exceptions classes (e.g. `IllegalArgumentException`). `AssertionsError`s were used in a few places of internal APIs, this change shouldn't impact application code. GitHub issue: [#​239](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/239) #### `Channel` implements `AutoCloseable` `Channel` can now be used inside `try-with-resources` statements. The JVM will automatically close the `Channel` once the program exits from a `try-with-resources` statement. Thanks to Venil Noronha for this contribution. GitHub issue: [#​258](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/258) #### Removal of deprecated classes and methods The following deprecated classes and interfaces have been removed: `QueueingConsumer`, `NullTrustManager`, `FlowListener`, and `SingleShotLinearTimer`. Please see the implications below. GitHub issue: [#​212](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/212) #### Breaking changes ##### `Connection` A new method has been introduced, `addBlockedListener(BlockedCallback, UnblockedCallback)`. This is a concern only if you implement your own `Connection`. If you only use `Connection` in your application, the rest of the API hasn't changed. ##### `Channel` New methods have been introduced: `addReturnListener(ReturnCallback)`, `addConfirmListener(ConfirmCallback, ConfirmCallback)`, `asyncCompletableRpc(Method)`, and "lambda-enabled" `basicConsume` methods. This is a concern only if you implement your own `Channel`. If you only use `Channel` in your application, the rest of the API hasn't changed. ##### `RpcServer` `RpcServer` doesn't rely anymore on `QueueingConsumer`, which has been removed. If your `RpcServer` implementation relies on `QueueingConsumer.Delivery`, use `RpcServer.Delivery` instead (it has the same API). If you override `setupConsumer` to create the consumer, you need now to create an implementation of `RpcServer.RpcConsumer` in this method. ##### `FrameHandlerFactory` `FrameHandlerFactory#create` has an extra `connectionName` `String` parameter. Note this interface isn't meant to be used in applications, so this change shouldn't impact application code. ##### Removal of `AssertionError` usages `AssertionsError`s were used in a few places of internal APIs (e.g. `BlockingCell`), not meant to be used by applications. Nevertheless, if you use those, have a look at the code changes in the GitHub issue [#​239](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/239). ##### Removal of `QueueuingConsumer` `QueueingConsumer` had been originally introduced to allow applications to overcome a limitation in the way `Connection` managed threads and consumer dispatching. The threading behavior of `Connection` and `Channel` has been changed since then, making `QueueingConsumer` less relevant. If blocking behavior is needed, applications can use `DefaultConsumer` and a JDK `BlockingQueue`. ##### Removal of `NullTrustManager` Use `TrustEverythingTrustManager` instead, it has the same behavior, but a more meaningful name. ##### Removal of `FlowListener` Channel flow events have been superseded by TCP back pressure. Corresponding methods have been removed from the `Channel` and `ExceptionHandler` interfaces, so implementations of those interfaces need to remove them as well (most likely `ExceptionHandler` implementations, `Channel` not being an interface implemented in applications). ### [`v4.12.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v4.12.0): 4.12.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v4.11.3...v4.12.0) ### Changes between 4.11.3 and 4.12.0 This is a minor release with a new feature, a bug fix, and dependency upgrades. It is compatible with 4.11.x. All users of the 4.x.x and 3.6.x series are encouraged to upgrade to this version. Thanks to [@​janssk1](https://togithub.com/janssk1) for their contribution on this release. #### Allow configurable correlation ID generation in RpcClient GitHub issue: [#​637](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/637) #### Make sure qos, heartbeat, max channel are unsigned shorts GitHub issue: [#​642](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/642) #### Bump optional dependencies GitHub issue: [#​644](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/644) ### [`v4.11.3`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v4.11.3): 4.11.3 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v4.11.2...v4.11.3) ### Changes between 4.11.2 and 4.11.3 This is a patch release with an optional dependency bump to address a vulnerability. All users of the 4.x.x series are encouraged to upgrade to this version. The optional dependency affected by [the vulnerability is Jackson](https://nvd.nist.gov/vuln/detail/CVE-2019-12814). The Java client uses this library as a pluggable mapping solution in the JSON RPC support. In the context of the Java client, you are affected by this vulnerability only if you added explicitly Jackson to your dependencies. You must then upgrade Jackson to 2.9.9.1. #### Bump Jackson to 2.9.9.1 GitHub issue: [#​621](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/621) ### [`v4.11.2`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v4.11.2): 4.11.2 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v4.11.1...v4.11.2) ### Changes between 4.11.1 and 4.11.2 This is a patch release with a bug fix and upgrades of optional dependencies. All users of the 4.x.x series are encouraged to upgrade to this version. #### ValueWriter.writeFieldValue allows BigDecimals that are too big to be written GitHub issue: [#​617](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/617) #### Bump optional dependencies (Micrometer, Dropwizard Metrics) GitHub issue: [#​619](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/619) ### [`v4.11.1`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v4.11.1): 4.11.1 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v4.11.0...v4.11.1) ### Changes between 4.11.0 and 4.11.1 This is a patch release with a bug fix and an optional dependency bump to address a vulnerability. All users of the 4.x.x series are encouraged to upgrade to this version. The optional dependency affected by [the vulnerability is Jackson](https://nvd.nist.gov/vuln/detail/CVE-2019-12086). The Java client uses this library as a pluggable mapping solution in the JSON RPC support. In the context of the Java client, you are affected by this vulnerability only if you added explicitly Jackson to your dependencies. You must then upgrade Jackson to 2.9.9. #### Handle exception in NIO loop to avoid abrupt termination GitHub issue: [#​611](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/611) #### Bump Jackson to 2.9.9 GitHub issue: [#​612](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/612) ### [`v4.11.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v4.11.0): 4.11.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v4.10.0...v4.11.0) ### Changes between 4.10.0 and 4.11.0 This is a minor release with usability improvements and dependency upgrades. It is compatible with 4.10.0. All users of the 4.x.x and 3.6.x series are encouraged to upgrade to this version. #### Improve logging for TLS connections GitHub issue: [#​441](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/441) #### Don't panic when cancelling an unknown consumer GitHub issue: [#​525](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/525) #### Bump dependencies GitHub issue: [#​607](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/607) ### [`v4.10.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v4.10.0): 4.10.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v4.9.3...v4.10.0) ### Changes between 4.9.3 and 4.10.0 This is a minor release with a new feature and 2 bug fixes. All users of the 4.x.x and 3.6.x series are encouraged to upgrade to this version. #### Add option to make RpcClient fail early if there are no bindings GitHub issue: [#​417](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/417) #### RpcServer doesn't stop when its thread is interrupted GitHub issue: [#​428](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/428) #### Make properties private in JSON RPC classes GitHub issue: [#​417](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/417) ### [`v4.9.3`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v4.9.3): 4.9.3 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v4.9.2...v4.9.3) ### Changes between 4.9.2 and 4.9.3 This is a patch release with an optional dependency bump to address a vulnerability. All users of the 4.x.x series are encouraged to upgrade to this version. The optional dependency affected by [the vulnerability is Jackson](https://www.cvedetails.com/cve/CVE-2017-7525/). The Java client uses this library as a pluggable mapping solution in the JSON RPC support. In the context of the Java client, you are affected by this vulnerability only if you added explicitly Jackson to your dependencies. You must then upgrade Jackson to 2.9.8. #### Bump Jackson to 2.9.8 GitHub issue: [#​439](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/439) ### [`v4.9.2`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v4.9.2): 4.9.2 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v4.9.1...v4.9.2) ### Changes between 4.9.1 and 4.9.2 This is a patch release with a bug fix. All users of the 4.x.x series are encouraged to upgrade to this version. Thanks to Andrew Steinborn for his contribution on this release. #### Spurious warnings emitted by ClientVersion when the library is relocated GitHub issue: [#​436](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/436) ### [`v4.9.1`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v4.9.1): 4.9.1 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v4.9.0...v4.9.1) This is a patch release with a bug fix. All users of the 4.x.x and 3.6.x series are encouraged to upgrade to this version. ### Changes between 4.9.0 and 4.9.1 #### Record recoverable entities in RPC channel methods GitHub issue: [#​425](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/425) ### [`v4.9.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v4.9.0): 4.9.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v4.8.3...v4.9.0) ### Changes between 4.8.3 and 4.9.0 This is a maintenance release with 2 new features and a bug fix. All users of the 4.x.x and 3.6.x series are encouraged to upgrade to this version. #### Add traffic listener GitHub issue: [#​411](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/411) #### Connection recovery runs into timeouts when using NIO GitHub issue: [#​413](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/413) #### Provide factories to create NIO artefacts GitHub issue: [#​410](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/410) ### [`v4.8.3`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v4.8.3): 4.8.3 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v4.8.2...v4.8.3) ### Changes between 4.8.2 and 4.8.3 This is a patch release with a bug fix. All users of the 4.x.x series are encouraged to upgrade to this release. Thanks to Casper Mout for his contribution on this release. #### Handle realTag = 0 in RecoveryAwareChannelN GitHub issue: [#​395](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/395) ### [`v4.8.2`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v4.8.2): 4.8.2 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v4.8.1...v4.8.2) ### Changes between 4.8.1 and 4.8.2 This is a patch release with a bug fix and a usability improvement. All users of the 4.x.x series are encouraged to upgrade to this release. #### Header size exception when frame max is negotiated to 0 GitHub issue: [#​407](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/407) #### Change default exponential backoff sequence to not start with zero GitHub issue: [#​409](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/409) ### [`v4.8.1`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v4.8.1): 4.8.1 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v4.8.0...v4.8.1) ### Changes between 4.8.0 and 4.8.1 This is a patch release with a minor change. All users of the 4.x.x and 3.6.x series are encouraged to upgrade to this release. #### Don't use anchor in warning message link GitHub issue: [#​405](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/405) ### [`v4.8.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v4.8.0): 4.8.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v4.7.0...v4.8.0) This is a maintenance release with new features and bug fixes. It is compatible with 4.7.x. All users of the 4.x.x and 3.6.x series are encouraged to use this version. Note that as of this release, default DNS resolution on the server hostname is disabled when using TLS ([#​400](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/400)). This avoids interfering with hostname verification ([#​394](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/394)). DNS resolution can be easily re-enabled by passing in a `DnsRecordIpAddressResolver` instance to one the `ConnectionFactory#newConnection` methods. Thanks to [@​vikinghawk](https://togithub.com/vikinghawk) for his contribution on this release. ### Changes between 4.7.0 and 4.8.0 #### Make it easier to enable hostname verification when TLS is enabled GitHub issue: [#​394](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/394) #### Disable DNS resolution when using TLS GitHub issue: [#​400](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/400) #### Add filter to skip some entities on topology recovery GitHub issue: [#​383](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/383) #### Add optional retry logic to topology recovery GitHub issue: [#​387](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/387) #### Address parser is incapable of handling IPv6 address literals GitHub issue: [#​385](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/385) #### Improve JSON RPC support by using Jackson GitHub issue: [#​378](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/378) #### Add equals and hashCode to generated classes GitHub issue: [#​377](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/377) #### Add dedicated executor to close connections in NIO mode GitHub issue: [#​380](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/380) ### [`v4.7.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v4.7.0): 4.7.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v4.6.0...v4.7.0) 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](https://togithub.com/vikinghawk) for this contribution. GitHub PR: [#​370](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/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](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/366) #### Use default client properties when reading from properties file GitHub issue: [#​368](https://togithub.com/rabbitmq/rabbitmq-java-client/issues/368) ### [`v4.6.0`](https://togithub.com/rabbitmq/rabbitmq-java-client/releases/tag/v4.6.0): 4.6.0 [Compare Source](https://togithub.com/rabbitmq/rabbitmq-java-client/compare/v4.5.0...v4.6.0) 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 `MicrometerMetricsColl