The goal of this page is to identify the outstanding issues that must be addressed by Artemis in order to achieve feature parity with ActiveMQ “Classic”. The overall objective for working toward feature parity between “Classic” and Artemis is for Artemis to eventually become the next major version of ActiveMQ. This page exists so that we can work together as a group to achieve this goal. This page does not list the features which Artemis has beyond what currently exists in ActiveMQ “Classic”.
This section should be used to compare what features from ActiveMQ “Classic” have been implemented in Artemis. Feature items can be listed, with links to JIRA tickets for longer conversation and hashing out specific feature details. This will help us to more clearly track everything that Artemis needs. This list of features was taken from the “Classic” features page.
Keep in mind that not every feature must have a ✅. Artemis may still be ready to become ActiveMQ Next even if features on this page still have an ❌ if those features are deemed low priority. Artemis is not meant to be a 100% complete reimplementation of ActiveMQ “Classic”. Features should only be reimplemented where it makes good sense.
Feature | Artemis Support | Version(s) |
---|---|---|
OpenWire | ✅ | |
Stomp | ✅ | 1.0, 1.1, 1.2 |
AMQP | ✅ | 1.0 |
MQTT | ✅ | 3.1 |
REST | ✅ |
Feature | Artemis Support | JIRA | Notes |
---|---|---|---|
Broker Camel Component | ✅ | example | |
Discovery | ✅ | UDP multicast & JGroups | |
Enterprise Integration Patterns | ✅ | see “Broker Camel Component” | |
Horizontal Scaling | ✅ | supported via clustering or federation | |
JMSXUserID | ✅ | documentation | |
JMX | ✅ | documentation | |
Logging a warning if you forget to start a connection | ❌ | ||
MDC Logging | ❌ | ||
Scaling the depth of a queue | ✅ | documentation | |
URI Protocols | ✅ | vm, tcp, udp, jgroups | |
Proxy Connector | ❌ | ||
Unix Shell Script | ✅ |
Feature | Artemis Support | JIRA | Notes |
---|---|---|---|
Master-slave | ✅ | using JDBC, shared filesystem, & replication; documentation | |
Network of brokers | ✅ | ARTEMIS-2265 | equivalent through clustering or federation |
Replicated message store | ✅ | equivalent via replication HA config |
Feature | Artemis Support | JIRA | Notes |
---|---|---|---|
Composite Destinations | ✅ | supported for OpenWire clients; see also diverts | |
Configure Startup Destinations | ✅ | ||
Delete Inactive Destinations | ✅ | ||
Destination Options | ✅ | ||
Mirrored Queues | ❌ | rough equivalent via non-exclusive diverts | |
Per Destination Policies | ✅ | config via address-settings | |
Virtual Destinations | ✅ | docs for backwards compatibility with OpenWire clients | |
Wildcards | ✅ | documentation |
Feature | Artemis Support | JIRA | Notes |
---|---|---|---|
Destinations Plugin | ✅ | documentation | |
Logging Interceptor | ✅ | documentation | |
StatisticsPlugin | ✅ | equivalent via management messages | |
TimeStampPlugin | ❌ |
Feature | Artemis Support | JIRA | Notes |
---|---|---|---|
Async Sends | ✅ | supported for OpenWire & also for core (via blockOnDurableSend and blockOnNonDurableSend URL parameters) | |
Pluggable Dispatch Policies | ❌ | delay-before-dispatch and consumers-before-dispatch have been implemented | |
Message Cursors | ✅ | equivalent via paging | |
Optimized Acknowledgement | ✅ | supported for OpenWire & core as well via ackBatchSize URL parameter | |
Producer Flow Control | ✅ | documentation | |
Total Ordering | ❌ |
Feature | Artemis Support | JIRA | Notes |
---|---|---|---|
ActiveMQ Message Properties | ✅ | ||
Advisory Message | ✅ | equivalent support via management notifications | |
Blob Messages | ✅ | arbitrarily large messages supported | |
Delay and Schedule Message Delivery | ✅ | documentation | |
Message Transformation | ✅ | supported via transformers and remoting interceptors | |
ObjectMessage | ✅ | documentation | |
Structured Message Properties and MapMessages | ❌ |
Feature | Artemis Support | JIRA | Notes |
---|---|---|---|
AMQ Message Store | ✅ | equivalent functionality via journal | |
Configurable IOException Handling | ❌ | all IO errors considered critical | |
JDBC Support | ✅ | ||
KahaDB | ✅ | equivalent functionality via journal | |
Kaha Persistence | ✅ | equivalent functionality via journal | |
Periodically checking disk limits | ✅ | ||
Pluggable storage lockers | ❌ | ||
Replicated LevelDB Store | ✅ | equivalent functionality via journal replication HA config | |
Multi-kahaDB | ❌ | ARTEMIS-839 |
Feature | Artemis Support | JIRA | Notes |
---|---|---|---|
Audit Logging | ✅ | ARTEMIS-2273 | documentation |
Cached LDAP Authorization Module | ✅ | ARTEMIS-168 | documentation |
Encrypted passwords | ✅ | documentation | |
Shiro | ❌ | equivalent functionality available via JAAS |
This section should help to answer the end user question, ‘How do I migrate from ActiveMQ “Classic” to Artemis?’. This should include the identification of any tools that can help make this easier, as well as documenting information and procedures specific to migrating.
./artemis data imp
command.