arquillian.xml

552 lines | 34.406 kB Blame History Raw Download
<!--
~ Copyright 2016 Red Hat, Inc. and/or its affiliates
~ and other contributors as indicated by the @author tags.
~
~ Licensed 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.
-->

<arquillian xmlns="http://jboss.org/schema/arquillian"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://jboss.org/schema/arquillian
        http://jboss.org/schema/arquillian/arquillian_1_0.xsd">

    <defaultProtocol type="Servlet 3.0" />
	
    <extension qualifier="webdriver">
        <property name="browser">${browser}</property>
        <property name="downloadBinaries">${webdriverDownloadBinaries}</property>
        <property name="githubUsername">${github.username}</property>
        <property name="githubToken">${github.secretToken}</property>

        <!-- htmlunit -->
        <property name="htmlUnit.version">${htmlUnitBrowserVersion}</property>
        <property name="htmlUnitWebClientOptions">cssEnabled=false;historyPageCacheLimit=1</property>

        <!-- firefox -->
        <property name="firefoxBinary">${firefox_binary}</property> <!-- we need to use 'firefoxBinary' instead of 'firefox_binary' due to some weird conflict with Appium -->
        <property name="firefoxLogLevel">OFF</property>
        <property name="firefoxLegacy">${firefoxLegacyDriver}</property>

        <!-- chrome -->
        <property name="chromeBinary">${chromeBinary}</property>
        <property name="chromeArguments">${chromeArguments}</property>

        <!-- internet explorer -->
        <property name="ieDriverArch">${ieDriverArch}</property>

        <!-- appium -->
        <property name="appium.platformName">${appium.platformName}</property>
        <property name="appium.deviceName">${appium.deviceName}</property>
        <property name="appium.browserName">${appium.browserName}</property>
        <property name="appium.avd">${appium.avd}</property>
        <property name="appium.automationName">${appium.automationName}</property>
        <property name="appium.noReset">${appium.noReset}</property>
        <property name="appium.fullReset">${appium.fullReset}</property>
        <property name="appium.nativeWebScreenshot">true</property> <!-- there's some issue when taking screenshot using the chromedriver therefore we need to take screenshots of the whole screen (using adb) instead -->
    </extension>

    <extension qualifier="drone">
       <property name="instantiationTimeoutInSeconds">${droneInstantiationTimeoutInSeconds}</property>
    </extension>
    
    <extension qualifier="graphene">
        <property name="waitGuiInterval">5</property>
        <property name="waitAjaxInterval">5</property>
        <property name="waitModelInterval">10</property>
        <property name="waitGuardInterval">5</property>
    </extension>

    <extension qualifier="webdriver-javascriptbrowser">
        <property name="browser">${js.browser}</property>
        <property name="downloadBinaries">${webdriverDownloadBinaries}</property>
        <property name="githubUsername">${github.username}</property>
        <property name="githubToken">${github.secretToken}</property>
        <property name="ieDriverArch">${ieDriverArch}</property>

        <!-- htmlunit -->
        <property name="htmlUnit.version">${htmlUnitBrowserVersion}</property>
        <property name="htmlUnitWebClientOptions">cssEnabled=false;historyPageCacheLimit=1</property>

        <!-- firefox -->
        <property name="firefoxBinary">${firefox_binary}</property>
        <property name="firefoxLogLevel">OFF</property>
        <property name="firefoxLegacy">${firefoxLegacyDriver}</property>

        <!-- chrome -->
        <property name="chromeBinary">${chromeBinary}</property>
        <property name="chromeArguments">${js.chromeArguments}</property>
    </extension>

    <extension qualifier="graphene-secondbrowser">
        <property name="browser">${browser}</property>
        <property name="firefoxBinary">${firefox_binary}</property>
    </extension>

    <engine>
        <!-- This allows manual inspection of deployed archives. -->
        <property name="deploymentExportPath">target/deployments</property>
    </engine>

    <container qualifier="auth-server-undertow" mode="manual" default="true">
        <configuration>
            <property name="enabled">${auth.server.undertow} &amp;&amp; ! ${auth.server.crossdc}</property>
            <property name="bindAddress">0.0.0.0</property>
            <property name="adapterImplClass">org.keycloak.testsuite.arquillian.undertow.KeycloakOnUndertow</property>
            <property name="bindHttpPort">${auth.server.http.port}</property>
            <property name="remoteMode">${undertow.remote}</property>
        </configuration>
    </container>

    <container qualifier="auth-server-${auth.server}" mode="manual" default="true">
        <configuration>
            <property name="enabled">${auth.server.jboss} &amp;&amp; ! ${auth.server.crossdc}</property>
            <property name="adapterImplClass">${auth.server.adapter.impl.class}</property>
            <property name="jbossHome">${auth.server.home}</property>
            <property name="${auth.server.config.property.name}">${auth.server.config.property.value}</property>
            <!-- This is required for domain mode -->
            <property name="allowConnectingToRunningServer">true</property>
            <property name="jbossArguments">
                -Djboss.socket.binding.port-offset=${auth.server.port.offset}
                -Djboss.bind.address=0.0.0.0 
                -Dauth.server.http.port=${auth.server.http.port}
                -Dauth.server.https.port=${auth.server.https.port}
                -Dkeycloak.password.blacklists.path=${keycloak.password.blacklists.path}
                ${adapter.test.props}
                ${auth.server.profile}
                ${auth.server.feature}
                ${kie.maven.settings}
                -Dauth.server.truststore=${auth.server.truststore}
                -Dauth.server.truststore.password=${auth.server.truststore.password}
            </property>
            <property name="javaVmArguments">
                ${auth.server.jboss.jvm.debug.args}
                ${auth.server.memory.settings}
                -Djava.net.preferIPv4Stack=true
            </property>
            <property name="managementPort">${auth.server.management.port}</property>
            <property name="startupTimeoutInSeconds">${auth.server.jboss.startup.timeout}</property>
            <property name="javaHome">${auth.server.java.home}</property>
        </configuration>
    </container>

    <group qualifier="auth-server-${auth.server}-cluster">
        <container qualifier="auth-server-${auth.server}-backend1" mode="manual" >
            <configuration>
                <property name="enabled">${auth.server.jboss.cluster}</property>
                <property name="adapterImplClass">org.jboss.as.arquillian.container.managed.ManagedDeployableContainer</property>
                <property name="jbossHome">${auth.server.backend1.home}</property>
                <property name="serverConfig">standalone-ha.xml</property>
                <property name="jbossArguments">
                    -Djboss.socket.binding.port-offset=${auth.server.backend1.port.offset}
                    -Djboss.node.name=node1
                    ${adapter.test.props}
                    ${auth.server.profile}
                    -Dauth.server.truststore=${auth.server.truststore}
                    -Dauth.server.truststore.password=${auth.server.truststore.password}
                </property>
                <property name="javaVmArguments">
                    ${auth.server.memory.settings}
                    -Djava.net.preferIPv4Stack=true
                </property>
                <property name="outputToConsole">${backends.console.output}</property>
                <property name="managementPort">${auth.server.backend1.management.port}</property>
                <property name="startupTimeoutInSeconds">${auth.server.jboss.startup.timeout}</property>
                <property name="bindHttpPortOffset">${auth.server.backend1.port.offset}</property>
            </configuration>
        </container>
        <container qualifier="auth-server-${auth.server}-backend2" mode="manual" >
            <configuration>
                <property name="enabled">${auth.server.jboss.cluster}</property>
                <property name="adapterImplClass">org.jboss.as.arquillian.container.managed.ManagedDeployableContainer</property>
                <property name="jbossHome">${auth.server.backend2.home}</property>
                <property name="serverConfig">standalone-ha.xml</property>
                <property name="jbossArguments">
                    -Djboss.socket.binding.port-offset=${auth.server.backend2.port.offset} 
                    -Djboss.node.name=node2
                    ${adapter.test.props}
                    ${auth.server.profile}
                    -Dauth.server.truststore=${auth.server.truststore}
                    -Dauth.server.truststore.password=${auth.server.truststore.password}
                </property>
                <property name="javaVmArguments">
                    ${auth.server.memory.settings}
                    -Djava.net.preferIPv4Stack=true
                </property>
                <property name="outputToConsole">${backends.console.output}</property>
                <property name="managementPort">${auth.server.backend2.management.port}</property>
                <property name="startupTimeoutInSeconds">${auth.server.jboss.startup.timeout}</property>
                <property name="bindHttpPortOffset">${auth.server.backend2.port.offset}</property>
            </configuration>
        </container>
    </group>

    <!-- Clustering with embedded undertow -->
    <group qualifier="auth-server-undertow-cluster">
        <container qualifier="auth-server-undertow-backend1" mode="manual" >
            <configuration>
                <property name="enabled">${auth.server.undertow.cluster}</property>
                <property name="adapterImplClass">org.keycloak.testsuite.arquillian.undertow.KeycloakOnUndertow</property>
                <property name="bindAddress">localhost</property>
                <property name="bindHttpPort">${auth.server.http.port}</property>
                <property name="bindHttpPortOffset">1</property>
                <property name="route">node1</property>
                <property name="remoteMode">${undertow.remote}</property>
                <property name="keycloakConfigPropertyOverrides">{
                    "keycloak.connectionsInfinispan.jgroupsUdpMcastAddr": "234.56.78.8",
                    "keycloak.connectionsInfinispan.nodeName": "node1",
                    "keycloak.connectionsInfinispan.clustered": "${keycloak.connectionsInfinispan.clustered:true}"
                    }
                </property>
            </configuration>
        </container>
        <container qualifier="auth-server-undertow-backend2" mode="manual" >
            <configuration>
                <property name="enabled">${auth.server.undertow.cluster}</property>
                <property name="adapterImplClass">org.keycloak.testsuite.arquillian.undertow.KeycloakOnUndertow</property>
                <property name="bindAddress">localhost</property>
                <property name="bindHttpPort">${auth.server.http.port}</property>
                <property name="bindHttpPortOffset">2</property>
                <property name="route">node2</property>
                <property name="remoteMode">${undertow.remote}</property>
                <property name="keycloakConfigPropertyOverrides">{
                    "keycloak.connectionsInfinispan.jgroupsUdpMcastAddr": "234.56.78.8",
                    "keycloak.connectionsInfinispan.nodeName": "node2",
                    "keycloak.connectionsInfinispan.clustered": "${keycloak.connectionsInfinispan.clustered:true}"
                    }
                </property>
            </configuration>
        </container>

        <container qualifier="auth-server-balancer-undertow" mode="suite" >
            <configuration>
                <property name="enabled">${auth.server.cluster}</property>
                <property name="adapterImplClass">org.keycloak.testsuite.arquillian.undertow.lb.SimpleUndertowLoadBalancerContainer</property>
                <property name="bindAddress">localhost</property>
                <property name="bindHttpPort">${auth.server.http.port}</property>
                <property name="nodes">node1=http://localhost:8181,node2=http://localhost:8182</property>
            </configuration>
        </container>
    </group>


    <!-- Cross DC. Node numbering is [centre #].[node #] -->
    <group qualifier="auth-server-jboss-cross-dc">
        <container qualifier="cache-server-cross-dc-1" mode="manual" >
            <configuration>
                <property name="enabled">${auth.server.crossdc} &amp;&amp; ! ${cache.server.lifecycle.skip}</property>
                <property name="adapterImplClass">org.jboss.as.arquillian.container.managed.ManagedDeployableContainer</property>
                <property name="jbossHome">${cache.server.home}</property>
                <property name="serverConfig">clustered-1.xml</property>
                <property name="jbossArguments">
                    -Djboss.socket.binding.port-offset=${cache.server.1.port.offset}
                    -Djboss.default.multicast.address=234.56.78.99
                    -Djboss.node.name=cache-server-dc-1
                    ${adapter.test.props}
                    ${auth.server.profile}
                    -Dauth.server.truststore=${auth.server.truststore}
                    -Dauth.server.truststore.password=${auth.server.truststore.password}
                </property>
                <property name="javaVmArguments">
                    ${auth.server.memory.settings}
                    -Djava.net.preferIPv4Stack=true
                    ${cache.server.crossdc1.jvm.debug.args}
                </property>
                <property name="outputToConsole">${cache.server.console.output}</property>
                <property name="managementPort">${cache.server.management.port}</property>
                <property name="startupTimeoutInSeconds">${auth.server.jboss.startup.timeout}</property>
            </configuration>
        </container>

        <container qualifier="cache-server-cross-dc-2" mode="manual" >
            <configuration>
                <property name="enabled">${auth.server.crossdc} &amp;&amp; ! ${cache.server.lifecycle.skip}</property>
                <property name="adapterImplClass">org.jboss.as.arquillian.container.managed.ManagedDeployableContainer</property>
                <property name="jbossHome">${cache.server.home}</property>
                <property name="setupCleanServerBaseDir">true</property>
                <property name="cleanServerBaseDir">${cache.server.home}/standalone-dc-2</property>
                <property name="serverConfig">clustered-2.xml</property>
                <property name="jbossArguments">
                    -Djboss.socket.binding.port-offset=${cache.server.2.port.offset}
                    -Djboss.default.multicast.address=234.56.78.100
                    -Djboss.node.name=cache-server-dc-2
                    ${adapter.test.props}
                    ${auth.server.profile}
                    -Dauth.server.truststore=${auth.server.truststore}
                    -Dauth.server.truststore.password=${auth.server.truststore.password}
                </property>
                <property name="javaVmArguments">
                    ${auth.server.memory.settings}
                    -Djava.net.preferIPv4Stack=true
                    ${cache.server.crossdc2.jvm.debug.args}
                </property>
                <property name="outputToConsole">${cache.server.console.output}</property>
                <property name="managementPort">${cache.server.2.management.port}</property>
                <property name="startupTimeoutInSeconds">${auth.server.jboss.startup.timeout}</property>
            </configuration>
        </container>

        <container qualifier="auth-server-balancer-cross-dc" mode="suite" >
            <configuration>
                <property name="enabled">${auth.server.crossdc}</property>
                <property name="adapterImplClass">org.keycloak.testsuite.arquillian.undertow.lb.SimpleUndertowLoadBalancerContainer</property>
                <property name="bindAddress">localhost</property>
                <property name="bindHttpPort">${auth.server.http.port}</property>
                <property name="nodes">auth-server-${node.name}-cross-dc-0_1=http://localhost:8101,auth-server-${node.name}-cross-dc-0_2-manual=http://localhost:8102,auth-server-${node.name}-cross-dc-1_1=http://localhost:8111,auth-server-${node.name}-cross-dc-1_2-manual=http://localhost:8112</property>
            </configuration>
        </container>

        <container qualifier="auth-server-undertow-cross-dc-0_1" mode="manual" >
            <configuration>
                <property name="enabled">${auth.server.undertow.crossdc}</property>
                <property name="adapterImplClass">org.keycloak.testsuite.arquillian.undertow.KeycloakOnUndertow</property>
                <property name="bindAddress">localhost</property>
                <property name="bindHttpPort">${auth.server.http.port}</property>
                <property name="bindHttpPortOffset">-79</property>
                <property name="remoteMode">${undertow.remote}</property>
                <property name="dataCenter">0</property>
                <property name="keycloakConfigPropertyOverrides">{
                    "keycloak.connectionsInfinispan.jgroupsUdpMcastAddr": "234.56.78.1",
                    "keycloak.connectionsInfinispan.siteName": "dc-0",
                    "keycloak.connectionsInfinispan.nodeName": "auth-server-undertow-cross-dc-0_1",
                    "keycloak.connectionsInfinispan.clustered": "${keycloak.connectionsInfinispan.clustered:true}",
                    "keycloak.connectionsInfinispan.remoteStoreServer": "${keycloak.connectionsInfinispan.remoteStoreServer:localhost}",
                    "keycloak.connectionsInfinispan.remoteStorePort": "${keycloak.connectionsInfinispan.remoteStorePort:11222}",
                    "keycloak.connectionsInfinispan.remoteStoreEnabled": "${keycloak.connectionsInfinispan.remoteStoreEnabled:true}",
                    "keycloak.connectionsInfinispan.hotrodProtocolVersion": "${keycloak.connectionsInfinispan.hotrodProtocolVersion}",
                    "keycloak.connectionsJpa.url": "${keycloak.connectionsJpa.url.crossdc:jdbc:h2:mem:test-dc-shared}",
                    "keycloak.connectionsJpa.driver": "${keycloak.connectionsJpa.driver.crossdc:org.h2.Driver}",
                    "keycloak.connectionsJpa.driverDialect": "${keycloak.connectionsJpa.driverDialect.crossdc:}"
                }</property>
            </configuration>
        </container>
        <container qualifier="auth-server-undertow-cross-dc-0_2-manual" mode="manual" >
            <configuration>
                <property name="enabled">${auth.server.undertow.crossdc}</property>
                <property name="adapterImplClass">org.keycloak.testsuite.arquillian.undertow.KeycloakOnUndertow</property>
                <property name="bindAddress">localhost</property>
                <property name="bindHttpPort">${auth.server.http.port}</property>
                <property name="bindHttpPortOffset">-78</property>
                <property name="remoteMode">${undertow.remote}</property>
                <property name="dataCenter">0</property>
                <property name="keycloakConfigPropertyOverrides">{
                    "keycloak.connectionsInfinispan.jgroupsUdpMcastAddr": "234.56.78.1",
                    "keycloak.connectionsInfinispan.siteName": "dc-0",
                    "keycloak.connectionsInfinispan.nodeName": "auth-server-undertow-cross-dc-0_2-manual",
                    "keycloak.connectionsInfinispan.clustered": "${keycloak.connectionsInfinispan.clustered:true}",
                    "keycloak.connectionsInfinispan.remoteStoreServer": "${keycloak.connectionsInfinispan.remoteStoreServer:localhost}",
                    "keycloak.connectionsInfinispan.remoteStorePort": "${keycloak.connectionsInfinispan.remoteStorePort:11222}",
                    "keycloak.connectionsInfinispan.remoteStoreEnabled": "${keycloak.connectionsInfinispan.remoteStoreEnabled:true}",
                    "keycloak.connectionsInfinispan.hotrodProtocolVersion": "${keycloak.connectionsInfinispan.hotrodProtocolVersion}",
                    "keycloak.connectionsJpa.url": "${keycloak.connectionsJpa.url.crossdc:jdbc:h2:mem:test-dc-shared}",
                    "keycloak.connectionsJpa.driver": "${keycloak.connectionsJpa.driver.crossdc:org.h2.Driver}",
                    "keycloak.connectionsJpa.driverDialect": "${keycloak.connectionsJpa.driverDialect.crossdc:}"
                }</property>
            </configuration>
        </container>

        <container qualifier="auth-server-undertow-cross-dc-1_1" mode="manual" >
            <configuration>
                <property name="enabled">${auth.server.undertow.crossdc}</property>
                <property name="adapterImplClass">org.keycloak.testsuite.arquillian.undertow.KeycloakOnUndertow</property>
                <property name="bindAddress">localhost</property>
                <property name="bindHttpPort">${auth.server.http.port}</property>
                <property name="bindHttpPortOffset">-69</property>
                <property name="remoteMode">${undertow.remote}</property>
                <property name="dataCenter">1</property>
                <property name="keycloakConfigPropertyOverrides">{
                    "keycloak.connectionsInfinispan.jgroupsUdpMcastAddr": "234.56.78.2",
                    "keycloak.connectionsInfinispan.siteName": "dc-1",
                    "keycloak.connectionsInfinispan.nodeName": "auth-server-undertow-cross-dc-1_1",
                    "keycloak.connectionsInfinispan.clustered": "${keycloak.connectionsInfinispan.clustered:true}",
                    "keycloak.connectionsInfinispan.remoteStoreServer": "${keycloak.connectionsInfinispan.remoteStoreServer:localhost}",
                    "keycloak.connectionsInfinispan.remoteStorePort": "${keycloak.connectionsInfinispan.remoteStorePort.2:11222}",
                    "keycloak.connectionsInfinispan.remoteStoreEnabled": "${keycloak.connectionsInfinispan.remoteStoreEnabled:true}",
                    "keycloak.connectionsInfinispan.hotrodProtocolVersion": "${keycloak.connectionsInfinispan.hotrodProtocolVersion}",
                    "keycloak.connectionsJpa.url": "${keycloak.connectionsJpa.url.crossdc:jdbc:h2:mem:test-dc-shared}",
                    "keycloak.connectionsJpa.driver": "${keycloak.connectionsJpa.driver.crossdc:org.h2.Driver}",
                    "keycloak.connectionsJpa.driverDialect": "${keycloak.connectionsJpa.driverDialect.crossdc:}"
                }</property>
            </configuration>
        </container>
        <container qualifier="auth-server-undertow-cross-dc-1_2-manual" mode="manual" >
            <configuration>
                <property name="enabled">${auth.server.undertow.crossdc}</property>
                <property name="adapterImplClass">org.keycloak.testsuite.arquillian.undertow.KeycloakOnUndertow</property>
                <property name="bindAddress">localhost</property>
                <property name="bindHttpPort">${auth.server.http.port}</property>
                <property name="bindHttpPortOffset">-68</property>
                <property name="remoteMode">${undertow.remote}</property>
                <property name="dataCenter">1</property>
                <property name="keycloakConfigPropertyOverrides">{
                    "keycloak.connectionsInfinispan.jgroupsUdpMcastAddr": "234.56.78.2",
                    "keycloak.connectionsInfinispan.siteName": "dc-1",
                    "keycloak.connectionsInfinispan.nodeName": "auth-server-undertow-cross-dc-1_2-manual",
                    "keycloak.connectionsInfinispan.clustered": "${keycloak.connectionsInfinispan.clustered:true}",
                    "keycloak.connectionsInfinispan.remoteStoreServer": "${keycloak.connectionsInfinispan.remoteStoreServer:localhost}",
                    "keycloak.connectionsInfinispan.remoteStorePort": "${keycloak.connectionsInfinispan.remoteStorePort.2:11222}",
                    "keycloak.connectionsInfinispan.remoteStoreEnabled": "${keycloak.connectionsInfinispan.remoteStoreEnabled:true}",
                    "keycloak.connectionsInfinispan.hotrodProtocolVersion": "${keycloak.connectionsInfinispan.hotrodProtocolVersion}",
                    "keycloak.connectionsJpa.url": "${keycloak.connectionsJpa.url.crossdc:jdbc:h2:mem:test-dc-shared}",
                    "keycloak.connectionsJpa.driver": "${keycloak.connectionsJpa.driver.crossdc:org.h2.Driver}",
                    "keycloak.connectionsJpa.driverDialect": "${keycloak.connectionsJpa.driverDialect.crossdc:}"
                }</property>
            </configuration>
        </container>
        <container qualifier="auth-server-jboss-cross-dc-0_1" mode="manual" >
            <configuration>
                <property name="enabled">${auth.server.jboss.crossdc}</property>
                <property name="adapterImplClass">${auth.server.adapter.impl.class}</property>
                <property name="jbossHome">${auth.server.crossdc01.home}</property>
                <property name="serverConfig">standalone-ha.xml</property>
                <property name="jbossArguments">
                    -Djboss.socket.binding.port-offset=${auth.server.crossdc01.port.offset}
                    -Djboss.default.multicast.address=234.56.78.1
                    -Dremote.cache.port=12232
                    -Djboss.site.name=dc0
                    -Djboss.node.name=auth-server-${node.name}-cross-dc-0_1
                    -Dauth.server.truststore=${auth.server.truststore}
                    -Dauth.server.truststore.password=${auth.server.truststore.password}
                    -Dkeycloak.connectionsInfinispan.default.remoteStoreSecurityEnabled=${keycloak.connectionsInfinispan.default.remoteStoreSecurityEnabled}
                    -Dkeycloak.connectionsInfinispan.hotrodProtocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion}
                </property>
                <property name="javaVmArguments">
                    ${auth.server.memory.settings}
                    -Djava.net.preferIPv4Stack=true
                    ${auth.server.crossdc01.jvm.debug.args}
                </property>
                <property name="managementPort">${auth.server.crossdc01.management.port}</property>
                <property name="bindHttpPortOffset">-79</property>
                <property name="dataCenter">0</property>
                <property name="startupTimeoutInSeconds">${auth.server.jboss.startup.timeout}</property>
            </configuration>
        </container>
        <container qualifier="auth-server-jboss-cross-dc-0_2-manual" mode="manual" >
            <configuration>
                <property name="enabled">${auth.server.jboss.crossdc}</property>
                <property name="adapterImplClass">${auth.server.adapter.impl.class}</property>
                <property name="jbossHome">${auth.server.crossdc02.home}</property>
                <property name="serverConfig">standalone-ha.xml</property>
                <property name="jbossArguments">
                    -Djboss.socket.binding.port-offset=${auth.server.crossdc02.port.offset}
                    -Djboss.default.multicast.address=234.56.78.1
                    -Dremote.cache.port=12232
                    -Djboss.site.name=dc0
                    -Djboss.node.name=auth-server-${node.name}-cross-dc-0_2-manual
                    -Dauth.server.truststore=${auth.server.truststore}
                    -Dauth.server.truststore.password=${auth.server.truststore.password}
                    -Dkeycloak.connectionsInfinispan.default.remoteStoreSecurityEnabled=${keycloak.connectionsInfinispan.default.remoteStoreSecurityEnabled}
                    -Dkeycloak.connectionsInfinispan.hotrodProtocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion}
                </property>
                <property name="javaVmArguments">
                    ${auth.server.memory.settings}
                    -Djava.net.preferIPv4Stack=true
                    ${auth.server.crossdc02.jvm.debug.args}
                </property>
                <property name="managementPort">${auth.server.crossdc02.management.port}</property>
                <property name="bindHttpPortOffset">-78</property>
                <property name="dataCenter">0</property>
                <property name="startupTimeoutInSeconds">${auth.server.jboss.startup.timeout}</property>
            </configuration>
        </container>

        <container qualifier="auth-server-jboss-cross-dc-1_1" mode="manual" >
            <configuration>
                <property name="enabled">${auth.server.jboss.crossdc}</property>
                <property name="adapterImplClass">${auth.server.adapter.impl.class}</property>
                <property name="jbossHome">${auth.server.crossdc11.home}</property>
                <property name="serverConfig">standalone-ha.xml</property>
                <property name="jbossArguments">
                    -Djboss.socket.binding.port-offset=${auth.server.crossdc11.port.offset}
                    -Djboss.default.multicast.address=234.56.78.2
                    -Dremote.cache.port=13232
                    -Djboss.site.name=dc1
                    -Djboss.node.name=auth-server-${node.name}-cross-dc-1_1
                    -Dauth.server.truststore=${auth.server.truststore}
                    -Dauth.server.truststore.password=${auth.server.truststore.password}
                    -Dkeycloak.connectionsInfinispan.default.remoteStoreSecurityEnabled=${keycloak.connectionsInfinispan.default.remoteStoreSecurityEnabled}
                    -Dkeycloak.connectionsInfinispan.hotrodProtocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion}
                </property>
                <property name="javaVmArguments">
                    ${auth.server.memory.settings}
                    -Djava.net.preferIPv4Stack=true
                    ${auth.server.crossdc11.jvm.debug.args}
                </property>
                <property name="managementPort">${auth.server.crossdc11.management.port}</property>
                <property name="bindHttpPortOffset">-69</property>
                <property name="dataCenter">1</property>
                <property name="startupTimeoutInSeconds">${auth.server.jboss.startup.timeout}</property>
            </configuration>
        </container>
        <container qualifier="auth-server-jboss-cross-dc-1_2-manual" mode="manual" >
            <configuration>
                <property name="enabled">${auth.server.jboss.crossdc}</property>
                <property name="adapterImplClass">${auth.server.adapter.impl.class}</property>
                <property name="jbossHome">${auth.server.crossdc12.home}</property>
                <property name="serverConfig">standalone-ha.xml</property>
                <property name="jbossArguments">
                    -Djboss.socket.binding.port-offset=${auth.server.crossdc12.port.offset}
                    -Djboss.default.multicast.address=234.56.78.2
                    -Dremote.cache.port=13232
                    -Djboss.site.name=dc1
                    -Djboss.node.name=auth-server-${node.name}-cross-dc-1_2-manual
                    -Dauth.server.truststore=${auth.server.truststore}
                    -Dauth.server.truststore.password=${auth.server.truststore.password}
                    -Dkeycloak.connectionsInfinispan.default.remoteStoreSecurityEnabled=${keycloak.connectionsInfinispan.default.remoteStoreSecurityEnabled}
                    -Dkeycloak.connectionsInfinispan.hotrodProtocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion}
                </property>
                <property name="javaVmArguments">
                    ${auth.server.memory.settings}
                    -Djava.net.preferIPv4Stack=true
                    ${auth.server.crossdc12.jvm.debug.args}
                </property>
                <property name="managementPort">${auth.server.crossdc12.management.port}</property>
                <property name="bindHttpPortOffset">-68</property>
                <property name="dataCenter">1</property>
                <property name="startupTimeoutInSeconds">${auth.server.jboss.startup.timeout}</property>
            </configuration>
        </container>
    </group>
    
    <container qualifier="auth-server-remote" mode="suite" >
        <configuration>
            <property name="enabled">${auth.server.remote}</property>
            <property name="adapterImplClass">org.jboss.as.arquillian.container.remote.RemoteDeployableContainer</property>

            <property name="managementAddress">${auth.server.host}</property>
            <property name="managementPort">${auth.server.management.port}</property>
            <property name="username">admin</property>
            <property name="password">admin</property>
        </configuration>
    </container>
    
    <!-- PREVIOUS VERSION OF KEYCLOAK FOR MIGRATION TESTS -->
    
    <container qualifier="auth-server-jboss-migration" mode="manual" >
        <configuration>
            <property name="enabled">${auth.server.jboss.migration}</property>
            <property name="adapterImplClass">org.jboss.as.arquillian.container.managed.ManagedDeployableContainer</property>
            <property name="jbossHome">${keycloak.migration.home}</property>
            <property name="javaVmArguments">
                -Djboss.socket.binding.port-offset=${auth.server.port.offset}
                ${migration.import.props.previous}
                ${auth.server.memory.settings}
                -Dauth.server.truststore=${auth.server.truststore}
                -Dauth.server.truststore.password=${auth.server.truststore.password}
            </property>
            <property name="managementPort">${auth.server.management.port}</property>
            <property name="startupTimeoutInSeconds">${auth.server.jboss.startup.timeout}</property>
        </configuration>
    </container>
            
</arquillian>