<!--
  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"
        xmlns:xi="http://www.w3.org/2001/XInclude"
        xsi:schemaLocation="urn:activemq ../../../../activemq-server/src/main/resources/schema/artemis-server.xsd">
   <core xmlns="urn:activemq:core">
      <name>SomeNameForUseOnTheApplicationServer</name>
      <resolve-protocols>false</resolve-protocols>
      <persistence-enabled>false</persistence-enabled>
      <scheduled-thread-pool-max-size>12345</scheduled-thread-pool-max-size>
      <thread-pool-max-size>54321</thread-pool-max-size>
      <security-enabled>false</security-enabled>
      <graceful-shutdown-enabled>true</graceful-shutdown-enabled>
      <graceful-shutdown-timeout>12345</graceful-shutdown-timeout>
      <security-invalidation-interval>5423</security-invalidation-interval>
      <authentication-cache-size>333</authentication-cache-size>
      <authorization-cache-size>444</authorization-cache-size>
      <journal-lock-acquisition-timeout>123</journal-lock-acquisition-timeout>
      <wild-card-routing-enabled>true</wild-card-routing-enabled>
      <management-address>Giraffe</management-address>
      <management-notification-address>Whatever</management-notification-address>
      <cluster-user>Frog</cluster-user>
      <cluster-password>32a10275cf4ab4e9</cluster-password>
      <password-codec>org.apache.activemq.artemis.utils.DefaultSensitiveStringCodec</password-codec>
      <mask-password>true</mask-password>
      <log-delegate-factory-class-name>com.foo</log-delegate-factory-class-name>
      <jmx-management-enabled>false</jmx-management-enabled>
      <jmx-domain>gro.qtenroh</jmx-domain>
      <message-counter-enabled>true</message-counter-enabled>
      <message-counter-sample-period>123456</message-counter-sample-period>
      <message-counter-max-day-history>5</message-counter-max-day-history>
      <connection-ttl-override>12345</connection-ttl-override>
      <async-connection-execution-enabled>false</async-connection-execution-enabled>
      <transaction-timeout>98765</transaction-timeout>
      <transaction-timeout-scan-period>56789</transaction-timeout-scan-period>
      <message-expiry-scan-period>10111213</message-expiry-scan-period>
      <message-expiry-thread-priority>8</message-expiry-thread-priority>
      <address-queue-scan-period>25000</address-queue-scan-period>
      <id-cache-size>127</id-cache-size>
      <journal-datasync>false</journal-datasync>
      <persist-id-cache>true</persist-id-cache>
      <populate-validated-user>true</populate-validated-user>
      <reject-empty-validated-user>false</reject-empty-validated-user>
      <connection-ttl-check-interval>98765</connection-ttl-check-interval>
      <configuration-file-refresh-period>1234567</configuration-file-refresh-period>
      <temporary-queue-namespace>TEMP</temporary-queue-namespace>
      <global-max-size>1234567</global-max-size>
      <max-disk-usage>37</max-disk-usage>
      <disk-scan-period>123</disk-scan-period>
      <critical-analyzer-policy>HALT</critical-analyzer-policy>
      <critical-analyzer-check-period>333</critical-analyzer-check-period>
      <critical-analyzer-timeout>777</critical-analyzer-timeout>
      <critical-analyzer>false</critical-analyzer>
      <remoting-incoming-interceptors>
         <class-name>org.apache.activemq.artemis.tests.unit.core.config.impl.TestInterceptor1</class-name>
         <class-name>org.apache.activemq.artemis.tests.unit.core.config.impl.TestInterceptor2</class-name>
      </remoting-incoming-interceptors>
      <remoting-outgoing-interceptors>
         <class-name>org.apache.activemq.artemis.tests.unit.core.config.impl.TestInterceptor1</class-name>
         <class-name>org.apache.activemq.artemis.tests.unit.core.config.impl.TestInterceptor2</class-name>
      </remoting-outgoing-interceptors>
      <persist-delivery-count-before-delivery>true</persist-delivery-count-before-delivery>
      <connectors>
         <connector name="connector1">tcp://localhost1:5678?localAddress=mylocal;localPort=99</connector>
         <connector name="connector2">vm://5</connector>
      </connectors>

      <xi:include href="${xincludePath}/ConfigurationTest-xinclude-config-acceptors.xml"/>

      <broadcast-groups>
         <broadcast-group name="bg1">
            <local-bind-port>10999</local-bind-port>
            <group-address>192.168.0.120</group-address>
            <group-port>11999</group-port>
            <broadcast-period>12345</broadcast-period>
            <connector-ref>connector1</connector-ref>
         </broadcast-group>
         <broadcast-group name="bg2">
            <local-bind-port>12999</local-bind-port>
            <group-address>192.168.0.121</group-address>
            <group-port>13999</group-port>
            <broadcast-period>23456</broadcast-period>
            <connector-ref>connector2</connector-ref>
         </broadcast-group>
      </broadcast-groups>
      <discovery-groups>
         <discovery-group name="dg1">
            <local-bind-address>172.16.8.10</local-bind-address>
            <group-address>192.168.0.120</group-address>
            <group-port>11999</group-port>
            <refresh-timeout>12345</refresh-timeout>
         </discovery-group>
         <discovery-group name="dg2">
            <local-bind-address>172.16.8.11</local-bind-address>
            <group-address>192.168.0.121</group-address>
            <group-port>12999</group-port>
            <refresh-timeout>23456</refresh-timeout>
         </discovery-group>
      </discovery-groups>
      <diverts>
         <divert name="divert1">
            <routing-name>routing-name1</routing-name>
            <address>address1</address>
            <forwarding-address>forwarding-address1</forwarding-address>
            <filter string="speed > 88"/>
            <transformer-class-name>org.foo.Transformer</transformer-class-name>
            <exclusive>true</exclusive>
         </divert>
         <divert name="divert2">
            <routing-name>routing-name2</routing-name>
            <address>address2</address>
            <forwarding-address>forwarding-address2</forwarding-address>
            <filter string="speed &lt; 88"/>
            <transformer-class-name>org.foo.Transformer2</transformer-class-name>
            <exclusive>false</exclusive>
         </divert>
         <divert name="divert3">
            <routing-name>routing-name2</routing-name>
            <address>address2</address>
            <forwarding-address>forwarding-address2</forwarding-address>
            <filter string="speed &lt; 88"/>
            <transformer>
               <class-name>org.foo.DivertTransformer3</class-name>
               <property key="divertTransformerKey1" value="divertTransformerValue1"/>
               <property key="divertTransformerKey2" value="divertTransformerValue2"/>
            </transformer>
            <exclusive>false</exclusive>
         </divert>
      </diverts>
      <amqp-use-core-subscription-naming>true</amqp-use-core-subscription-naming>
      <queues>
         <queue name="queue1">
            <address>address1</address>
            <filter string="color='red'"/>
            <durable>false</durable>
         </queue>
         <queue name="queue2">
            <address>address2</address>
            <filter string="color='blue'"/>
            <durable>false</durable>
         </queue>
      </queues>
      <bridges>
         <bridge name="bridge1">
            <queue-name>queue1</queue-name>
            <forwarding-address>bridge-forwarding-address1</forwarding-address>
            <filter string="sku > 1"/>
            <transformer-class-name>org.foo.BridgeTransformer</transformer-class-name>
            <min-large-message-size>4M</min-large-message-size>
            <check-period>31</check-period>
            <connection-ttl>370</connection-ttl>
            <retry-interval>3</retry-interval>
            <retry-interval-multiplier>0.2</retry-interval-multiplier>
            <max-retry-interval>10002</max-retry-interval>
            <reconnect-attempts>2</reconnect-attempts>
            <failover-on-server-shutdown>false</failover-on-server-shutdown>
            <use-duplicate-detection>true</use-duplicate-detection>
            <confirmation-window-size>1G</confirmation-window-size>
            <producer-window-size>444</producer-window-size>
            <routing-type>STRIP</routing-type>
            <static-connectors>
               <connector-ref>connector1</connector-ref>
            </static-connectors>
         </bridge>
         <bridge name="bridge2">
            <queue-name>queue2</queue-name>
            <forwarding-address>bridge-forwarding-address2</forwarding-address>
            <producer-window-size>555k</producer-window-size>
            <discovery-group-ref discovery-group-name="dg1"/>
         </bridge>
         <bridge name="bridge3">
            <queue-name>queue3</queue-name>
            <forwarding-address>bridge-forwarding-address2</forwarding-address>
            <transformer>
               <class-name>org.foo.BridgeTransformer3</class-name>
               <property key="bridgeTransformerKey1" value="bridgeTransformerValue1"/>
               <property key="bridgeTransformerKey2" value="bridgeTransformerValue2"/>
            </transformer>
            <producer-window-size>555k</producer-window-size>
            <discovery-group-ref discovery-group-name="dg1"/>
         </bridge>
         <bridge name="bridge4">
            <queue-name>queue3</queue-name>
            <forwarding-address>bridge-forwarding-address2</forwarding-address>
            <confirmation-window-size>-1</confirmation-window-size>
            <producer-window-size>-1</producer-window-size>
            <static-connectors>
               <connector-ref>connector1</connector-ref>
            </static-connectors>
         </bridge>
      </bridges>

      <metrics>
         <jvm-memory>false</jvm-memory>
         <jvm-gc>true</jvm-gc>
         <jvm-threads>true</jvm-threads>
         <netty-pool>true</netty-pool>
         <plugin class-name="org.apache.activemq.artemis.core.server.metrics.plugins.SimpleMetricsPlugin">
            <property key="foo" value="x"/>
            <property key="bar" value="y"/>
            <property key="baz" value="z"/>
         </plugin>
      </metrics>

      <ha-policy>
         <!--only one of the following-->
         <!--on server shutdown scale down to another live server-->
         <live-only>
            <scale-down>
               <!--a grouping of servers that can be scaled down to-->
               <group-name>boo!</group-name>
               <!--either a discovery group-->
               <discovery-group-ref discovery-group-name="dg1"/>
            </scale-down>
         </live-only>

      </ha-policy>
      <cluster-connections>
         <cluster-connection name="cluster-connection1">
            <address>queues1</address>
            <connector-ref>connector1</connector-ref>
            <check-period>331</check-period>
            <connection-ttl>3370</connection-ttl>
            <min-large-message-size>321</min-large-message-size>
            <call-timeout>123</call-timeout>
            <retry-interval>3</retry-interval>
            <retry-interval-multiplier>0.25</retry-interval-multiplier>
            <max-retry-interval>10000</max-retry-interval>
            <reconnect-attempts>72</reconnect-attempts>
            <use-duplicate-detection>true</use-duplicate-detection>
            <message-load-balancing>ON_DEMAND</message-load-balancing>
            <max-hops>1</max-hops>
            <producer-window-size>222</producer-window-size>
            <call-failover-timeout>123</call-failover-timeout>
            <static-connectors>
               <connector-ref>connector1</connector-ref>
               <connector-ref>connector2</connector-ref>
            </static-connectors>
         </cluster-connection>
         <cluster-connection name="cluster-connection2">
            <address>queues2</address>
            <connector-ref>connector2</connector-ref>
            <call-timeout>456</call-timeout>
            <retry-interval>4</retry-interval>
            <use-duplicate-detection>false</use-duplicate-detection>
            <message-load-balancing>STRICT</message-load-balancing>
            <max-hops>2</max-hops>
            <producer-window-size>333</producer-window-size>
            <call-failover-timeout>456</call-failover-timeout>
            <discovery-group-ref discovery-group-name="dg1"/>
         </cluster-connection>
      </cluster-connections>
      <grouping-handler name="gh1">
         <type>LOCAL</type>
         <address>jms</address>
      </grouping-handler>
      <paging-directory>pagingdir</paging-directory>
      <bindings-directory>somedir</bindings-directory>
      <create-bindings-dir>false</create-bindings-dir>
      <page-max-concurrent-io>17</page-max-concurrent-io>
      <read-whole-page>true</read-whole-page>
      <journal-directory>somedir2</journal-directory>
      <journal-retention-directory unit="DAYS" period="365" storage-limit="10G">history</journal-retention-directory>
      <create-journal-dir>false</create-journal-dir>
      <journal-type>NIO</journal-type>
      <journal-buffer-timeout>1000</journal-buffer-timeout>
      <journal-buffer-size>10000</journal-buffer-size>
      <journal-sync-transactional>false</journal-sync-transactional>
      <journal-sync-non-transactional>true</journal-sync-non-transactional>
      <log-journal-write-rate>true</log-journal-write-rate>
      <journal-file-size>12345678</journal-file-size>
      <journal-min-files>100</journal-min-files>
      <journal-compact-percentage>33</journal-compact-percentage>
      <journal-compact-min-files>123</journal-compact-min-files>
      <journal-max-io>56546</journal-max-io>
      <journal-file-open-timeout>9876</journal-file-open-timeout>
      <journal-device-block-size>777</journal-device-block-size>
      <server-dump-interval>5000</server-dump-interval>
      <memory-warning-threshold>95</memory-warning-threshold>
      <memory-measure-interval>54321</memory-measure-interval>
      <large-messages-directory>largemessagesdir</large-messages-directory>
      <network-check-list>127.0.0.1</network-check-list>
      <network-check-NIC>some-nick</network-check-NIC>
      <network-check-period>123</network-check-period>
      <network-check-timeout>321</network-check-timeout>
      <network-check-URL-list>www.apache.org</network-check-URL-list>
      <network-check-ping-command>ping-four</network-check-ping-command>
      <network-check-ping6-command>ping-six</network-check-ping6-command>

      <xi:include href="${xincludePath}/ConfigurationTest-xinclude-config-security-settings.xml"/>

      <xi:include href="${xincludePath}/ConfigurationTest-xinclude-config-address-settings.xml"/>

      <resource-limit-settings>
         <resource-limit-setting match="myUser">
            <max-connections>104</max-connections>
            <max-queues>13</max-queues>
         </resource-limit-setting>
      </resource-limit-settings>
      <connector-services>
         <connector-service>
            <factory-class>org.foo</factory-class>
         </connector-service>
      </connector-services>

      <xi:include href="${xincludePath}/ConfigurationTest-xinclude-config-addresses.xml"/>
   </core>
</configuration>
