Release of ActiveMQ v5.17.0
This article takes a look at the new ActiveMQ release: v5.17.0, which is a baseline for modernization and sets the stage for what's to come in future releases.
Join the DZone community and get the full member experience.Join For Free
On the heels of the ActiveMQ v5.16.4 release, the Apache ActiveMQ team has released v5.17.0.
The v5.17.0 release will be most notable for what comes next. This release was more about aligning Java JDK and dependencies for moving forward than adding new features.
As the Java ecosystem is rapidly iterating for Java JDK and Jakarta releases, downstream projects, such as ActiveMQ, are releasing versions to allow users to gradually consume these changes. ActiveMQ v5.17.0 provides key changes in that area.
Updates in v5.17.0:
- JDK 11 baseline
- Spring 5
- Log4j2 v2.17.1
Open-source projects often experiment with different technologies to prepare for shifts in trends or adopt different approaches to solving common problems. For a while, ActiveMQ had an alternative storage backend, LevelDB. As time went on, LevelDB's benefits evened out and reliance on Zookeeper didn't resonate with many ActiveMQ adopters. In 5.17.0, ActiveMQ has fully removed LevelDB support.
Additionally, the ActiveMQ's hosted component for Apache Camel (Maven coordinate: org.apache.activemq/activemq-camel) has been removed in favor of relying on the components hosted by Apache Camel (camel-jms, camel-sjms, camel-activemq). This removes a circular dependency and simplifies version management of components for developers using Apache Camel.
A best practice for streamlining Java applications for modern deployments is to reduce transitive dependencies. One of ActiveMQ's architecture advantages is its ability to be embedded within Java runtimes, and link up to a dedicated cluster(s) in a broker mesh design. Broker mesh architectures allow web applications and API gateways to benefit from store-and-forward architectures without having to code complex producer-side components to accommodate low-latency, multi-threaded, and high volume event producer scenarios.
In order for ActiveMQ to be efficiently used by developers who are embedding, it is beneficial for ActiveMQ to have as few dependencies as possible. This frees up the developer from having to fight with transitive dependencies between their application and other frameworks. In ActiveMQ v5.17.0, a first step in reducing rarely used dependencies from the core release includes the removal of the commons-net dependency. This was only used by the rarely deployed FTP Blob Strategy.
Users are still free to extend ActiveMQ with various BLOB strategies. This change removes a rarely used feature of fading in popularity protocol (FTP) when supporting out-of-band large message transfers.
Removed in v5.17.0:
- LevelDB backend store
- ActiveMQ Camel component
- FTP Blob Strategy
The ActiveMQ 5.17.0 full release notes cover changes that have been included in other releases up to v5.15.15 and v5.16.4. The ActiveMQ 5.17.0-only release notes show changes not included in other releases.
Check out the official v5.17.0 release announcement from Apache ActiveMQ.
Opinions expressed by DZone contributors are their own.