<?xml version="1.0" encoding="UTF-8"?>
<feature-group-spec name="domain-ec2-ha" xmlns="urn:jboss:galleon:feature-group:1.0">

    <feature-group name="domain-interfaces"/>

    <feature spec="domain.socket-binding-group">
        <param name="socket-binding-group" value="ha-sockets"/>
        <param name="default-interface" value="public" />
        <feature-group name="domain-sockets"/>
        <feature-group name="domain-ha-sockets"/>
        <feature-group name="domain-mail-sockets"/>
        <feature-group name="domain-transactions-sockets"/>
        <feature-group name="domain-server-groups"/>
    </feature>

    <feature spec="profile">
        <param name="profile" value="ha"/>
        <feature-group name="domain-ha-profile">
            <feature spec="subsystem.modcluster">
                <feature spec="subsystem.modcluster.proxy">
                    <param name="proxy" value="default"/>
                    <unset param="advertise-socket"/>
                    <param name="advertise" value="false"/>
                    <param name="proxies" value=""/>
                </feature>
            </feature>
            <exclude feature-id="subsystem.jgroups.stack:stack=tcp"/>
            <exclude feature-id="subsystem.jgroups.stack:stack=udp"/>
            <feature spec="subsystem.jgroups">
                <feature spec="subsystem.jgroups.stack">
                    <param name="stack" value="tcp"/>
                    <feature spec="subsystem.jgroups.stack.transport">
                        <param name="transport" value="TCP"/>
                        <param name="socket-binding" value="jgroups-tcp"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol">
                        <param name="protocol" value="S3_PING"/>
                        <param name="properties" value="{access_key=&quot;${jboss.jgroups.s3_ping.access_key}&quot;,secret_access_key=&quot;${jboss.jgroups.s3_ping.secret_access_key}&quot;,location=&quot;${jboss.jgroups.s3_ping.bucket}&quot;}"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol">
                        <param name="protocol" value="MERGE3"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol.FD_SOCK">
                        <param name="socket-binding" value="jgroups-tcp-fd"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol">
                        <param name="protocol" value="FD_ALL"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol">
                        <param name="protocol" value="VERIFY_SUSPECT"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol">
                        <param name="protocol" value="pbcast.NAKACK2"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol">
                        <param name="protocol" value="UNICAST3"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol">
                        <param name="protocol" value="pbcast.STABLE"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol">
                        <param name="protocol" value="pbcast.GMS"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol">
                        <param name="protocol" value="FRAG3"/>
                    </feature>
                </feature>
                <feature spec="subsystem.jgroups.stack">
                    <param name="stack" value="udp"/>
                    <feature spec="subsystem.jgroups.stack.transport">
                        <param name="transport" value="UDP"/>
                        <param name="socket-binding" value="jgroups-udp"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol">
                        <param name="protocol" value="S3_PING"/>
                        <param name="properties" value="{access_key=&quot;${jboss.jgroups.s3_ping.access_key}&quot;,secret_access_key=&quot;${jboss.jgroups.s3_ping.secret_access_key}&quot;,location=&quot;${jboss.jgroups.s3_ping.bucket}&quot;}"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol">
                        <param name="protocol" value="MERGE3"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol.FD_SOCK">
                        <param name="socket-binding" value="jgroups-udp-fd"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol">
                        <param name="protocol" value="FD_ALL"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol">
                        <param name="protocol" value="VERIFY_SUSPECT"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol">
                        <param name="protocol" value="pbcast.NAKACK2"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol">
                        <param name="protocol" value="UNICAST3"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol">
                        <param name="protocol" value="pbcast.STABLE"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol">
                        <param name="protocol" value="pbcast.GMS"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol">
                        <param name="protocol" value="UFC"/>
                    </feature>
                    <feature spec="subsystem.jgroups.stack.protocol">
                        <param name="protocol" value="FRAG3"/>
                    </feature>
                </feature>
            </feature>
        </feature-group>
    </feature>

    <feature spec="domain.system-property">
        <param name="system-property" value="java.net.preferIPv4Stack"/>
        <param name="value" value="true"/>
    </feature>
    <feature-group name="access-control"/>
    <feature-group name="domain-host-excludes"/>
</feature-group-spec>
