AMQ Clients 2.10 Release Notes
Release Notes for Red Hat AMQ Clients
Making open source more inclusive
Red Hat is committed to replacing problematic language in our code, documentation, and web properties. We are beginning with these four terms: master, slave, blacklist, and whitelist. Because of the enormity of this endeavor, these changes will be implemented gradually over several upcoming releases. For more details, see our CTO Chris Wright’s message.
This release introduces new minimum required versions for C++, Java, and Python: C++11, Java 11, and Python 3.6. For more information, see Red Hat AMQ 7 Supported Configurations.
This release enables SSL/TLS hostname and certificate verification by default in the Python and Ruby clients. This matches the existing behavior of the C++, JMS, and .NET clients.
Chapter 1. New and changed features
1.1. AMQ C++
ENTMQCL-1083 - Application properties for links
The C++ client now offers the ability to query and set application-specfic properties on AMQP links.
1.2. AMQ Python and AMQ Ruby
ENTMQCL-2961 - Enable SSL/TLS host verification by default
The Python and Ruby clients now enable SSL/TLS hostname and certificate verification by default. This matches the existing behavior of the C++, JMS, and .NET clients.
Chapter 2. Fixed issues
2.1. AMQ JMS
ENTMQCL-2681 - Wait() sometimes blocks forever when closing producers
In earlier releases of the product, the producer wait() operation could block indefinitely when a message send failed.
In this release, the wait() operation completes as expected.
ENTMQCL-2784 - Do not de-duplicate failover URIs based on name resolution
In earlier releases of the product, the client performed a DNS resolution step before removing duplicates in the failover list. This caused problems for servers running behind a proxy.
In this release, the client removes duplicates using the names as given in the failover list.
For a complete list of issues that have been fixed in the release, see AMQ Clients 2.10.x Resolved Issues.
2.2. AMQ C++
ENTMQCL-2583 - Example build fails using CMake 2.8
In earlier releases of the product, the examples failed to build when using CMake 2.8.
In this release, the examples build as expected.
Chapter 3. Important notes
3.1. Long term support
Parallel to AMQ Clients 2.10, AMQ Clients 2.9 is available as a long term support (LTS) release version. Bug fixes and security advisories are provided for AMQ Clients 2.9 in a series of micro releases (2.9.1, 2.9.2, 2.9.3, and so on) for a period of at least 12 months.
Note the following important points about the LTS release stream:
- The LTS release stream provides only bug fixes. No new enhancements will be added to this stream.
- To remain in a supported configuration, you must upgrade to the latest micro release in the LTS release stream.
- The LTS version will be supported for at least 12 months from the time of the AMQ Clients 2.9.0 GA.
3.2. AMQ C++
The AMQ C++ messaging API includes classes and methods that are not yet proven and can change in future releases. Be aware that use of these interfaces might require changes to your application code in the future.
These interfaces are marked Unsettled API in the API reference. They include the interfaces in the
proton::ionamespaces and the following interfaces in the
API elements present in header files but not yet documented are considered unsettled and are subject to change.
Interfaces marked Deprecated in the API reference are scheduled for removal in a future release.
This release deprecates the following interfaces in the
void_function0- Use the
workclass or C++11 lambdas instead.
default_container- Use the
url_error- Use a third-party URL library instead.
3.3. Preferred clients
In general, AMQ clients that support the AMQP 1.0 standard are preferred for new application development. However, the following exceptions apply:
- If your implementation requires distributed transactions, use the AMQ Core Protocol JMS client.
- If you require MQTT or STOMP in your domain (for IoT applications, for instance), use community-supported MQTT or STOMP clients.
3.4. Legacy clients
Deprecation of the AMQ OpenWire JMS client
The AMQ OpenWire JMS client is now deprecated in AMQ 7. It is recommended that users of this client migrate to AMQ JMS or AMQ Core Protocol JMS.
Deprecation of the CMS and NMS APIs
The ActiveMQ CMS and NMS messaging APIs are deprecated in AMQ 7. It is recommended that users of the CMS API migrate to AMQ C++, and users of the NMS API migrate to AMQ .NET. The CMS and NMS APIs might have reduced functionality in AMQ 7.
Deprecation of the legacy AMQ C++ client
The legacy AMQ C++ client (the C++ client previously provided in MRG Messaging) is deprecated in AMQ 7. It is recommended that users of this API migrate to AMQ C++.
The Core API is unsupported
The Artemis Core API client is not supported. This client is distinct from the AMQ Core Protocol JMS client, which is supported.
3.5. Upstream versions
- AMQ C++, AMQ Python, and AMQ Ruby are now based on Qpid Proton 0.35.0.
- AMQ .NET is now based on AMQP.Net Lite 2.4.0.
- AMQ JMS is now based on Qpid JMS 1.0.0.
- AMQ Core Protocol JMS is now based on ActiveMQ Artemis 2.16.0.
- AMQ JMS Pool is now based on Pooled JMS 2.0.0.
- AMQ Resource Adapter is now based on AMQP 1.0 Resource Adapter 2.0.0.
- AMQ Spring Boot Starter is now based on AMQP 1.0 JMS Spring Boot 2.5.0.
- AMQ Netty OpenSSL is now based on netty-tcnative 2.0.39.Final.