Author: dejanb
Date: Wed Mar 8 10:34:24 2017
New Revision: 1007911
Log:
[docs] migration guide - authorization
Added:
websites/production/activemq/content/artemis/migration/authorization.html
Modified:
websites/production/activemq/content/artemis/migration/authentication.html
websites/production/activemq/content/artemis/migration/configuration.html
websites/production/activemq/content/artemis/migration/connectors.html
websites/production/activemq/content/artemis/migration/destinations.html
websites/production/activemq/content/artemis/migration/index.html
websites/production/activemq/content/artemis/migration/notice.html
websites/production/activemq/content/artemis/migration/search_index.json
Modified:
websites/production/activemq/content/artemis/migration/authentication.html
==============================================================================
--- websites/production/activemq/content/artemis/migration/authentication.html
(original)
+++ websites/production/activemq/content/artemis/migration/authentication.html
Wed Mar 8 10:34:24 2017
@@ -57,7 +57,7 @@
<link rel="shortcut icon" href="gitbook/images/favicon.ico"
type="image/x-icon">
- <link rel="next" href="notice.html" />
+ <link rel="next" href="authorization.html" />
<link rel="prev" href="destinations.html" />
@@ -154,7 +154,20 @@
</li>
- <li class="chapter " data-level="1.6" data-path="notice.html">
+ <li class="chapter " data-level="1.6" data-path="authorization.html">
+
+ <a href="authorization.html">
+
+
+ Authorization
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.7" data-path="notice.html">
<a href="notice.html">
@@ -215,13 +228,15 @@
<h1 id="authentication">Authentication</h1>
<p>Now that we have our acceptors and addresses ready, it's time to deal
with broker security. Artemis inherited most of the security concepts from
ActiveMQ. One of the most notable differences is that ActiveMQ <em>groups</em>
are now called <em>roles</em> in Artemis. Besides that things should be pretty
familiar to existing ActiveMQ users. Let's start by looking into the
authentication mechanisms and defining users and roles (groups).</p>
<p> Both ActiveMQ and Artemis use JAAS to define authentication credentials.
In ActiveMQ, that's configured through the appropriate broker plugin in
<code>conf/activemq.xml</code></p>
-<pre><code><plugins>
- <jaasAuthenticationPlugin configuration="activemq" />
-</plugins>
-</code></pre><p>The name of the JAAS domain is specified as a configuration
parameter. </p>
+<pre><code class="lang-xml"><span class="hljs-tag"><<span
class="hljs-name">plugins</span>></span>
+ <span class="hljs-tag"><<span
class="hljs-name">jaasAuthenticationPlugin</span> <span
class="hljs-attr">configuration</span>=<span
class="hljs-string">"activemq"</span> /></span>
+<span class="hljs-tag"></<span class="hljs-name">plugins</span>></span>
+</code></pre>
+<p>The name of the JAAS domain is specified as a configuration parameter.
</p>
<p>In Artemis, the same thing is achieved by defining
<code><jaas-security></code> configuration in
<code>etc/bootstrap.xml</code></p>
-<pre><code><jaas-security domain="activemq"/>
-</code></pre><p>From this point on, you can go and define your users and their
roles in appropriate files, like <code>conf/users.properties</code> and
<code>conf/groups.properties</code> in ActiveMQ. Similarly,
<code>etc/artemis-users.properties</code> and
<code>etc/artemis-roles.properties</code> files are used in Artemis. These
files are intechangable, so you should be able to just copy your existing
configuration over to the new broker. </p>
+<pre><code class="lang-xml"><span class="hljs-tag"><<span
class="hljs-name">jaas-security</span> <span
class="hljs-attr">domain</span>=<span
class="hljs-string">"activemq"</span>/></span>
+</code></pre>
+<p>From this point on, you can go and define your users and their roles in
appropriate files, like <code>conf/users.properties</code> and
<code>conf/groups.properties</code> in ActiveMQ. Similarly,
<code>etc/artemis-users.properties</code> and
<code>etc/artemis-roles.properties</code> files are used in Artemis. These
files are interchangeable, so you should be able to just copy your existing
configuration over to the new broker. </p>
<p>If your deployment is more complicated that this and requires some advanced
JAAS configuration, you'll need go and change the
<code>etc/login.config</code> file. It's important to say that all custom
JAAS modules and configuration you were using in ActiveMQ should be compatible
with Artemis.</p>
<p>Finally, in case you're still using ActiveMQ's <em>Simple
Authentication Plugin</em>, which defines users and groups directly in the
broker's xml configuration file, you'll need to migrate to JAAS as
Artemis doesn't support the similar concept.</p>
@@ -256,7 +271,7 @@
</a>
- <a href="notice.html" class="navigation navigation-next "
aria-label="Next page: Legal Notice">
+ <a href="authorization.html" class="navigation navigation-next
" aria-label="Next page: Authorization">
<i class="fa fa-angle-right"></i>
</a>
@@ -267,7 +282,7 @@
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
-
gitbook.page.hasChanged({"page":{"title":"Authentication","level":"1.5","depth":1,"next":{"title":"Legal
Notice","level":"1.6","depth":1,"path":"notice.md","ref":"notice.md","articles":[]},"previous":{"title":"Destinations","level":"1.4","depth":1,"path":"destinations.md","ref":"destinations.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"s
tyles/ebook.css","print":"styles/print.css"},"showLevel":false}},"github":"apache/activemq-artemis","theme":"default","githubHost":"https://github.com/","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"ActiveMQ
Artemis
Documentation","links":{"home":"http://activemq.apache.org/","issues":"http://activemq.apache.org/","contribute":"http://activemq.apache.org/contributing.html"},"gitbook":"3.x.x","description":"ActiveMQ
Artemis Migration
Guide"},"file":{"path":"authentication.md","mtime":"2017-02-24T12:22:46.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-02-24T12:23:19.192Z"},"basePath":".","book":{"language":""}});
+
gitbook.page.hasChanged({"page":{"title":"Authentication","level":"1.5","depth":1,"next":{"title":"Authorization","level":"1.6","depth":1,"path":"authorization.md","ref":"authorization.md","articles":[]},"previous":{"title":"Destinations","level":"1.4","depth":1,"path":"destinations.md","ref":"destinations.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.
css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"github":"apache/activemq-artemis","theme":"default","githubHost":"https://github.com/","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"ActiveMQ
Artemis
Documentation","links":{"home":"http://activemq.apache.org/","issues":"http://activemq.apache.org/","contribute":"http://activemq.apache.org/contributing.html"},"gitbook":"3.x.x","description":"ActiveMQ
Artemis Migration
Guide"},"file":{"path":"authentication.md","mtime":"2017-03-08T10:23:57.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-03-08T10:30:56.295Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>
Added: websites/production/activemq/content/artemis/migration/authorization.html
==============================================================================
--- websites/production/activemq/content/artemis/migration/authorization.html
(added)
+++ websites/production/activemq/content/artemis/migration/authorization.html
Wed Mar 8 10:34:24 2017
@@ -0,0 +1,454 @@
+
+<!DOCTYPE HTML>
+<html lang="" >
+ <head>
+ <meta charset="UTF-8">
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+ <title>Authorization · ActiveMQ Artemis Documentation</title>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="description" content="">
+ <meta name="generator" content="GitBook 3.2.2">
+
+
+
+
+ <link rel="stylesheet" href="gitbook/style.css">
+
+
+
+
+ <link rel="stylesheet"
href="gitbook/gitbook-plugin-highlight/website.css">
+
+
+
+ <link rel="stylesheet"
href="gitbook/gitbook-plugin-search/search.css">
+
+
+
+ <link rel="stylesheet"
href="gitbook/gitbook-plugin-fontsettings/website.css">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta name="HandheldFriendly" content="true"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1,
user-scalable=no">
+ <meta name="apple-mobile-web-app-capable" content="yes">
+ <meta name="apple-mobile-web-app-status-bar-style" content="black">
+ <link rel="apple-touch-icon-precomposed" sizes="152x152"
href="gitbook/images/apple-touch-icon-precomposed-152.png">
+ <link rel="shortcut icon" href="gitbook/images/favicon.ico"
type="image/x-icon">
+
+
+ <link rel="next" href="notice.html" />
+
+
+ <link rel="prev" href="authentication.html" />
+
+
+ </head>
+ <body>
+
+<div class="book">
+ <div class="book-summary">
+
+
+<div id="book-search-input" role="search">
+ <input type="text" placeholder="Type to search" />
+</div>
+
+
+ <nav role="navigation">
+
+
+
+<ul class="summary">
+
+
+
+
+
+
+
+
+
+ <li class="chapter " data-level="1.1" data-path="./">
+
+ <a href="./">
+
+
+ Introduction
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.2" data-path="configuration.html">
+
+ <a href="configuration.html">
+
+
+ Configuration
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.3" data-path="connectors.html">
+
+ <a href="connectors.html">
+
+
+ Connectors
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.4" data-path="destinations.html">
+
+ <a href="destinations.html">
+
+
+ Destinations
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.5" data-path="authentication.html">
+
+ <a href="authentication.html">
+
+
+ Authentication
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter active" data-level="1.6"
data-path="authorization.html">
+
+ <a href="authorization.html">
+
+
+ Authorization
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.7" data-path="notice.html">
+
+ <a href="notice.html">
+
+
+ Legal Notice
+
+ </a>
+
+
+
+ </li>
+
+
+
+
+ <li class="divider"></li>
+
+ <li>
+ <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
+ Published with GitBook
+ </a>
+ </li>
+</ul>
+
+
+ </nav>
+
+
+ </div>
+
+ <div class="book-body">
+
+ <div class="body-inner">
+
+
+
+<div class="book-header" role="navigation">
+
+
+ <!-- Title -->
+ <h1>
+ <i class="fa fa-circle-o-notch fa-spin"></i>
+ <a href="." >Authorization</a>
+ </h1>
+</div>
+
+
+
+
+ <div class="page-wrapper" tabindex="-1" role="main">
+ <div class="page-inner">
+
+<div id="book-search-results">
+ <div class="search-noresults">
+
+ <section class="normal markdown-section">
+
+ <h1 id="authorization">Authorization</h1>
+<p>To complete security migration, we need to deal with authorization policies
as well. In ActiveMQ, authorization is specified using the appropriate broker
plugin in <code>conf/activemq.xml</code>, like</p>
+<pre><code class="lang-xml"><span class="hljs-tag"><<span
class="hljs-name">authorizationPlugin</span>></span>
+ <span class="hljs-tag"><<span class="hljs-name">map</span>></span>
+ <span class="hljs-tag"><<span
class="hljs-name">authorizationMap</span>></span>
+ <span class="hljs-tag"><<span
class="hljs-name">authorizationEntries</span>></span>
+ <span class="hljs-tag"><<span
class="hljs-name">authorizationEntry</span> <span
class="hljs-attr">queue</span>=<span
class="hljs-string">">"</span> <span
class="hljs-attr">read</span>=<span
class="hljs-string">"admins"</span> <span
class="hljs-attr">write</span>=<span
class="hljs-string">"admins"</span> <span
class="hljs-attr">admin</span>=<span
class="hljs-string">"admins"</span>/></span>
+ <span class="hljs-tag"><<span
class="hljs-name">authorizationEntry</span> <span
class="hljs-attr">queue</span>=<span
class="hljs-string">"USERS.>"</span> <span
class="hljs-attr">read</span>=<span
class="hljs-string">"users"</span> <span
class="hljs-attr">write</span>=<span
class="hljs-string">"users"</span> <span
class="hljs-attr">admin</span>=<span
class="hljs-string">"users"</span>/></span>
+ <span class="hljs-tag"><<span
class="hljs-name">authorizationEntry</span> <span
class="hljs-attr">queue</span>=<span
class="hljs-string">"GUEST.>"</span> <span
class="hljs-attr">read</span>=<span
class="hljs-string">"guests"</span> <span
class="hljs-attr">write</span>=<span
class="hljs-string">"guests,users"</span> <span
class="hljs-attr">admin</span>=<span
class="hljs-string">"guests,users"</span>/></span>
+ <span class="hljs-tag"><<span
class="hljs-name">authorizationEntry</span> <span
class="hljs-attr">topic</span>=<span
class="hljs-string">">"</span> <span
class="hljs-attr">read</span>=<span
class="hljs-string">"admins"</span> <span
class="hljs-attr">write</span>=<span
class="hljs-string">"admins"</span> <span
class="hljs-attr">admin</span>=<span
class="hljs-string">"admins"</span>/></span>
+ <span class="hljs-tag"><<span
class="hljs-name">authorizationEntry</span> <span
class="hljs-attr">topic</span>=<span
class="hljs-string">"USERS.>"</span> <span
class="hljs-attr">read</span>=<span
class="hljs-string">"users"</span> <span
class="hljs-attr">write</span>=<span
class="hljs-string">"users"</span> <span
class="hljs-attr">admin</span>=<span
class="hljs-string">"users"</span>/></span>
+ <span class="hljs-tag"><<span
class="hljs-name">authorizationEntry</span> <span
class="hljs-attr">topic</span>=<span
class="hljs-string">"GUEST.>"</span> <span
class="hljs-attr">read</span>=<span
class="hljs-string">"guests"</span> <span
class="hljs-attr">write</span>=<span
class="hljs-string">"guests,users"</span> <span
class="hljs-attr">admin</span>=<span
class="hljs-string">"guests,users"</span>/></span>
+ <span class="hljs-tag"><<span
class="hljs-name">authorizationEntry</span> <span
class="hljs-attr">topic</span>=<span
class="hljs-string">"ActiveMQ.Advisory.>"</span> <span
class="hljs-attr">read</span>=<span
class="hljs-string">"guests,users"</span> <span
class="hljs-attr">write</span>=<span
class="hljs-string">"guests,users"</span> <span
class="hljs-attr">admin</span>=<span
class="hljs-string">"guests,users"</span>/></span>
+ <span class="hljs-tag"></<span
class="hljs-name">authorizationEntries</span>></span>
+ <span class="hljs-tag"></<span
class="hljs-name">authorizationMap</span>></span>
+ <span class="hljs-tag"></<span class="hljs-name">map</span>></span>
+<span class="hljs-tag"></<span
class="hljs-name">authorizationPlugin</span>></span>
+</code></pre>
+<p>The equivalent Artemis configuration is specified in
<code>etc/broker.xml</code> and should look like this</p>
+<pre><code class="lang-xml"><span class="hljs-tag"><<span
class="hljs-name">security-settings</span>></span>
+ <span class="hljs-tag"><<span class="hljs-name">security-setting</span>
<span class="hljs-attr">match</span>=<span
class="hljs-string">"#"</span>></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span
class="hljs-string">"createNonDurableQueue"</span> <span
class="hljs-attr">roles</span>=<span
class="hljs-string">"admins"</span>/></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span
class="hljs-string">"deleteNonDurableQueue"</span> <span
class="hljs-attr">roles</span>=<span
class="hljs-string">"admins"</span>/></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span
class="hljs-string">"createDurableQueue"</span> <span
class="hljs-attr">roles</span>=<span
class="hljs-string">"admins"</span>/></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span
class="hljs-string">"deleteDurableQueue"</span> <span
class="hljs-attr">roles</span>=<span
class="hljs-string">"admins"</span>/></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span
class="hljs-string">"consume"</span> <span
class="hljs-attr">roles</span>=<span
class="hljs-string">"admins"</span>/></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span
class="hljs-string">"browse"</span> <span
class="hljs-attr">roles</span>=<span
class="hljs-string">"admins"</span>/></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span class="hljs-string">"send"</span>
<span class="hljs-attr">roles</span>=<span
class="hljs-string">"admins"</span>/></span>
+ <span class="hljs-tag"></<span
class="hljs-name">security-setting</span>></span>
+
+ <span class="hljs-tag"><<span class="hljs-name">security-setting</span>
<span class="hljs-attr">match</span>=<span
class="hljs-string">"USERS.#"</span>></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span
class="hljs-string">"createNonDurableQueue"</span> <span
class="hljs-attr">roles</span>=<span
class="hljs-string">"users"</span>/></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span
class="hljs-string">"deleteNonDurableQueue"</span> <span
class="hljs-attr">roles</span>=<span
class="hljs-string">"users"</span>/></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span
class="hljs-string">"createDurableQueue"</span> <span
class="hljs-attr">roles</span>=<span
class="hljs-string">"users"</span>/></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span
class="hljs-string">"deleteDurableQueue"</span> <span
class="hljs-attr">roles</span>=<span
class="hljs-string">"users"</span>/></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span
class="hljs-string">"consume"</span> <span
class="hljs-attr">roles</span>=<span
class="hljs-string">"users"</span>/></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span
class="hljs-string">"browse"</span> <span
class="hljs-attr">roles</span>=<span
class="hljs-string">"users"</span>/></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span class="hljs-string">"send"</span>
<span class="hljs-attr">roles</span>=<span
class="hljs-string">"users"</span>/></span>
+ <span class="hljs-tag"></<span
class="hljs-name">security-setting</span>></span>
+
+ <span class="hljs-tag"><<span class="hljs-name">security-setting</span>
<span class="hljs-attr">match</span>=<span
class="hljs-string">"GUESTS.#"</span>></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span
class="hljs-string">"createNonDurableQueue"</span> <span
class="hljs-attr">roles</span>=<span
class="hljs-string">"guests"</span>/></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span
class="hljs-string">"deleteNonDurableQueue"</span> <span
class="hljs-attr">roles</span>=<span
class="hljs-string">"guests"</span>/></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span
class="hljs-string">"createDurableQueue"</span> <span
class="hljs-attr">roles</span>=<span
class="hljs-string">"guests"</span>/></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span
class="hljs-string">"deleteDurableQueue"</span> <span
class="hljs-attr">roles</span>=<span
class="hljs-string">"guests"</span>/></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span
class="hljs-string">"consume"</span> <span
class="hljs-attr">roles</span>=<span
class="hljs-string">"guests"</span>/></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span
class="hljs-string">"browse"</span> <span
class="hljs-attr">roles</span>=<span
class="hljs-string">"guests"</span>/></span>
+ <span class="hljs-tag"><<span class="hljs-name">permission</span> <span
class="hljs-attr">type</span>=<span class="hljs-string">"send"</span>
<span class="hljs-attr">roles</span>=<span
class="hljs-string">"guests"</span>/></span>
+ <span class="hljs-tag"></<span
class="hljs-name">security-setting</span>></span>
+<span class="hljs-tag"></<span
class="hljs-name">security-settings</span>></span>
+</code></pre>
+<p>As you can see, things are pretty comparable with some minor differences.
The most important one is that policies in ActiveMQ are defined on destination
names, while in Artemis they are applied to <em>core queues</em> (refresh your
knowledge about relation between queues and addresses in previous sections and
Artemis user manual).</p>
+<p>The other notable difference is that policies are more fine-grained in
Artemis. The following paragraphs and tables show Artemis policies that
corresponds to ActiveMQ ones.</p>
+<p>If you wish to allow users to send messages, you need to define the
following policies in the respective brokers.</p>
+<table>
+<thead>
+<tr>
+<th>ActiveMQ</th>
+<th>Artemis</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>write</td>
+<td>send</td>
+</tr>
+</tbody>
+</table>
+<p>In Artemis, policies for consuming and browsing are separated and you need
to define them both in order to control <code>read</code> access to the
destination.</p>
+<table>
+<thead>
+<tr>
+<th>ActiveMQ</th>
+<th>Artemis</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>read</td>
+<td>consume</td>
+</tr>
+<tr>
+<td></td>
+<td>browse</td>
+</tr>
+</tbody>
+</table>
+<p>It's the same story with <code>admin</code> privileges. You need to
define separate create and delete policies for durable and non-durable core
queues.</p>
+<table>
+<thead>
+<tr>
+<th>ActiveMQ</th>
+<th>Artemis</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>admin</td>
+<td>createNonDurableQueue</td>
+</tr>
+<tr>
+<td></td>
+<td>deleteNonDurableQueue</td>
+</tr>
+<tr>
+<td></td>
+<td>createDurableQueue</td>
+</tr>
+<tr>
+<td></td>
+<td>deleteDurableQueue</td>
+</tr>
+</tbody>
+</table>
+<p>Finally, there's a topic of using wildcards to define policies. The
following table shows the wildcard syntax difference. </p>
+<table>
+<thead>
+<tr>
+<th>Wildcard</th>
+<th>Description</th>
+<th>ActiveMQ</th>
+<th>Artemis</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>Delimiter</td>
+<td>Separates words in the path</td>
+<td>.</td>
+<td>.</td>
+</tr>
+<tr>
+<td>Single word</td>
+<td>Match single word in the path</td>
+<td>*</td>
+<td>*</td>
+</tr>
+<tr>
+<td>Any word</td>
+<td>Match any work recursively in the path</td>
+<td>></td>
+<td>#</td>
+</tr>
+</tbody>
+</table>
+<p>Basically, by default only the <em>any word</em> character is different, so
that's why we used <code>GUESTS.#</code> in Artemis example instead of
ActiveMQ's <code>GUESTS.></code> syntax.</p>
+<p>Powered with this knowledge, you should be able to transform your current
ActiveMQ authorization policies to Artemis. </p>
+
+
+ </section>
+
+ </div>
+ <div class="search-results">
+ <div class="has-results">
+
+ <h1 class="search-results-title"><span
class='search-results-count'></span> results matching "<span
class='search-query'></span>"</h1>
+ <ul class="search-results-list"></ul>
+
+ </div>
+ <div class="no-results">
+
+ <h1 class="search-results-title">No results matching "<span
class='search-query'></span>"</h1>
+
+ </div>
+ </div>
+</div>
+
+ </div>
+ </div>
+
+ </div>
+
+
+
+ <a href="authentication.html" class="navigation
navigation-prev " aria-label="Previous page: Authentication">
+ <i class="fa fa-angle-left"></i>
+ </a>
+
+
+ <a href="notice.html" class="navigation navigation-next "
aria-label="Next page: Legal Notice">
+ <i class="fa fa-angle-right"></i>
+ </a>
+
+
+
+ </div>
+
+ <script>
+ var gitbook = gitbook || [];
+ gitbook.push(function() {
+
gitbook.page.hasChanged({"page":{"title":"Authorization","level":"1.6","depth":1,"next":{"title":"Legal
Notice","level":"1.7","depth":1,"path":"notice.md","ref":"notice.md","articles":[]},"previous":{"title":"Authentication","level":"1.5","depth":1,"path":"authentication.md","ref":"authentication.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","eboo
k":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"github":"apache/activemq-artemis","theme":"default","githubHost":"https://github.com/","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"ActiveMQ
Artemis
Documentation","links":{"home":"http://activemq.apache.org/","issues":"http://activemq.apache.org/","contribute":"http://activemq.apache.org/contributing.html"},"gitbook":"3.x.x","description":"ActiveMQ
Artemis Migration
Guide"},"file":{"path":"authorization.md","mtime":"2017-03-08T10:23:57.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-03-08T10:30:56.295Z"},"basePath":".","book":{"language":""}});
+ });
+ </script>
+</div>
+
+
+ <script src="gitbook/gitbook.js"></script>
+ <script src="gitbook/theme.js"></script>
+
+
+ <script src="gitbook/gitbook-plugin-search/search-engine.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-search/search.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-sharing/buttons.js"></script>
+
+
+
+ <script
src="gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
+
+
+
+ </body>
+</html>
+
Modified:
websites/production/activemq/content/artemis/migration/configuration.html
==============================================================================
--- websites/production/activemq/content/artemis/migration/configuration.html
(original)
+++ websites/production/activemq/content/artemis/migration/configuration.html
Wed Mar 8 10:34:24 2017
@@ -154,7 +154,20 @@
</li>
- <li class="chapter " data-level="1.6" data-path="notice.html">
+ <li class="chapter " data-level="1.6" data-path="authorization.html">
+
+ <a href="authorization.html">
+
+
+ Authorization
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.7" data-path="notice.html">
<a href="notice.html">
@@ -230,21 +243,27 @@
<p>There's no much difference in logging configuration between two
brokers, so anyone familiar with Java logging systems in general will find
herself at home here. The <code>etc/logging.properties</code> file is where
it's all configured.</p>
<p>Finally, we have JAAS configuration files (<code>login.config</code>,
<code>artemis-users.properties</code> and
<code>artemis-roles.properties</code>), which cover same roles as in ActiveMQ
and we will go into more details on these in the article that covers
security.</p>
<p>After this brief walk through the location of different configuration
aspects of Artemis, we're ready to start the broker. If you wish to start
the broker in the foreground, you should execute</p>
-<pre><code>$ bin/artemis run
-</code></pre><p>This is the same as</p>
-<pre><code>$ bin/activemq console
-</code></pre><p>command in ActiveMQ.</p>
+<pre><code class="lang-sh">$ bin/artemis run
+</code></pre>
+<p>This is the same as</p>
+<pre><code class="lang-sh">$ bin/activemq console
+</code></pre>
+<p>command in ActiveMQ.</p>
<p>For running the broker as a service, Artemis provides a separate shell
script <code>bin/artemis-service</code>. So you can run the broker in the
background like</p>
-<pre><code>$ bin/artemis-service start
-</code></pre><p>This is the same as running ActiveMQ with</p>
-<pre><code> $ bin/activemq start
-</code></pre><p>After the start, you can check the broker status in
<code>logs/artemis.log</code> file.</p>
+<pre><code class="lang-sh">$ bin/artemis-service start
+</code></pre>
+<p>This is the same as running ActiveMQ with</p>
+<pre><code class="lang-sh">$ bin/activemq start
+</code></pre>
+<p>After the start, you can check the broker status in
<code>logs/artemis.log</code> file.</p>
<p>Congratulations, you have your Artemis broker up and running. By default,
Artemis starts <em>Openwire</em> connector on the same port as ActiveMQ, so
clients can connect. To test this you can go to your existing ActiveMQ instance
and run the following commands.</p>
-<pre><code>$ bin/activemq producer
+<pre><code class="lang-sh">$ bin/activemq producer
$ bin/activemq consumer
-</code></pre><p>You should see the messages flowing through the broker.
Finally, we can stop the broker with</p>
-<pre><code>$ bin/artemis-service stop
-</code></pre><p>With this, our orienteering session around Artemis is
finished. In the following articles we'll start digging deeper into the
configuration details and differences between two brokers and see how that can
affect your messaging applications.</p>
+</code></pre>
+<p>You should see the messages flowing through the broker. Finally, we can
stop the broker with</p>
+<pre><code class="lang-sh">$ bin/artemis-service stop
+</code></pre>
+<p>With this, our orienteering session around Artemis is finished. In the
following articles we'll start digging deeper into the configuration
details and differences between two brokers and see how that can affect your
messaging applications.</p>
</section>
@@ -288,7 +307,7 @@ $ bin/activemq consumer
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
-
gitbook.page.hasChanged({"page":{"title":"Configuration","level":"1.2","depth":1,"next":{"title":"Connectors","level":"1.3","depth":1,"path":"connectors.md","ref":"connectors.md","articles":[]},"previous":{"title":"Introduction","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/e
book.css","print":"styles/print.css"},"showLevel":false}},"github":"apache/activemq-artemis","theme":"default","githubHost":"https://github.com/","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"ActiveMQ
Artemis
Documentation","links":{"home":"http://activemq.apache.org/","issues":"http://activemq.apache.org/","contribute":"http://activemq.apache.org/contributing.html"},"gitbook":"3.x.x","description":"ActiveMQ
Artemis Migration
Guide"},"file":{"path":"configuration.md","mtime":"2017-02-22T12:06:29.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-02-24T12:23:19.192Z"},"basePath":".","book":{"language":""}});
+
gitbook.page.hasChanged({"page":{"title":"Configuration","level":"1.2","depth":1,"next":{"title":"Connectors","level":"1.3","depth":1,"path":"connectors.md","ref":"connectors.md","articles":[]},"previous":{"title":"Introduction","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/e
book.css","print":"styles/print.css"},"showLevel":false}},"github":"apache/activemq-artemis","theme":"default","githubHost":"https://github.com/","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"ActiveMQ
Artemis
Documentation","links":{"home":"http://activemq.apache.org/","issues":"http://activemq.apache.org/","contribute":"http://activemq.apache.org/contributing.html"},"gitbook":"3.x.x","description":"ActiveMQ
Artemis Migration
Guide"},"file":{"path":"configuration.md","mtime":"2017-03-06T16:19:01.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-03-08T10:30:56.295Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>
Modified: websites/production/activemq/content/artemis/migration/connectors.html
==============================================================================
--- websites/production/activemq/content/artemis/migration/connectors.html
(original)
+++ websites/production/activemq/content/artemis/migration/connectors.html Wed
Mar 8 10:34:24 2017
@@ -154,7 +154,20 @@
</li>
- <li class="chapter " data-level="1.6" data-path="notice.html">
+ <li class="chapter " data-level="1.6" data-path="authorization.html">
+
+ <a href="authorization.html">
+
+
+ Authorization
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.7" data-path="notice.html">
<a href="notice.html">
@@ -214,22 +227,24 @@
<h1 id="connectors">Connectors</h1>
<p>After broker is started, you'll want to connect your clients to it.
So, let's start with comparing ActiveMQ and Artemis configurations in area
of client connectors. In ActiveMQ terminology, they are called <em>transport
connectors</em>, and the default configuration looks something like this (in
<code>conf/activemq.xml</code>).</p>
-<pre><code><transportConnectors>
- <transportConnector name="openwire"
uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
- <transportConnector name="amqp"
uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
- <transportConnector name="stomp"
uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
- <transportConnector name="mqtt"
uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
- <transportConnector name="ws"
uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
-</transportConnectors>
-</code></pre><p>In Artemis, client connectors are called <em>acceptors</em>
and they are configured in <code>etc/broker.xml</code> like this</p>
-<pre><code><acceptors>
- <acceptor
name="artemis">tcp://0.0.0.0:61616?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE</acceptor>
- <acceptor
name="amqp">tcp://0.0.0.0:5672?protocols=AMQP</acceptor>
- <acceptor
name="stomp">tcp://0.0.0.0:61613?protocols=STOMP</acceptor>
- <acceptor
name="hornetq">tcp://0.0.0.0:5445?protocols=HORNETQ,STOMP</acceptor>
- <acceptor
name="mqtt">tcp://0.0.0.0:1883?protocols=MQTT</acceptor>
-</acceptors>
-</code></pre><p>As you can notice the syntax is very similar, but there are
still some differences that we need to understand. First, as we said earlier,
there's no notion of blocking and non-blocking (nio) transport in
Artemis, so you should treat everything as non-blocking. Also, in Artemis the
low level transport is distinct from the actual messaging protocol (like AMQP
or MQTT) used on top of it. One acceptor can handle multiple messaging
protocols on the same port. By default, all protocols are accepted on the
single port, but you can restrict this using the <code>protocols=X,Y</code> uri
attribute pattern as shown in the example above.</p>
+<pre><code class="lang-xml"><span class="hljs-tag"><<span
class="hljs-name">transportConnectors</span>></span>
+ <span class="hljs-tag"><<span
class="hljs-name">transportConnector</span> <span
class="hljs-attr">name</span>=<span
class="hljs-string">"openwire"</span> <span
class="hljs-attr">uri</span>=<span
class="hljs-string">"tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"</span>/></span>
+ <span class="hljs-tag"><<span
class="hljs-name">transportConnector</span> <span
class="hljs-attr">name</span>=<span class="hljs-string">"amqp"</span>
<span class="hljs-attr">uri</span>=<span
class="hljs-string">"amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"</span>/></span>
+ <span class="hljs-tag"><<span
class="hljs-name">transportConnector</span> <span
class="hljs-attr">name</span>=<span
class="hljs-string">"stomp"</span> <span
class="hljs-attr">uri</span>=<span
class="hljs-string">"stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"</span>/></span>
+ <span class="hljs-tag"><<span
class="hljs-name">transportConnector</span> <span
class="hljs-attr">name</span>=<span class="hljs-string">"mqtt"</span>
<span class="hljs-attr">uri</span>=<span
class="hljs-string">"mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"</span>/></span>
+ <span class="hljs-tag"><<span
class="hljs-name">transportConnector</span> <span
class="hljs-attr">name</span>=<span class="hljs-string">"ws"</span>
<span class="hljs-attr">uri</span>=<span
class="hljs-string">"ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"</span>/></span>
+<span class="hljs-tag"></<span
class="hljs-name">transportConnectors</span>></span>
+</code></pre>
+<p>In Artemis, client connectors are called <em>acceptors</em> and they are
configured in <code>etc/broker.xml</code> like this</p>
+<pre><code class="lang-xml"><span class="hljs-tag"><<span
class="hljs-name">acceptors</span>></span>
+ <span class="hljs-tag"><<span class="hljs-name">acceptor</span> <span
class="hljs-attr">name</span>=<span
class="hljs-string">"artemis"</span>></span>tcp://0.0.0.0:61616?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE<span
class="hljs-tag"></<span class="hljs-name">acceptor</span>></span>
+ <span class="hljs-tag"><<span class="hljs-name">acceptor</span> <span
class="hljs-attr">name</span>=<span
class="hljs-string">"amqp"</span>></span>tcp://0.0.0.0:5672?protocols=AMQP<span
class="hljs-tag"></<span class="hljs-name">acceptor</span>></span>
+ <span class="hljs-tag"><<span class="hljs-name">acceptor</span> <span
class="hljs-attr">name</span>=<span
class="hljs-string">"stomp"</span>></span>tcp://0.0.0.0:61613?protocols=STOMP<span
class="hljs-tag"></<span class="hljs-name">acceptor</span>></span>
+ <span class="hljs-tag"><<span class="hljs-name">acceptor</span> <span
class="hljs-attr">name</span>=<span
class="hljs-string">"hornetq"</span>></span>tcp://0.0.0.0:5445?protocols=HORNETQ,STOMP<span
class="hljs-tag"></<span class="hljs-name">acceptor</span>></span>
+ <span class="hljs-tag"><<span class="hljs-name">acceptor</span> <span
class="hljs-attr">name</span>=<span
class="hljs-string">"mqtt"</span>></span>tcp://0.0.0.0:1883?protocols=MQTT<span
class="hljs-tag"></<span class="hljs-name">acceptor</span>></span>
+<span class="hljs-tag"></<span class="hljs-name">acceptors</span>></span>
+</code></pre>
+<p>As you can notice the syntax is very similar, but there are still some
differences that we need to understand. First, as we said earlier, there's
no notion of blocking and non-blocking (nio) transport in Artemis, so you
should treat everything as non-blocking. Also, in Artemis the low level
transport is distinct from the actual messaging protocol (like AMQP or MQTT)
used on top of it. One acceptor can handle multiple messaging protocols on the
same port. By default, all protocols are accepted on the single port, but you
can restrict this using the <code>protocols=X,Y</code> uri attribute pattern as
shown in the example above.</p>
<p>Besides <em>tcp</em> network protocol, Artemis support <em>InVm</em> and
<em>Web Socket</em> transports. The <em>InVm</em> transport is similar to
ActiveMQ's <em>vm</em> transport and is used to connect clients to the
embedded broker. The difference is that you can use any messaging protocol on
top of <em>InVm</em> transport in Artemis, while <em>vm</em> transport in
ActiveMQ is tied to OpenWire.</p>
<p>One of the advantages of using Netty for IO layer, is that Web Sockets are
supported out of the box. So, there's no need for the separate <em>ws</em>
transport like in ActiveMQ, the <em>tcp</em> (Netty) acceptor in Artemis will
detect Web Socket clients and handle them accordingly. </p>
<p>To summarize this topic, here's a table that shows you how to migrate
your ActiveMQ transport connectors to the Artemis acceptors </p>
@@ -237,7 +252,7 @@
<thead>
<tr>
<th>ActiveMQ</th>
-<th>Artemis (p[tions in the acceptor URL)</th>
+<th>Artemis (options in the acceptor URL)</th>
</tr>
</thead>
<tbody>
@@ -318,7 +333,7 @@
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
-
gitbook.page.hasChanged({"page":{"title":"Connectors","level":"1.3","depth":1,"next":{"title":"Destinations","level":"1.4","depth":1,"path":"destinations.md","ref":"destinations.md","articles":[]},"previous":{"title":"Configuration","level":"1.2","depth":1,"path":"configuration.md","ref":"configuration.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css"
,"ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"github":"apache/activemq-artemis","theme":"default","githubHost":"https://github.com/","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"ActiveMQ
Artemis
Documentation","links":{"home":"http://activemq.apache.org/","issues":"http://activemq.apache.org/","contribute":"http://activemq.apache.org/contributing.html"},"gitbook":"3.x.x","description":"ActiveMQ
Artemis Migration
Guide"},"file":{"path":"connectors.md","mtime":"2017-02-22T12:06:29.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-02-24T12:23:19.192Z"},"basePath":".","book":{"language":""}});
+
gitbook.page.hasChanged({"page":{"title":"Connectors","level":"1.3","depth":1,"next":{"title":"Destinations","level":"1.4","depth":1,"path":"destinations.md","ref":"destinations.md","articles":[]},"previous":{"title":"Configuration","level":"1.2","depth":1,"path":"configuration.md","ref":"configuration.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css"
,"ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"github":"apache/activemq-artemis","theme":"default","githubHost":"https://github.com/","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"ActiveMQ
Artemis
Documentation","links":{"home":"http://activemq.apache.org/","issues":"http://activemq.apache.org/","contribute":"http://activemq.apache.org/contributing.html"},"gitbook":"3.x.x","description":"ActiveMQ
Artemis Migration
Guide"},"file":{"path":"connectors.md","mtime":"2017-03-06T16:19:01.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-03-08T10:30:56.295Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>
Modified:
websites/production/activemq/content/artemis/migration/destinations.html
==============================================================================
--- websites/production/activemq/content/artemis/migration/destinations.html
(original)
+++ websites/production/activemq/content/artemis/migration/destinations.html
Wed Mar 8 10:34:24 2017
@@ -154,7 +154,20 @@
</li>
- <li class="chapter " data-level="1.6" data-path="notice.html">
+ <li class="chapter " data-level="1.6" data-path="authorization.html">
+
+ <a href="authorization.html">
+
+
+ Authorization
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.7" data-path="notice.html">
<a href="notice.html">
@@ -215,24 +228,26 @@
<h1 id="destinations">Destinations</h1>
<p>We already talked about addressing differences between ActiveMQ and Artemis
in the <a href="./">introduction</a>. Now let's dig into the details and
see how to configure JMS queues and topics. It's important to note here
that both brokers are configured by default to <em>auto-create</em>
destinations requested by clients, which is preferred behavior for many use
cases. This is configured using authorization security policies, so we will
cover this topic in the later sections of this manual. For now, let's see
how you can predefine JMS queues and topics in both brokers.</p>
<p>In ActiveMQ, destinations are pre-defined in the
<code><destinations></code> section of the <code>conf/activemq.xml</code>
configuration file.</p>
-<pre><code><destinations>
- <queue physicalName="my-queue" />
- <topic physicalName="my-topic" />
-</destinations>
-</code></pre><p>Things looks a bit different in Artemis. We already explained
that queues are <code>anycast</code> addresses and topics are
<code>muticast</code> ones. We're not gonna go deep into the address
settings details here and you're advised to look at the user manual for
that. Let's just see what we need to do in order to replicate ActiveMQ
configuration. </p>
+<pre><code class="lang-xml"><span class="hljs-tag"><<span
class="hljs-name">destinations</span>></span>
+ <span class="hljs-tag"><<span class="hljs-name">queue</span> <span
class="hljs-attr">physicalName</span>=<span
class="hljs-string">"my-queue"</span> /></span>
+ <span class="hljs-tag"><<span class="hljs-name">topic</span> <span
class="hljs-attr">physicalName</span>=<span
class="hljs-string">"my-topic"</span> /></span>
+<span class="hljs-tag"></<span
class="hljs-name">destinations</span>></span>
+</code></pre>
+<p>Things looks a bit different in Artemis. We already explained that queues
are <code>anycast</code> addresses and topics are <code>muticast</code> ones.
We're not gonna go deep into the address settings details here and
you're advised to look at the user manual for that. Let's just see
what we need to do in order to replicate ActiveMQ configuration. </p>
<p>Addresses are defined in <code><addresses></code> section of the
<code>etc/broker.xml</code> configuration file. So the corresponding Artemis
configuration for the ActiveMQ example above, looks like this:</p>
-<pre><code><addresses>
- <address name="my-queue">
- <anycast>
- <queue name="my-queue"/>
- </anycast>
- </address>
-
- <address name="my-topic">
- <multicast></multicast>
- </address>
-</adresses>
-</code></pre><p>After this step we have our destinations ready in the new
broker. </p>
+<pre><code class="lang-xml"><span class="hljs-tag"><<span
class="hljs-name">addresses</span>></span>
+ <span class="hljs-tag"><<span class="hljs-name">address</span> <span
class="hljs-attr">name</span>=<span
class="hljs-string">"my-queue"</span>></span>
+ <span class="hljs-tag"><<span
class="hljs-name">anycast</span>></span>
+ <span class="hljs-tag"><<span class="hljs-name">queue</span>
<span class="hljs-attr">name</span>=<span
class="hljs-string">"my-queue"</span>/></span>
+ <span class="hljs-tag"></<span
class="hljs-name">anycast</span>></span>
+ <span class="hljs-tag"></<span
class="hljs-name">address</span>></span>
+
+ <span class="hljs-tag"><<span class="hljs-name">address</span> <span
class="hljs-attr">name</span>=<span
class="hljs-string">"my-topic"</span>></span>
+ <span class="hljs-tag"><<span
class="hljs-name">multicast</span>></span><span class="hljs-tag"></<span
class="hljs-name">multicast</span>></span>
+ <span class="hljs-tag"></<span
class="hljs-name">address</span>></span>
+<span class="hljs-tag"></<span class="hljs-name">adresses</span>></span>
+</code></pre>
+<p>After this step we have our destinations ready in the new broker.</p>
</section>
@@ -276,7 +291,7 @@
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
-
gitbook.page.hasChanged({"page":{"title":"Destinations","level":"1.4","depth":1,"next":{"title":"Authentication","level":"1.5","depth":1,"path":"authentication.md","ref":"authentication.md","articles":[]},"previous":{"title":"Connectors","level":"1.3","depth":1,"path":"connectors.md","ref":"connectors.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css",
"ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"github":"apache/activemq-artemis","theme":"default","githubHost":"https://github.com/","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"ActiveMQ
Artemis
Documentation","links":{"home":"http://activemq.apache.org/","issues":"http://activemq.apache.org/","contribute":"http://activemq.apache.org/contributing.html"},"gitbook":"3.x.x","description":"ActiveMQ
Artemis Migration
Guide"},"file":{"path":"destinations.md","mtime":"2017-02-24T10:15:15.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-02-24T12:23:19.192Z"},"basePath":".","book":{"language":""}});
+
gitbook.page.hasChanged({"page":{"title":"Destinations","level":"1.4","depth":1,"next":{"title":"Authentication","level":"1.5","depth":1,"path":"authentication.md","ref":"authentication.md","articles":[]},"previous":{"title":"Connectors","level":"1.3","depth":1,"path":"connectors.md","ref":"connectors.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css",
"ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"github":"apache/activemq-artemis","theme":"default","githubHost":"https://github.com/","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"ActiveMQ
Artemis
Documentation","links":{"home":"http://activemq.apache.org/","issues":"http://activemq.apache.org/","contribute":"http://activemq.apache.org/contributing.html"},"gitbook":"3.x.x","description":"ActiveMQ
Artemis Migration
Guide"},"file":{"path":"destinations.md","mtime":"2017-03-06T16:19:01.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-03-08T10:30:56.295Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>
Modified: websites/production/activemq/content/artemis/migration/index.html
==============================================================================
--- websites/production/activemq/content/artemis/migration/index.html (original)
+++ websites/production/activemq/content/artemis/migration/index.html Wed Mar
8 10:34:24 2017
@@ -152,7 +152,20 @@
</li>
- <li class="chapter " data-level="1.6" data-path="notice.html">
+ <li class="chapter " data-level="1.6" data-path="authorization.html">
+
+ <a href="authorization.html">
+
+
+ Authorization
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.7" data-path="notice.html">
<a href="notice.html">
@@ -266,7 +279,7 @@
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
-
gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"Configuration","level":"1.2","depth":1,"path":"configuration.md","ref":"configuration.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"github":"apache/activemq-artemis","theme":"d
efault","githubHost":"https://github.com/","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"ActiveMQ
Artemis
Documentation","links":{"home":"http://activemq.apache.org/","issues":"http://activemq.apache.org/","contribute":"http://activemq.apache.org/contributing.html"},"gitbook":"3.x.x","description":"ActiveMQ
Artemis Migration
Guide"},"file":{"path":"README.md","mtime":"2017-02-22T12:06:29.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-02-24T12:23:19.192Z"},"basePath":".","book":{"language":""}});
+
gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"Configuration","level":"1.2","depth":1,"path":"configuration.md","ref":"configuration.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"github":"apache/activemq-artemis","theme":"d
efault","githubHost":"https://github.com/","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"ActiveMQ
Artemis
Documentation","links":{"home":"http://activemq.apache.org/","issues":"http://activemq.apache.org/","contribute":"http://activemq.apache.org/contributing.html"},"gitbook":"3.x.x","description":"ActiveMQ
Artemis Migration
Guide"},"file":{"path":"README.md","mtime":"2017-02-17T10:01:41.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-03-08T10:30:56.295Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>
Modified: websites/production/activemq/content/artemis/migration/notice.html
==============================================================================
--- websites/production/activemq/content/artemis/migration/notice.html
(original)
+++ websites/production/activemq/content/artemis/migration/notice.html Wed Mar
8 10:34:24 2017
@@ -58,7 +58,7 @@
- <link rel="prev" href="authentication.html" />
+ <link rel="prev" href="authorization.html" />
</head>
@@ -152,7 +152,20 @@
</li>
- <li class="chapter active" data-level="1.6" data-path="notice.html">
+ <li class="chapter " data-level="1.6" data-path="authorization.html">
+
+ <a href="authorization.html">
+
+
+ Authorization
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter active" data-level="1.7" data-path="notice.html">
<a href="notice.html">
@@ -250,7 +263,7 @@ limitations under the License.</p>
- <a href="authentication.html" class="navigation
navigation-prev navigation-unique" aria-label="Previous page: Authentication">
+ <a href="authorization.html" class="navigation navigation-prev
navigation-unique" aria-label="Previous page: Authorization">
<i class="fa fa-angle-left"></i>
</a>
@@ -262,7 +275,7 @@ limitations under the License.</p>
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
- gitbook.page.hasChanged({"page":{"title":"Legal
Notice","level":"1.6","depth":1,"previous":{"title":"Authentication","level":"1.5","depth":1,"path":"authentication.md","ref":"authentication.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"github":"apache/activemq-artemis","th
eme":"default","githubHost":"https://github.com/","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"ActiveMQ
Artemis
Documentation","links":{"home":"http://activemq.apache.org/","issues":"http://activemq.apache.org/","contribute":"http://activemq.apache.org/contributing.html"},"gitbook":"3.x.x","description":"ActiveMQ
Artemis Migration
Guide"},"file":{"path":"notice.md","mtime":"2017-02-22T12:06:29.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-02-24T12:23:19.192Z"},"basePath":".","book":{"language":""}});
+ gitbook.page.hasChanged({"page":{"title":"Legal
Notice","level":"1.7","depth":1,"previous":{"title":"Authorization","level":"1.6","depth":1,"path":"authorization.md","ref":"authorization.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"github":"apache/activemq-artemis","theme
":"default","githubHost":"https://github.com/","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"ActiveMQ
Artemis
Documentation","links":{"home":"http://activemq.apache.org/","issues":"http://activemq.apache.org/","contribute":"http://activemq.apache.org/contributing.html"},"gitbook":"3.x.x","description":"ActiveMQ
Artemis Migration
Guide"},"file":{"path":"notice.md","mtime":"2017-02-15T13:24:47.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-03-08T10:30:56.295Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>
Modified:
websites/production/activemq/content/artemis/migration/search_index.json
==============================================================================
--- websites/production/activemq/content/artemis/migration/search_index.json
(original)
+++ websites/production/activemq/content/artemis/migration/search_index.json
Wed Mar 8 10:34:24 2017
@@ -1 +1 @@
[... 5 lines stripped ...]