<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
--><configuration xmlns="urn:activemq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:activemq /schema/artemis-server.xsd">



   <core xmlns="urn:activemq:core">

      <bindings-directory>./data/bindings</bindings-directory>

      <journal-directory>./data/journal</journal-directory>

      <large-messages-directory>./data/largemessages</large-messages-directory>

      <paging-directory>./data/paging</paging-directory>

      <cluster-user>exampleUser</cluster-user>

      <cluster-password>secret</cluster-password>

      <journal-retention-directory storage-limit="20M">./data/retention</journal-retention-directory>

      <ha-policy>
         <replication>
            <slave>
               <allow-failback>true</allow-failback>
               <!-- not needed but tells the backup not to restart after failback as there will be > 0 backups saved -->
               <max-saved-replicated-journals-size>0</max-saved-replicated-journals-size>
            </slave>
         </replication>
      </ha-policy>

      <!-- Connectors -->
      <connectors>
         <connector name="netty-live-connector">tcp://mainA:61616</connector>
         <connector name="netty-connector">tcp://backupA:61616</connector>
      </connectors>

      <!-- Acceptors -->
      <acceptors>
         <acceptor name="netty-acceptor">tcp://0.0.0.0:61616</acceptor>
      </acceptors>

      <broker-connections>
         <amqp-connection uri="tcp://mainB:61616#tcp://backupB:61616" name="serverB" reconnect-attempts="-1" retry-interval="500">
            <mirror durable="true"/>
         </amqp-connection>
      </broker-connections>

      <cluster-connections>
         <cluster-connection name="my-cluster">
            <connector-ref>netty-connector</connector-ref>
            <static-connectors>
               <connector-ref>netty-live-connector</connector-ref>
            </static-connectors>
         </cluster-connection>
      </cluster-connections>
      <!-- Other config -->

      <security-settings>
         <!--security for example queue-->
         <security-setting match="#">
            <permission type="createNonDurableQueue" roles="amq, guest"/>
            <permission type="deleteNonDurableQueue" roles="amq, guest"/>
            <permission type="createDurableQueue" roles="amq, guest"/>
            <permission type="deleteDurableQueue" roles="amq, guest"/>
            <permission type="createAddress" roles="amq, guest"/>
            <permission type="deleteAddress" roles="amq, guest"/>
            <permission type="consume" roles="amq, guest"/>
            <permission type="browse" roles="amq, guest"/>
            <permission type="send" roles="amq, guest"/>
            <!-- we need this otherwise ./artemis data imp wouldn't work -->
            <permission type="manage" roles="amq"/>
         </security-setting>
      </security-settings>
      <address-settings>
         <!-- if you define auto-create on certain queues, management has to be auto-create -->
         <address-setting match="activemq.management#">
            <dead-letter-address>DLQ</dead-letter-address>
            <expiry-address>ExpiryQueue</expiry-address>
            <redelivery-delay>0</redelivery-delay>
            <!-- with -1 only the global-max-size is in use for limiting -->
            <max-size-bytes>-1</max-size-bytes>
            <message-counter-history-day-limit>10</message-counter-history-day-limit>
            <address-full-policy>PAGE</address-full-policy>
            <auto-create-queues>true</auto-create-queues>
            <auto-create-addresses>true</auto-create-addresses>
            <auto-create-jms-queues>true</auto-create-jms-queues>
            <auto-create-jms-topics>true</auto-create-jms-topics>
         </address-setting>
         <!--default for catch all-->
         <address-setting match="#">
            <dead-letter-address>DLQ</dead-letter-address>
            <expiry-address>ExpiryQueue</expiry-address>
            <redelivery-delay>0</redelivery-delay>
            <!-- with -1 only the global-max-size is in use for limiting -->
            <max-size-bytes>10MB</max-size-bytes>
            <page-size-bytes>1MB</page-size-bytes>

            <message-counter-history-day-limit>10</message-counter-history-day-limit>
            <address-full-policy>PAGE</address-full-policy>
            <auto-create-queues>true</auto-create-queues>
            <auto-create-addresses>true</auto-create-addresses>
            <auto-create-jms-queues>true</auto-create-jms-queues>
            <auto-create-jms-topics>true</auto-create-jms-topics>
         </address-setting>
      </address-settings>

      <addresses>
         <address name="exampleTopic">
            <multicast>
            </multicast>
         </address>
         <address name="DLQ">
            <anycast>
               <queue name="DLQ"/>
            </anycast>
         </address>
         <address name="exampleQueue">
            <anycast>
               <queue name="exampleQueue"/>
            </anycast>
         </address>
      </addresses>
   </core>
</configuration>
