blob: a74d259a0094d9258e322dbf4cc7bc22ae6599a6 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>ActiveMQ</title>
<link rel="icon" type="image/png" href="/assets/img/favicon.png">
<link rel="stylesheet" href="/css/main.css">
<script defer src="/js/fontawesome-all.min.js" integrity="sha384-rOA1PnstxnOBLzCLMcre8ybwbTmemjzdNlILg8O7z1lUkLXozs4DHonlDtnE7fpc"></script>
<script src="/js/jquery.slim.min.js" integrity="sha384-5AkRS45j4ukf+JbWAfHL8P4onPA9p0KwwP7pUdjSQA3ss9edbJUJc/XcYAiheSSz"></script>
<script src="/js/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"></script>
<script src="/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"></script>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light fixed-top">
<div class="container">
<!-- <a class="navbar-brand mr-auto" href="#"><img style="height: 50px" src="assets/img/apache-feather.png" /></a> -->
<a class="navbar-brand mr-auto" href="/"><img src="/assets/img/activemq_logo_black_small.png" style="height: 50px"/></a>
<button class="navbar-toggler ml-auto" type="button" data-toggle="collapse" data-target="#navbarContent" aria-controls="navbarContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="ml-auto collapse navbar-collapse" id="navbarContent">
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<a class="nav-link active" href="/news">News</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link" id="navbarDropdownComponents" data-target="#" href="" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Components<span class="caret"></span></a>
<ul class="dropdown-menu dropdown-menu-center" aria-labelledby="navbarDropdownComponents">
<div class="row">
<div class="col-12">
<ul class="multi-column-dropdown">
<li class="nav-item"><a class="dropdown-item" href="/components/classic">ActiveMQ Classic</a></li>
<li class="nav-item"><a class="dropdown-item" href="/components/artemis/">ActiveMQ Artemis</a></li>
<li class="nav-item"><a class="dropdown-item" href="/components/nms">NMS Clients</a></li>
<li class="nav-item"><a class="dropdown-item" href="/components/cms">CMS Client</a></li>
</ul>
</div>
</div>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link" id="navbarDropdownCommunity" data-target="#" href="" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Community<span class="caret"></span></a>
<ul class="dropdown-menu dropdown-menu-center multi-column columns-1" aria-labelledby="navbarDropdownCommunity">
<div class="row">
<div class="col-12">
<ul class="multi-column-dropdown">
<li class="nav-item"><a class="dropdown-item" href="/contact">Contact Us</a></li>
<li class="nav-item"><a class="dropdown-item" href="/contributing">Contribute</a></li>
<li class="nav-item"><a class="dropdown-item" href="/issues">Report Issues</a></li>
<li class="nav-item"><a class="dropdown-item" href="/support">Get Support</a></li>
</ul>
</div>
</div>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link" id="navbarDropdownTeam" data-target="#" href="" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><img src="/assets/img/feather.png" style="height:20px">Apache<span class="caret"></span></a>
<ul class="dropdown-menu dropdown-menu-center multi-column columns-1" aria-labelledby="navbarDropdownTeam">
<div class="row">
<div class="col-sm-12">
<ul class="multi-column-dropdown">
<li class="nav-item"><a class="dropdown-item" href="https://www.apache.org">The Apache Software Foundation</a></li>
<li class="nav-item"><a class="dropdown-item" href="https://www.apache.org/licenses/">License</a></li>
<li class="nav-item"><a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
<li class="nav-item"><a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
<li class="nav-item"><a class="dropdown-item" href="/security-advisories">Security</a></li>
<li class="nav-item"><a class="dropdown-item" href="https://www.apache.org/events/current-event">Events</a></li>
<li class="nav-item"><a class="dropdown-item" href="https://people.apache.org/phonebook.html?pmc=activemq">PMC & Committers</a></li>
<li class="nav-item"><a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/ActiveMQ.html">Board Reports</a></li>
<li class="nav-item"><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a></li>
</ul>
</div>
</div>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<div class="content">
<div class="page-title-main">
<div class="container">
<h1>Artemis' Roadmap to ActiveMQ <i>Next</i></h1>
</div>
</div>
<div class="container" >
<div class="row" style="margin-top: 30px">
<div class="col-12 main">
<p>The goal of this page is to identify the outstanding issues that must be addressed by Artemis in order to achieve feature parity with 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 <strong>not</strong> list the features which Artemis has <em>beyond</em> what currently exists in Classic.</p>
<h2 id="featuresscenarios">Features/Scenarios</h2>
<p>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 <a href="features">features page</a>.</p>
<p>Keep in mind that not every feature must have a ✅. Artemis may still be ready to become ActiveMQ <em>Next</em> 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.</p>
<h3 id="protocol-support">Protocol Support</h3>
<table>
<thead>
<tr>
<th>Feature</th>
<th style="text-align: center">Artemis Support</th>
<th>Version(s)</th>
</tr>
</thead>
<tbody>
<tr>
<td>OpenWire</td>
<td style="text-align: center"></td>
<td> </td>
</tr>
<tr>
<td>Stomp</td>
<td style="text-align: center"></td>
<td>1.0, 1.1, 1.2</td>
</tr>
<tr>
<td>AMQP</td>
<td style="text-align: center"></td>
<td>1.0</td>
</tr>
<tr>
<td>MQTT</td>
<td style="text-align: center"></td>
<td>3.1</td>
</tr>
<tr>
<td>REST</td>
<td style="text-align: center"></td>
<td> </td>
</tr>
</tbody>
</table>
<h3 id="general">General</h3>
<table>
<thead>
<tr>
<th>Feature</th>
<th style="text-align: center">Artemis Support</th>
<th>JIRA</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="broker-camel-component">Broker Camel Component</a></td>
<td style="text-align: center"></td>
<td> </td>
<td><a href="https://github.com/apache/activemq-artemis/tree/master/examples/features/standard/camel">example</a></td>
</tr>
<tr>
<td><a href="discovery">Discovery</a></td>
<td style="text-align: center"></td>
<td> </td>
<td><a href="components/artemis/documentation/latest/using-jms">UDP multicast &amp; JGroups</a></td>
</tr>
<tr>
<td><a href="enterprise-integration-patterns">Enterprise Integration Patterns</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>see “Broker Camel Component”</td>
</tr>
<tr>
<td><a href="horizontal-scaling">Horizontal Scaling</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>supported via <a href="components/artemis/documentation/latest/clusters">clustering</a> or <a href="components/artemis/documentation/latest/federation">federation</a></td>
</tr>
<tr>
<td><a href="jmsxuserid">JMSXUserID</a></td>
<td style="text-align: center"></td>
<td> </td>
<td><a href="activemq.apache.org/components/artemis/documentation/latest/security.html#tracking-the-validated-user">documentation</a></td>
</tr>
<tr>
<td><a href="jmx">JMX</a></td>
<td style="text-align: center"></td>
<td> </td>
<td><a href="components/artemis/documentation/latest/management">documentation</a></td>
</tr>
<tr>
<td><a href="logging-a-warning-if-you-forget-to-start-a-connection">Logging a warning if you forget to start a connection</a></td>
<td style="text-align: center"></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><a href="mdc-logging">MDC Logging</a></td>
<td style="text-align: center"></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><a href="scaling-the-depth-of-a-queue">Scaling the depth of a queue</a></td>
<td style="text-align: center"></td>
<td> </td>
<td><a href="components/artemis/documentation/latest/paging">documentation</a></td>
</tr>
<tr>
<td><a href="uri-protocols">URI Protocols</a></td>
<td style="text-align: center"></td>
<td> </td>
<td><a href="components/artemis/documentation/latest/using-jms">vm, tcp, udp, jgroups</a></td>
</tr>
<tr>
<td><a href="the-proxy-connector">Proxy Connector</a></td>
<td style="text-align: center"></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><a href="unix-shell-script">Unix Shell Script</a></td>
<td style="text-align: center"></td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>
<h3 id="clustering">Clustering</h3>
<table>
<thead>
<tr>
<th>Feature</th>
<th style="text-align: center">Artemis Support</th>
<th>JIRA</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="masterslave">Master-slave</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>using JDBC, shared filesystem, &amp; replication; <a href="components/artemis/documentation/latest/ha">documentation</a></td>
</tr>
<tr>
<td><a href="networks-of-brokers">Network of brokers</a></td>
<td style="text-align: center"></td>
<td><a href="https://issues.apache.org/jira/browse/ARTEMIS-2265">ARTEMIS-2265</a></td>
<td>equivalent through <a href="components/artemis/documentation/latest/clusters">clustering</a> or <a href="components/artemis/documentation/latest/federation">federation</a></td>
</tr>
<tr>
<td><a href="replicated-message-store">Replicated message store</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>equivalent via <a href="components/artemis/documentation/latest/ha">replication</a> HA config</td>
</tr>
</tbody>
</table>
<h3 id="consumer-features">Consumer Features</h3>
<table>
<thead>
<tr>
<th>Feature</th>
<th style="text-align: center">Artemis Support</th>
<th>JIRA</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="consumer-dispatch-async">Consumer Dispatch Async</a></td>
<td style="text-align: center"></td>
<td> </td>
<td><a href="components/artemis/documentation/latest/configuring-transports.html#configuring-netty-tcp">equivalent via the <code class="language-plaintext highlighter-rouge">directDeliver</code> URL parameter</a></td>
</tr>
<tr>
<td><a href="consumer-priority">Consumer Priority</a></td>
<td style="text-align: center"></td>
<td><a href="https://issues.apache.org/jira/browse/ARTEMIS-196">ARTEMIS-196</a></td>
<td><a href="components/artemis/documentation/latest/consumer-priority">documentation</a></td>
</tr>
<tr>
<td><a href="exclusive-consumer">Exclusive Consumer</a></td>
<td style="text-align: center"></td>
<td><a href="https://issues.apache.org/jira/browse/ARTEMIS-853">ARTEMIS-853</a></td>
<td><a href="components/artemis/documentation/latest/exclusive-queues">documentation</a></td>
</tr>
<tr>
<td><a href="manage-durable-subscribers">Manage Durable Subscribers</a></td>
<td style="text-align: center"></td>
<td> </td>
<td><a href="components/artemis/documentation/latest/address-model.html#configuring-addresses-and-queues-via-address-settings">equivalent via the <code class="language-plaintext highlighter-rouge">expiry-delay</code> address setting</a></td>
</tr>
<tr>
<td><a href="message-groups">Message Groups</a></td>
<td style="text-align: center"></td>
<td> </td>
<td><a href="components/artemis/documentation/latest/message-grouping">documentation</a></td>
</tr>
<tr>
<td><a href="redelivery-policy">Redelivery Policy</a></td>
<td style="text-align: center"></td>
<td> </td>
<td><a href="components/artemis/documentation/latest/undelivered-messages">documentation</a></td>
</tr>
<tr>
<td><a href="retroactive-consumer">Retroactive Consumer</a></td>
<td style="text-align: center"></td>
<td><a href="https://issues.apache.org/jira/browse/ARTEMIS-2504">ARTEMIS-2504</a></td>
<td>documentation coming in 2.11</td>
</tr>
<tr>
<td><a href="selectors">Selectors</a></td>
<td style="text-align: center"></td>
<td> </td>
<td><a href="components/artemis/documentation/latest/filter-expressions">documentation</a></td>
</tr>
<tr>
<td><a href="slow-consumer-handling">Slow Consumer Handling</a></td>
<td style="text-align: center"></td>
<td> </td>
<td><a href="components/artemis/documentation/latest/slow-consumers">documentation</a></td>
</tr>
<tr>
<td><a href="subscription-recovery-policy">Subscription Recovery Policy</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>see retroactive addresses</td>
</tr>
</tbody>
</table>
<h3 id="destination-features">Destination Features</h3>
<table>
<thead>
<tr>
<th>Feature</th>
<th style="text-align: center">Artemis Support</th>
<th>JIRA</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="composite-destinations">Composite Destinations</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>supported for OpenWire clients; see also <a href="components/artemis/documentation/latest/diverts">diverts</a></td>
</tr>
<tr>
<td><a href="configure-startup-destinations">Configure Startup Destinations</a></td>
<td style="text-align: center"></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><a href="delete-inactive-destinations">Delete Inactive Destinations</a></td>
<td style="text-align: center"></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><a href="destination-options">Destination Options</a></td>
<td style="text-align: center"></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><a href="mirrored-queues">Mirrored Queues</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>rough equivalent via non-exclusive <a href="components/artemis/documentation/latest/diverts">diverts</a></td>
</tr>
<tr>
<td><a href="per-destination-policies">Per Destination Policies</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>config via <code class="language-plaintext highlighter-rouge">address-settings</code></td>
</tr>
<tr>
<td><a href="virtual-destinations">Virtual Destinations</a></td>
<td style="text-align: center"></td>
<td> </td>
<td><a href="components/artemis/documentation/latest/openwire.html#virtual-topic-consumer-destination-translation">docs</a> for backwards compatibility with OpenWire clients</td>
</tr>
<tr>
<td><a href="wildcards">Wildcards</a></td>
<td style="text-align: center"></td>
<td> </td>
<td><a href="components/artemis/documentation/latest/wildcard-syntax">documentation</a></td>
</tr>
</tbody>
</table>
<h3 id="interceptors">Interceptors</h3>
<table>
<thead>
<tr>
<th>Feature</th>
<th style="text-align: center">Artemis Support</th>
<th>JIRA</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="destinations-plugin">Destinations Plugin</a></td>
<td style="text-align: center"></td>
<td> </td>
<td><a href="activemq.apache.org/components/artemis/documentation/latest/broker-plugins">documentation</a></td>
</tr>
<tr>
<td><a href="logging-interceptor">Logging Interceptor</a></td>
<td style="text-align: center"></td>
<td> </td>
<td><a href="components/artemis/documentation/latest/broker-plugins.html#using-the-loggingactivemqserverplugin">documentation</a></td>
</tr>
<tr>
<td><a href="statisticsplugin">StatisticsPlugin</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>equivalent via <a href="activemq.apache.org/components/artemis/documentation/latest/management.html#using-management-message-api">management messages</a></td>
</tr>
<tr>
<td><a href="timestampplugin">TimeStampPlugin</a></td>
<td style="text-align: center"></td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>
<h3 id="message-dispatching-features">Message Dispatching Features</h3>
<table>
<thead>
<tr>
<th>Feature</th>
<th style="text-align: center">Artemis Support</th>
<th>JIRA</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="async-sends">Async Sends</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>supported for OpenWire &amp; also for core (via <code class="language-plaintext highlighter-rouge">blockOnDurableSend</code> and <code class="language-plaintext highlighter-rouge">blockOnNonDurableSend</code> URL parameters)</td>
</tr>
<tr>
<td><a href="dispatch-policies">Pluggable Dispatch Policies</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>delay-before-dispatch and consumers-before-dispatch have been implemented</td>
</tr>
<tr>
<td><a href="message-cursors">Message Cursors</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>equivalent via <a href="components/artemis/documentation/latest/paging">paging</a></td>
</tr>
<tr>
<td><a href="optimized-acknowledgement">Optimized Acknowledgement</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>supported for OpenWire &amp; core as well via <code class="language-plaintext highlighter-rouge">ackBatchSize</code> URL parameter</td>
</tr>
<tr>
<td><a href="producer-flow-control">Producer Flow Control</a></td>
<td style="text-align: center"></td>
<td> </td>
<td><a href="components/artemis/documentation/latest/flow-control">documentation</a></td>
</tr>
<tr>
<td><a href="total-ordering">Total Ordering</a></td>
<td style="text-align: center"></td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>
<h3 id="message-features">Message Features</h3>
<table>
<thead>
<tr>
<th>Feature</th>
<th style="text-align: center">Artemis Support</th>
<th>JIRA</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="activemq-classic-message-properties">ActiveMQ Classic Message Properties</a></td>
<td style="text-align: center"></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><a href="advisory-message">Advisory Message</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>equivalent support via <a href="components/artemis/documentation/latest/management.html#management-notifications">management notifications</a></td>
</tr>
<tr>
<td><a href="blob-messages">Blob Messages</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>arbitrarily <a href="components/artemis/documentation/latest/large-messages">large messages</a> supported</td>
</tr>
<tr>
<td><a href="delay-and-schedule-message-delivery">Delay and Schedule Message Delivery</a></td>
<td style="text-align: center"></td>
<td> </td>
<td><a href="components/artemis/documentation/latest/scheduled-messages">documentation</a></td>
</tr>
<tr>
<td><a href="message-transformation">Message Transformation</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>supported via transformers and <a href="components/artemis/documentation/latest/intercepting-operations">remoting interceptors</a></td>
</tr>
<tr>
<td><a href="objectmessage">ObjectMessage</a></td>
<td style="text-align: center"></td>
<td> </td>
<td><a href="components/artemis/documentation/latest/security.html#controlling-jms-objectmessage-deserialization">documentation</a></td>
</tr>
<tr>
<td><a href="structured-message-properties-and-mapmessages">Structured Message Properties and MapMessages</a></td>
<td style="text-align: center"></td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>
<h3 id="persistence">Persistence</h3>
<table>
<thead>
<tr>
<th>Feature</th>
<th style="text-align: center">Artemis Support</th>
<th>JIRA</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="amq-message-store">AMQ Message Store</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>equivalent functionality via <a href="components/artemis/documentation/latest/persistence">journal</a></td>
</tr>
<tr>
<td><a href="configurable-ioexception-handling">Configurable IOException Handling</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>all IO errors considered critical</td>
</tr>
<tr>
<td><a href="jdbc-support">JDBC Support</a></td>
<td style="text-align: center"></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><a href="kahadb">KahaDB</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>equivalent functionality via <a href="components/artemis/documentation/latest/persistence">journal</a></td>
</tr>
<tr>
<td><a href="kaha-persistence">Kaha Persistence</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>equivalent functionality via <a href="components/artemis/documentation/latest/persistence">journal</a></td>
</tr>
<tr>
<td><a href="periodically-checking-disk-limits">Periodically checking disk limits</a></td>
<td style="text-align: center"></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><a href="pluggable-storage-lockers">Pluggable storage lockers</a></td>
<td style="text-align: center"></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><a href="replicated-Persistenceleveldb-store">Replicated LevelDB Store</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>equivalent functionality via <a href="components/artemis/documentation/latest/ha">journal replication HA config</a></td>
</tr>
<tr>
<td><a href="https://activemq.apache.org/kahadb">Multi-kahaDB</a></td>
<td style="text-align: center"></td>
<td><a href="https://issues.apache.org/jira/browse/ARTEMIS-839">ARTEMIS-839</a></td>
<td> </td>
</tr>
</tbody>
</table>
<h3 id="security">Security</h3>
<table>
<thead>
<tr>
<th>Feature</th>
<th style="text-align: center">Artemis Support</th>
<th>JIRA</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="audit-logging">Audit Logging</a></td>
<td style="text-align: center"></td>
<td><a href="https://issues.apache.org/jira/browse/ARTEMIS-2273">ARTEMIS-2273</a></td>
<td><a href="components/artemis/documentation/latest/logging.html#configuring-audit-log">documentation</a></td>
</tr>
<tr>
<td><a href="cached-ldap-authorization-module">Cached LDAP Authorization Module</a></td>
<td style="text-align: center"></td>
<td><a href="https://issues.apache.org/jira/browse/ARTEMIS-168">ARTEMIS-168</a></td>
<td><a href="components/artemis/documentation/latest/security.html#legacyldapsecuritysettingplugin">documentation</a></td>
</tr>
<tr>
<td><a href="encrypted-passwords">Encrypted passwords</a></td>
<td style="text-align: center"></td>
<td> </td>
<td><a href="components/artemis/documentation/latest/masking-passwords">documentation</a></td>
</tr>
<tr>
<td><a href="shiro">Shiro</a></td>
<td style="text-align: center"></td>
<td> </td>
<td>equivalent functionality available via JAAS</td>
</tr>
</tbody>
</table>
<h1 id="migration">Migration</h1>
<p>This section should help to answer the end user question, <em>‘How do I migrate from Classic to Artemis?’</em>. This should include the identification of any tools that can help make this easier, as well as documenting information and procedures specific to migrating.</p>
<ul>
<li><a href="components/artemis/migration">Migration Guide</a></li>
<li>Export messages from KahaDB using <a href="https://github.com/apache/activemq-cli-tools/tree/master/activemq-kahadb-exporter">this tool</a>. The exported XML can be imported via the <code class="language-plaintext highlighter-rouge">./artemis data imp</code> command.</li>
<li>For non-standard backends (where direct export isn’t an option) follow <a href="https://github.com/apache/activemq-artemis/tree/master/examples/features/sub-modules/inter-broker-bridge/artemis-jms-bridge">this example</a> to migrate messages from Classic to Artemis over the wire.</li>
</ul>
</div>
</div>
</div>
</div>
<div class="row sitemap">
<div class="col-sm-12">
<div class="container">
<div class="row">
<div class="col-sm-12">
<div class="row">
<div class="col-sm-3">
<div >
<img class="float-left" style="max-height: 100px" src="/assets/img/activemq_logo_white_vertical_small.png"/>
</div>
</div>
<div style="text-align: center; margin-bottom: 0px; margin-top: 30px; font-size: 65%" class="col-sm-6">
<p><a href="https://www.apache.org/foundation/marks/list/">Apache, ActiveMQ, Apache ActiveMQ</a>, the Apache feather logo, and the Apache ActiveMQ project logo are trademarks of The Apache Software Foundation. Copyright &copy; 2024, The Apache Software Foundation. Licensed under <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.</p>
</div>
<div class="col-sm-3">
<div >
<a href="https://www.apache.org"><img class="float-right" style="margin-top: 10px; max-height: 80px" src="/assets/img/apache-logo-small.png"/></a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>