<!--
  ~ JBoss, Home of Professional Open Source.
  ~ Copyright 2010, Red Hat, Inc., and individual contributors
  ~ as indicated by the @author tags. See the copyright.txt file in the
  ~ distribution for a full listing of individual contributors.
  ~
  ~ This is free software; you can redistribute it and/or modify it
  ~ under the terms of the GNU Lesser General Public License as
  ~ published by the Free Software Foundation; either version 2.1 of
  ~ the License, or (at your option) any later version.
  ~
  ~ This software is distributed in the hope that it will be useful,
  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  ~ Lesser General Public License for more details.
  ~
  ~ You should have received a copy of the GNU Lesser General Public
  ~ License along with this software; if not, write to the Free
  ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  -->

<domain xmlns="urn:jboss:domain:1.0">

    <extensions>
        <extension module="org.jboss.as.clustering.infinispan"/>
        <extension module="org.jboss.as.clustering.jgroups"/>
        <extension module="org.jboss.as.connector"/>
        <extension module="org.jboss.as.ee"/>
        <extension module="org.jboss.as.ejb3"/>
        <extension module="org.jboss.as.jacorb"/>
        <extension module="org.jboss.as.jaxrs"/>
        <extension module="org.jboss.as.jmx"/>
        <extension module="org.jboss.as.jpa"/>
        <extension module="org.jboss.as.logging"/>
        <extension module="org.jboss.as.messaging"/>
        <extension module="org.jboss.as.modcluster"/>
        <extension module="org.jboss.as.naming"/>
        <extension module="org.jboss.as.osgi"/>
        <extension module="org.jboss.as.remoting"/>
        <extension module="org.jboss.as.sar"/>
        <extension module="org.jboss.as.security"/>
        <extension module="org.jboss.as.threads"/>
        <extension module="org.jboss.as.transactions"/>
        <extension module="org.jboss.as.web"/>
        <extension module="org.jboss.as.webservices" />
        <extension module="org.jboss.as.weld"/>
    </extensions>

    <system-properties>
        <!-- IPv4 is not required, but setting this helps avoid unintended use of IPv6 -->
        <property name="java.net.preferIPv4Stack" value="true"/>
    </system-properties>

    <profiles>

        <profile name="default">
            <subsystem xmlns="urn:jboss:domain:logging:1.1">
                <console-handler name="CONSOLE">
                    <level name="INFO"/>
                    <formatter>
                        <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
                    </formatter>
                </console-handler>

                <periodic-rotating-file-handler name="FILE">
                    <level name="INFO"/>
                    <formatter>
                        <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
                    </formatter>
                    <file relative-to="jboss.server.log.dir" path="server.log"/>
                    <suffix value=".yyyy-MM-dd"/>
                </periodic-rotating-file-handler>

                <logger category="com.arjuna">
                    <level name="WARN"/>
                </logger>
                <logger category="org.apache.tomcat.util.modeler">
                    <level name="WARN"/>
                </logger>
                <logger category="sun.rmi">
                    <level name="WARN"/>
                </logger>
                <logger category="jacorb">
                    <level name="WARN"/>
                </logger>
                <!-- set jacorb.config to ERROR to avoid the "jacorb.properties not found" messages during startup -->
                <logger category="jacorb.config">
                    <level name="ERROR"/>
                </logger>

                <root-logger>
                    <level name="INFO"/>
                    <handlers>
                        <handler name="CONSOLE"/>
                        <handler name="FILE"/>
                    </handlers>
                </root-logger>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:datasources:1.0">
                <datasources>
                    <datasource jndi-name="java:jboss/datasources/ExampleDS" enabled="true" use-java-context="true" pool-name="H2DS">
                        <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
                        <driver>h2</driver>
                        <pool></pool>
                        <security>
                            <user-name>sa</user-name>
                            <password>sa</password>
                        </security>
                    </datasource>
                    <drivers>
                        <driver name="h2" module="com.h2database.h2">
                            <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                        </driver>
                    </drivers>
                </datasources>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:ee:1.0"/>
            <subsystem xmlns="urn:jboss:domain:ejb3:1.1" >
                <timer-service>
                    <thread-pool core-threads="1" max-threads="4" />
                    <data-store path="timer-service-data" relative-to="jboss.server.data.dir" />
                </timer-service>

                <!-- EJB3 pools -->
                <pools>
                    <bean-instance-pools>
                        <strict-max-pool name="slsb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5"
                                         instance-acquisition-timeout-unit="MINUTES"/>

                        <strict-max-pool name="mdb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5"
                                         instance-acquisition-timeout-unit="MINUTES"/>
                    </bean-instance-pools>
                </pools>

                <!-- Default MDB configurations -->
                <mdb>
                    <resource-adapter-ref resource-adapter-name="hornetq-ra"/>
                    <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
                </mdb>

                <!-- Session bean configurations -->
                <session-bean>
                    <stateless>
                        <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>
                    </stateless>
                </session-bean>

            </subsystem>
            <subsystem xmlns="urn:jboss:domain:infinispan:1.0" default-cache-container="hibernate">
                <cache-container name="hibernate" default-cache="local-query">
                    <local-cache name="entity">
                        <eviction strategy="LRU" max-entries="10000"/>
                        <expiration max-idle="100000"/>
                    </local-cache>
                    <local-cache name="local-query">
                        <eviction strategy="LRU" max-entries="10000"/>
                        <expiration max-idle="100000"/>
                    </local-cache>
                    <local-cache name="timestamps">
                        <eviction strategy="NONE"/>
                    </local-cache>
                </cache-container>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:jacorb:1.0">
                <orb name="JBoss" print-version="off" giop-minor-version="2">
                    <connection max-managed-buf-size="24" outbuf-cache-timeout="-1"/>
                    <naming root-context="JBoss/Naming/root" export-corbaloc="on"/>
                </orb>
                <poa monitoring="off" queue-wait="off">
                    <request-processors pool-size="2" max-threads="8"/>
                </poa>
                <interop sun="on" chunk-custom-rmi-valuetypes="on" strict-check-on-tc-creation="off"/>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>
            <subsystem xmlns="urn:jboss:domain:jca:1.0">
                <archive-validation enabled="true"/>
                <bean-validation enabled="true"/>
                <default-workmanager>
                    <short-running-threads blocking="true">
                        <core-threads count="10" per-cpu="20"/>
                        <queue-length count="10" per-cpu="20"/>
                        <max-threads count="10" per-cpu="20"/>
                        <keepalive-time time="10" unit="seconds"/>
                    </short-running-threads>
                    <long-running-threads blocking="true">
                        <core-threads count="10" per-cpu="20"/>
                        <queue-length count="10" per-cpu="20"/>
                        <max-threads count="10" per-cpu="20"/>
                        <keepalive-time time="10" unit="seconds"/>
                    </long-running-threads>
                </default-workmanager>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:jmx:1.0">
                 <jmx-connector registry-binding="jmx-connector-registry" server-binding="jmx-connector-server" />
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:jpa:1.0">
                 <jpa default-datasource=""/>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:messaging:1.0">
                <!-- Default journal file size is 10Mb, reduced here to 100k for faster first boot -->
                <journal-file-size>102400</journal-file-size>
                <journal-min-files>2</journal-min-files>
                <journal-type>NIO</journal-type>
                <!-- disable messaging persistence -->
                <persistence-enabled>false</persistence-enabled>

                <connectors>
                    <netty-connector name="netty" socket-binding="messaging"/>
                    <netty-connector name="netty-throughput" socket-binding="messaging-throughput">
                        <param key="batch-delay" value="50"/>
                    </netty-connector>
                    <in-vm-connector name="in-vm" server-id="0"/>
                </connectors>

                <acceptors>
                    <netty-acceptor name="netty" socket-binding="messaging"/>
                    <netty-acceptor name="netty-throughput" socket-binding="messaging-throughput">
                        <param key="batch-delay" value="50"/>
                        <param key="direct-deliver" value="false"/>
                    </netty-acceptor>
                    <in-vm-acceptor name="in-vm" server-id="0"/>
                </acceptors>

                <security-settings>
                    <security-setting match="#">
                        <permission type="createNonDurableQueue" roles="guest"/>
                        <permission type="deleteNonDurableQueue" roles="guest"/>
                        <permission type="consume" roles="guest"/>
                        <permission type="send" roles="guest"/>
                    </security-setting>
                </security-settings>

                <address-settings>
                    <!--default for catch all-->
                    <address-setting match="#">
                        <dead-letter-address>jms.queue.DLQ</dead-letter-address>
                        <expiry-address>jms.queue.ExpiryQueue</expiry-address>
                        <redelivery-delay>0</redelivery-delay>
                        <max-size-bytes>10485760</max-size-bytes>
                        <message-counter-history-day-limit>10</message-counter-history-day-limit>
                        <address-full-policy>BLOCK</address-full-policy>
                    </address-setting>
                </address-settings>

                <!--JMS Stuff-->
                <jms-connection-factories>
                    <connection-factory name="InVmConnectionFactory">
                        <connectors>
                            <connector-ref connector-name="in-vm"/>
                        </connectors>
                        <entries>
                            <entry name="java:/ConnectionFactory"/>
                        </entries>
                    </connection-factory>
                    <connection-factory name="RemoteConnectionFactory">
                        <connectors>
                            <connector-ref connector-name="netty"/>
                        </connectors>
                        <entries>
                            <entry name="RemoteConnectionFactory"/>
                        </entries>
                    </connection-factory>
                    <pooled-connection-factory name="hornetq-ra">
                        <transaction mode="xa"/>
                        <connectors>
                            <connector-ref connector-name="in-vm"/>
                        </connectors>
                        <entries>
                            <entry name="java:/JmsXA"/>
                        </entries>
                    </pooled-connection-factory>
                </jms-connection-factories>

                <jms-destinations>
                    <jms-queue name="testQueue">
                        <entry name="queue/test"/>
                    </jms-queue>
                    <jms-topic name="testTopic">
                        <entry name="topic/test"/>
                    </jms-topic>
                </jms-destinations>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:naming:1.0"/>
            <subsystem xmlns="urn:jboss:domain:osgi:1.0" activation="lazy">
                <configuration pid="org.apache.felix.webconsole.internal.servlet.OsgiManager">
                    <property name="manager.root">jboss-osgi</property>
                </configuration>
                <properties>
                    <!--
                        A comma seperated list of module identifiers. Each system module
                        is added as a dependency to the OSGi framework module. The packages
                        from these system modules can be made visible as framework system packages.
                        http://www.osgi.org/javadoc/r4v42/org/osgi/framework/Constants.html#FRAMEWORK_SYSTEMPACKAGES_EXTRA
                    -->
                    <property name="org.jboss.osgi.system.modules">
                        org.apache.commons.logging,
                        org.apache.log4j,
                        org.jboss.as.osgi,
                        org.slf4j,
                    </property>
                    <!--
                        Framework environment property identifying extra packages which the system bundle
                        must export from the current execution environment
                    -->
                    <property name="org.osgi.framework.system.packages.extra">
                        org.apache.commons.logging;version=1.1.1,
                        org.apache.log4j;version=1.2,
                        org.jboss.as.osgi.service;version=7.0,
                        org.jboss.osgi.deployment.interceptor;version=1.0,
                        org.jboss.osgi.spi.capability;version=1.0,
                        org.jboss.osgi.spi.util;version=1.0,
                        org.jboss.osgi.testing;version=1.0,
                        org.jboss.osgi.vfs;version=1.0,
                        org.slf4j;version=1.5.10,
                    </property>
                    <!-- Specifies the beginning start level of the framework -->
                    <property name="org.osgi.framework.startlevel.beginning">1</property>
                </properties>
                <modules>
                    <!-- modules registered with the OSGi layer on startup -->
                    <module identifier="javaee.api"/>
                    <module identifier="org.jboss.logging"/>
                    <!-- bundles installed on startup -->
                    <module identifier="org.apache.aries.util"/>
                    <module identifier="org.jboss.osgi.webconsole"/>
                    <module identifier="org.osgi.compendium"/>
                    <!-- bundles started in startlevel 1 -->
                    <module identifier="org.apache.felix.log" startlevel="1"/>
                    <module identifier="org.jboss.osgi.logging" startlevel="1"/>
                    <module identifier="org.apache.felix.configadmin" startlevel="1"/>
                    <module identifier="org.jboss.as.osgi.configadmin" startlevel="1"/>
                    <!-- bundles started in startlevel 2 -->
                    <module identifier="org.apache.aries.jmx" startlevel="2"/>
                    <module identifier="org.apache.felix.eventadmin" startlevel="2"/>
                    <module identifier="org.apache.felix.metatype" startlevel="2"/>
                    <module identifier="org.apache.felix.webconsole" startlevel="2"/>
                    <module identifier="org.jboss.osgi.jmx" startlevel="2"/>
                    <module identifier="org.jboss.osgi.http" startlevel="2"/>
                    <!-- bundles started in startlevel 3 -->
                    <module identifier="org.jboss.osgi.blueprint" startlevel="3"/>
                    <module identifier="org.jboss.osgi.webapp" startlevel="3"/>
                    <module identifier="org.jboss.osgi.xerces" startlevel="3"/>
                </modules>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:remoting:1.0"/>
            <subsystem xmlns="urn:jboss:domain:resource-adapters:1.0"/>
            <subsystem xmlns="urn:jboss:domain:sar:1.0"/>
            <subsystem xmlns="urn:jboss:domain:security:1.0">
                <security-domains>
                    <security-domain name="other">
                        <authentication>
                            <login-module code="UsersRoles" flag="required"/>
                        </authentication>
                    </security-domain>
                </security-domains>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:threads:1.0"/>
            <subsystem xmlns="urn:jboss:domain:transactions:1.0">
                <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/>
                <core-environment>
                    <process-id>
                        <uuid />
                    </process-id>
                </core-environment>
                <coordinator-environment default-timeout="300"/>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:web:1.0" default-virtual-server="default-host">
                <connector name="http" scheme="http" protocol="HTTP/1.1" socket-binding="http"/>
                <virtual-server name="default-host">
                    <alias name="localhost" />
                    <alias name="example.com" />
                </virtual-server>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:webservices:1.0">
                <modify-wsdl-address>true</modify-wsdl-address>
                <wsdl-host>localhost</wsdl-host>
                <!--
                <wsdl-port>8080</wsdl-port>
                <wsdl-secure-port>8443</wsdl-secure-port>
                -->
                <endpoint-config xmlns:ws="urn:jboss:jbossws-jaxws-config:4.0">
                    <ws:config-name>Standard-Endpoint-Config</ws:config-name>
                </endpoint-config>
                <endpoint-config xmlns:ws="urn:jboss:jbossws-jaxws-config:4.0">
                    <ws:config-name>Recording-Endpoint-Config</ws:config-name>
                    <ws:pre-handler-chains>
                        <handler-chain xmlns="http://java.sun.com/xml/ns/javaee">
                            <protocol-bindings>##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM</protocol-bindings>
                            <handler>
                                <handler-name>RecordingHandler</handler-name>
                                <handler-class>org.jboss.ws.common.invocation.RecordingServerHandler</handler-class>
                            </handler>
                        </handler-chain>
                    </ws:pre-handler-chains>
                </endpoint-config>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:weld:1.0"/>
        </profile>

        <profile name="ha">
            <subsystem xmlns="urn:jboss:domain:logging:1.1">
                <console-handler name="CONSOLE">
                    <level name="INFO"/>
                    <formatter>
                        <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
                    </formatter>
                </console-handler>

                <periodic-rotating-file-handler name="FILE">
                    <level name="INFO"/>
                    <formatter>
                        <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
                    </formatter>
                    <file relative-to="jboss.server.log.dir" path="server.log"/>
                    <suffix value=".yyyy-MM-dd"/>
                </periodic-rotating-file-handler>

                <logger category="com.arjuna">
                    <level name="WARN"/>
                </logger>
                <logger category="org.apache.tomcat.util.modeler">
                    <level name="WARN"/>
                </logger>
                <logger category="sun.rmi">
                    <level name="WARN"/>
                </logger>
                <logger category="jacorb">
                    <level name="WARN"/>
                </logger>
                <!-- set jacorb.config to ERROR to avoid the "jacorb.properties not found" messages during startup -->
                <logger category="jacorb.config">
                    <level name="ERROR"/>
                </logger>

                <root-logger>
                    <level name="INFO"/>
                    <handlers>
                        <handler name="CONSOLE"/>
                        <handler name="FILE"/>
                    </handlers>
                </root-logger>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:datasources:1.0">
                <datasources>
                    <datasource jndi-name="java:jboss/datasources/ExampleDS" enabled="true" use-java-context="true" pool-name="H2DS">
                        <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
                        <driver>h2</driver>
                        <pool></pool>
                        <security>
                            <user-name>sa</user-name>
                            <password>sa</password>
                        </security>
                    </datasource>
                    <drivers>
                        <driver name="h2" module="com.h2database.h2">
                            <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                        </driver>
                    </drivers>
                </datasources>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:ee:1.0"/>
            <subsystem xmlns="urn:jboss:domain:ejb3:1.1" >
                <timer-service>
                    <thread-pool core-threads="1" />
                    <data-store path="timer-service-data" relative-to="jboss.server.data.dir" />
                </timer-service>

                <!-- EJB3 pools -->
                <pools>
                    <bean-instance-pools>
                        <strict-max-pool name="slsb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5"
                                         instance-acquisition-timeout-unit="MINUTES"/>

                        <strict-max-pool name="mdb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5"
                                         instance-acquisition-timeout-unit="MINUTES"/>
                    </bean-instance-pools>
                </pools>

                <!-- Default MDB configurations -->
                <mdb>
                    <resource-adapter-ref resource-adapter-name="hornetq-ra"/>
                    <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
                </mdb>

                <!-- Session bean configurations -->
                <session-bean>
                    <stateless>
                        <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>
                    </stateless>
                </session-bean>

            </subsystem>
            <subsystem xmlns="urn:jboss:domain:infinispan:1.0" default-cache-container="cluster">
                <cache-container name="cluster" default-cache="default">
                    <alias>ha-partition</alias>
                    <replicated-cache name="default" mode="SYNC" batching="true">
                        <locking isolation="REPEATABLE_READ"/>
                    </replicated-cache>
                </cache-container>
                <cache-container name="web" default-cache="repl">
                    <alias>standard-session-cache</alias>
                    <replicated-cache name="repl" mode="ASYNC" batching="true">
                        <locking isolation="REPEATABLE_READ"/>
                        <file-store/>
                    </replicated-cache>
                    <distributed-cache name="dist" mode="ASYNC" batching="true">
                        <locking isolation="REPEATABLE_READ"/>
                        <file-store/>
                    </distributed-cache>
                </cache-container>
                <cache-container name="sfsb" default-cache="repl">
                    <alias>sfsb-cache</alias>
                    <alias>jboss.cache:service=EJB3SFSBClusteredCache</alias>
                    <replicated-cache name="repl" mode="ASYNC" batching="true">
                        <locking isolation="REPEATABLE_READ"/>
                        <eviction strategy="LRU" max-entries="10000"/>
                        <file-store/>
                    </replicated-cache>
                </cache-container>
                <cache-container name="hibernate" default-cache="local-query">
                    <invalidation-cache name="entity" mode="SYNC">
                        <eviction strategy="LRU" max-entries="10000"/>
                        <expiration max-idle="100000"/>
                    </invalidation-cache>
                    <local-cache name="local-query">
                        <eviction strategy="LRU" max-entries="10000"/>
                        <expiration max-idle="100000"/>
                    </local-cache>
                    <replicated-cache name="timestamps" mode="ASYNC">
                        <eviction strategy="NONE"/>
                    </replicated-cache>
                </cache-container>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:jacorb:1.0">
                <orb name="JBoss" print-version="off" giop-minor-version="2">
                    <connection max-managed-buf-size="24" outbuf-cache-timeout="-1"/>
                    <naming root-context="JBoss/Naming/root" export-corbaloc="on"/>
                </orb>
                <poa monitoring="off" queue-wait="off">
                    <request-processors pool-size="2" max-threads="8"/>
                </poa>
                <interop sun="on" chunk-custom-rmi-valuetypes="on" strict-check-on-tc-creation="off"/>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>
            <subsystem xmlns="urn:jboss:domain:jca:1.0">
                <archive-validation enabled="true"/>
                <bean-validation enabled="true"/>
                <default-workmanager>
                    <short-running-threads blocking="true">
                        <core-threads count="10" per-cpu="20"/>
                        <queue-length count="10" per-cpu="20"/>
                        <max-threads count="10" per-cpu="20"/>
                        <keepalive-time time="10" unit="seconds"/>
                    </short-running-threads>
                    <long-running-threads blocking="true">
                        <core-threads count="10" per-cpu="20"/>
                        <queue-length count="10" per-cpu="20"/>
                        <max-threads count="10" per-cpu="20"/>
                        <keepalive-time time="10" unit="seconds"/>
                    </long-running-threads>
                </default-workmanager>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:jgroups:1.0" default-stack="udp">
                <stack name="udp">
                    <transport type="UDP" socket-binding="jgroups-udp" diagnostics-socket-binding="jgroups-diagnostics"/>
                    <protocol type="PING"/>
                    <protocol type="MERGE2"/>
                    <protocol type="FD_SOCK" socket-binding="jgroups-udp-fd"/>
                    <protocol type="FD"/>
                    <protocol type="VERIFY_SUSPECT"/>
                    <protocol type="BARRIER"/>
                    <protocol type="pbcast.NAKACK"/>
                    <protocol type="UNICAST"/>
                    <protocol type="pbcast.STABLE"/>
                    <protocol type="VIEW_SYNC"/>
                    <protocol type="pbcast.GMS"/>
                    <protocol type="UFC"/>
                    <protocol type="MFC"/>
                    <protocol type="FRAG2"/>
                    <protocol type="pbcast.STREAMING_STATE_TRANSFER"/>
                    <protocol type="pbcast.FLUSH"/>
                </stack>
                <stack name="tcp">
                    <transport type="TCP" socket-binding="jgroups-tcp" diagnostics-socket-binding="jgroups-diagnostics"/>
                    <protocol type="MPING" socket-binding="jgroups-mping"/>
                    <protocol type="MERGE2"/>
                    <protocol type="FD_SOCK" socket-binding="jgroups-tcp-fd"/>
                    <protocol type="FD"/>
                    <protocol type="VERIFY_SUSPECT"/>
                    <protocol type="BARRIER"/>
                    <protocol type="pbcast.NAKACK"/>
                    <protocol type="UNICAST"/>
                    <protocol type="pbcast.STABLE"/>
                    <protocol type="VIEW_SYNC"/>
                    <protocol type="pbcast.GMS"/>
                    <protocol type="UFC"/>
                    <protocol type="MFC"/>
                    <protocol type="FRAG2"/>
                    <protocol type="pbcast.STREAMING_STATE_TRANSFER"/>
                    <protocol type="pbcast.FLUSH"/>
                </stack>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:jmx:1.0">
                 <jmx-connector registry-binding="jmx-connector-registry" server-binding="jmx-connector-server" />
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:jpa:1.0">
                 <jpa default-datasource=""/>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:messaging:1.0">
                <!-- Default journal file size is 10Mb, reduced here to 100k for faster first boot -->
                <journal-file-size>102400</journal-file-size>
                <journal-min-files>2</journal-min-files>
                <journal-type>NIO</journal-type>
                <!-- disable messaging persistence -->
                <persistence-enabled>false</persistence-enabled>

                <connectors>
                    <netty-connector name="netty" socket-binding="messaging"/>
                    <netty-connector name="netty-throughput" socket-binding="messaging-throughput">
                        <param key="batch-delay" value="50"/>
                    </netty-connector>
                    <in-vm-connector name="in-vm" server-id="0"/>
                </connectors>

                <acceptors>
                    <netty-acceptor name="netty" socket-binding="messaging"/>
                    <netty-acceptor name="netty-throughput" socket-binding="messaging-throughput">
                        <param key="batch-delay" value="50"/>
                        <param key="direct-deliver" value="false"/>
                    </netty-acceptor>
                    <in-vm-acceptor name="in-vm" server-id="0"/>
                </acceptors>

                <security-settings>
                    <security-setting match="#">
                        <permission type="createNonDurableQueue" roles="guest"/>
                        <permission type="deleteNonDurableQueue" roles="guest"/>
                        <permission type="consume" roles="guest"/>
                        <permission type="send" roles="guest"/>
                    </security-setting>
                </security-settings>

                <address-settings>
                    <!--default for catch all-->
                    <address-setting match="#">
                        <dead-letter-address>jms.queue.DLQ</dead-letter-address>
                        <expiry-address>jms.queue.ExpiryQueue</expiry-address>
                        <redelivery-delay>0</redelivery-delay>
                        <max-size-bytes>10485760</max-size-bytes>
                        <message-counter-history-day-limit>10</message-counter-history-day-limit>
                        <address-full-policy>BLOCK</address-full-policy>
                    </address-setting>
                </address-settings>

                <!--JMS Stuff-->
                <jms-connection-factories>
                    <connection-factory name="InVmConnectionFactory">
                        <connectors>
                            <connector-ref connector-name="in-vm"/>
                        </connectors>
                        <entries>
                            <entry name="java:/ConnectionFactory"/>
                        </entries>
                    </connection-factory>
                    <connection-factory name="RemoteConnectionFactory">
                        <connectors>
                            <connector-ref connector-name="netty"/>
                        </connectors>
                        <entries>
                            <entry name="RemoteConnectionFactory"/>
                        </entries>
                    </connection-factory>
                    <pooled-connection-factory name="hornetq-ra">
                        <transaction mode="xa"/>
                        <connectors>
                            <connector-ref connector-name="in-vm"/>
                        </connectors>
                        <entries>
                            <entry name="java:/JmsXA"/>
                        </entries>
                    </pooled-connection-factory>
                </jms-connection-factories>

                <jms-destinations>
                    <jms-queue name="testQueue">
                        <entry name="queue/test"/>
                    </jms-queue>
                    <jms-topic name="testTopic">
                        <entry name="topic/test"/>
                    </jms-topic>
                </jms-destinations>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:modcluster:1.0">
                <mod-cluster-config advertise-socket="modcluster"/>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:naming:1.0"/>
            <subsystem xmlns="urn:jboss:domain:osgi:1.0" activation="lazy">
                <configuration pid="org.apache.felix.webconsole.internal.servlet.OsgiManager">
                    <property name="manager.root">jboss-osgi</property>
                </configuration>
                <properties>
                    <!--
                        A comma seperated list of module identifiers. Each system module
                        is added as a dependency to the OSGi framework module. The packages
                        from these system modules can be made visible as framework system packages.
                        http://www.osgi.org/javadoc/r4v42/org/osgi/framework/Constants.html#FRAMEWORK_SYSTEMPACKAGES_EXTRA
                    -->
                    <property name="org.jboss.osgi.system.modules">
                        org.apache.commons.logging,
                        org.apache.log4j,
                        org.jboss.as.osgi,
                        org.slf4j,
                    </property>
                    <!--
                        Framework environment property identifying extra packages which the system bundle
                        must export from the current execution environment
                    -->
                    <property name="org.osgi.framework.system.packages.extra">
                        org.apache.commons.logging;version=1.1.1,
                        org.apache.log4j;version=1.2,
                        org.jboss.as.osgi.service;version=7.0,
                        org.jboss.osgi.deployment.interceptor;version=1.0,
                        org.jboss.osgi.spi.capability;version=1.0,
                        org.jboss.osgi.spi.util;version=1.0,
                        org.jboss.osgi.testing;version=1.0,
                        org.jboss.osgi.vfs;version=1.0,
                        org.slf4j;version=1.5.10,
                    </property>
                    <!-- Specifies the beginning start level of the framework -->
                    <property name="org.osgi.framework.startlevel.beginning">1</property>
                </properties>
                <modules>
                    <!-- modules registered with the OSGi layer on startup -->
                    <module identifier="javaee.api"/>
                    <module identifier="org.jboss.logging"/>
                    <!-- bundles installed on startup -->
                    <module identifier="org.apache.aries.util"/>
                    <module identifier="org.jboss.osgi.webconsole"/>
                    <module identifier="org.osgi.compendium"/>
                    <!-- bundles started in startlevel 1 -->
                    <module identifier="org.apache.felix.log" startlevel="1"/>
                    <module identifier="org.jboss.osgi.logging" startlevel="1"/>
                    <module identifier="org.apache.felix.configadmin" startlevel="1"/>
                    <module identifier="org.jboss.as.osgi.configadmin" startlevel="1"/>
                    <!-- bundles started in startlevel 2 -->
                    <module identifier="org.apache.aries.jmx" startlevel="2"/>
                    <module identifier="org.apache.felix.eventadmin" startlevel="2"/>
                    <module identifier="org.apache.felix.metatype" startlevel="2"/>
                    <module identifier="org.apache.felix.webconsole" startlevel="2"/>
                    <module identifier="org.jboss.osgi.jmx" startlevel="2"/>
                    <module identifier="org.jboss.osgi.http" startlevel="2"/>
                    <!-- bundles started in startlevel 3 -->
                    <module identifier="org.jboss.osgi.blueprint" startlevel="3"/>
                    <module identifier="org.jboss.osgi.webapp" startlevel="3"/>
                    <module identifier="org.jboss.osgi.xerces" startlevel="3"/>
                </modules>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:remoting:1.0"/>
            <subsystem xmlns="urn:jboss:domain:resource-adapters:1.0"/>
            <subsystem xmlns="urn:jboss:domain:sar:1.0"/>
            <subsystem xmlns="urn:jboss:domain:security:1.0">
                <security-domains>
                    <security-domain name="other">
                        <authentication>
                            <login-module code="UsersRoles" flag="required"/>
                        </authentication>
                    </security-domain>
                </security-domains>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:threads:1.0"/>
            <subsystem xmlns="urn:jboss:domain:transactions:1.0">
                <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/>
                <core-environment>
                    <process-id>
                        <uuid />
                    </process-id>
                </core-environment>
                <coordinator-environment default-timeout="300"/>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:web:1.0" default-virtual-server="default-host">
                <connector name="http" scheme="http" protocol="HTTP/1.1" socket-binding="http"/>
                <virtual-server name="default-host">
                    <alias name="localhost" />
                    <alias name="example.com" />
                </virtual-server>
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:webservices:1.0">
                <modify-wsdl-address>true</modify-wsdl-address>
                <wsdl-host>localhost</wsdl-host>
                <!--
                <wsdl-port>8080</wsdl-port>
                <wsdl-secure-port>8443</wsdl-secure-port>
                -->
            </subsystem>
            <subsystem xmlns="urn:jboss:domain:weld:1.0"/>
        </profile>

    </profiles>

    <!--
         Named interfaces that can be referenced elsewhere in the configuration. The configuration
         for how to associate these logical names with an actual network interface can either
         be specified here or can be declared on a per-host basis in the equivalent element in host.xml.

         These default configurations require the binding specification to be done in host.xml.
    -->
    <interfaces>
        <interface name="management"/>
        <interface name="public"/>
    </interfaces>

    <socket-binding-groups>
        <socket-binding-group name="standard-sockets" default-interface="public">
            <socket-binding name="http" port="8080"/>
            <socket-binding name="https" port="8443"/>
            <socket-binding name="jacorb" port="3528"/>
            <socket-binding name="jacorb-ssl" port="3529"/>
            <socket-binding name="jmx-connector-registry" port="1090"/>
            <socket-binding name="jmx-connector-server" port="1091"/>
            <socket-binding name="jndi" port="1099"/>
            <socket-binding name="messaging" port="5445" />
            <socket-binding name="messaging-throughput" port="5455"/>
            <socket-binding name="osgi-http" port="8090"/>
            <socket-binding name="remoting" port="4447"/>
            <socket-binding name="txn-recovery-environment" port="4712"/>
            <socket-binding name="txn-status-manager" port="4713"/>
        </socket-binding-group>
        <socket-binding-group name="ha-sockets" default-interface="public">
            <socket-binding name="http" port="8080"/>
            <socket-binding name="https" port="8443"/>
            <socket-binding name="jacorb" port="3528"/>
            <socket-binding name="jacorb-ssl" port="3529"/>
            <socket-binding name="jgroups-diagnostics" port="0" multicast-address="224.0.75.75" multicast-port="7500"/>
            <socket-binding name="jgroups-mping" port="0" multicast-address="230.0.0.4" multicast-port="45700"/>
            <socket-binding name="jgroups-tcp" port="7600"/>
            <socket-binding name="jgroups-tcp-fd" port="57600"/>
            <socket-binding name="jgroups-udp" port="55200" multicast-address="230.0.0.4" multicast-port="45688"/>
            <socket-binding name="jgroups-udp-fd" port="54200"/>
            <socket-binding name="jmx-connector-registry" port="1090"/>
            <socket-binding name="jmx-connector-server" port="1091"/>
            <socket-binding name="jndi" port="1099"/>
            <socket-binding name="messaging" port="5445" />
            <socket-binding name="messaging-throughput" port="5455"/>
            <socket-binding name="modcluster" port="0"  multicast-address="224.0.1.105" multicast-port="23364"/>
            <socket-binding name="osgi-http" port="8090"/>
            <socket-binding name="remoting" port="4447"/>
            <socket-binding name="txn-recovery-environment" port="4712"/>
            <socket-binding name="txn-status-manager" port="4713"/>
        </socket-binding-group>
    </socket-binding-groups>

    <server-groups>
        <server-group name="main-server-group" profile="default">
            <jvm name="default">
               <heap size="64m" max-size="512m"/>
            </jvm>
            <socket-binding-group ref="standard-sockets"/>
        </server-group>

        <server-group name="other-server-group" profile="ha">
            <jvm name="default">
               <heap size="64m" max-size="512m"/>
            </jvm>
            <socket-binding-group ref="standard-sockets"/>
        </server-group>
    </server-groups>

</domain>
