keycloak-aplcache

Changes

testsuite/integration-arquillian/tests/other/adapters/jboss/eap/pom.xml 65(+0 -65)

testsuite/integration-arquillian/tests/other/adapters/jboss/eap/src/test/java/org/keycloak/testsuite/adapter/cluster/EAPSAMLAdapterClusterTest.java 55(+0 -55)

testsuite/integration-arquillian/tests/other/adapters/jboss/eap/src/test/java/org/keycloak/testsuite/adapter/EAPClientInitiatedAccountLinkTest.java 29(+0 -29)

testsuite/integration-arquillian/tests/other/adapters/jboss/eap/src/test/java/org/keycloak/testsuite/adapter/EAPOfflineServletsAdapterTest.java 11(+0 -11)

testsuite/integration-arquillian/tests/other/adapters/jboss/eap/src/test/java/org/keycloak/testsuite/adapter/EAPOIDCAdapterTest.java 13(+0 -13)

testsuite/integration-arquillian/tests/other/adapters/jboss/eap/src/test/java/org/keycloak/testsuite/adapter/EAPOIDCPublicKeyRotationAdapterTest.java 28(+0 -28)

testsuite/integration-arquillian/tests/other/adapters/jboss/eap/src/test/java/org/keycloak/testsuite/adapter/EAPOIDCSessionAdapterTest.java 13(+0 -13)

testsuite/integration-arquillian/tests/other/adapters/jboss/eap/src/test/java/org/keycloak/testsuite/adapter/EAPSAMLAdapterTest.java 12(+0 -12)

testsuite/integration-arquillian/tests/other/adapters/jboss/eap/src/test/java/org/keycloak/testsuite/adapter/EAPSAMLFilterAdapterTest.java 11(+0 -11)

testsuite/integration-arquillian/tests/other/adapters/jboss/eap/src/test/java/org/keycloak/testsuite/adapter/EAPSecuredDeploymentsAdapterTest.java 13(+0 -13)

testsuite/integration-arquillian/tests/other/adapters/jboss/eap/src/test/java/org/keycloak/testsuite/adapter/example/authorization/EAPDefaultAuthzConfigAdapterTest.java 30(+0 -30)

testsuite/integration-arquillian/tests/other/adapters/jboss/eap/src/test/java/org/keycloak/testsuite/adapter/example/authorization/EAPPermissiveModeAdapterTest.java 30(+0 -30)

testsuite/integration-arquillian/tests/other/adapters/jboss/eap/src/test/java/org/keycloak/testsuite/adapter/example/authorization/EAPPhotozExampleAdapterTest.java 30(+0 -30)

testsuite/integration-arquillian/tests/other/adapters/jboss/eap/src/test/java/org/keycloak/testsuite/adapter/example/authorization/EAPServletAuthzAdapterTest.java 31(+0 -31)

testsuite/integration-arquillian/tests/other/adapters/jboss/eap/src/test/java/org/keycloak/testsuite/adapter/example/cors/EAPCorsExampleAdapterTest.java 12(+0 -12)

testsuite/integration-arquillian/tests/other/adapters/jboss/eap/src/test/resources/adapter-test/keycloak-saml/employee-distributable/WEB-INF/web.xml 62(+0 -62)

testsuite/integration-arquillian/tests/other/adapters/jboss/remote/src/test/java/org/keycloak/testsuite/adapter/example/authorization/RemoteDefaultAuthzConfigAdapterTest.java 28(+0 -28)

testsuite/integration-arquillian/tests/other/adapters/jboss/remote/src/test/java/org/keycloak/testsuite/adapter/example/authorization/RemotePhotozExampleAdapterTest.java 28(+0 -28)

testsuite/integration-arquillian/tests/other/adapters/jboss/remote/src/test/java/org/keycloak/testsuite/adapter/example/authorization/RemoteServletAuthzAdapterTest.java 30(+0 -30)

Details

diff --git a/testsuite/integration-arquillian/servers/app-server/jboss/eap/pom.xml b/testsuite/integration-arquillian/servers/app-server/jboss/eap/pom.xml
index 6d49e9d..0ea88de 100644
--- a/testsuite/integration-arquillian/servers/app-server/jboss/eap/pom.xml
+++ b/testsuite/integration-arquillian/servers/app-server/jboss/eap/pom.xml
@@ -26,8 +26,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>integration-arquillian-servers-app-server-eap</artifactId>
-    <packaging>pom</packaging>
-    <name>App Server - JBoss - EAP</name>
+    <packaging>jar</packaging>
+    <name>App Server - EAP</name>
     
     <properties>
         <app.server.jboss>eap</app.server.jboss>
@@ -43,4 +43,15 @@
         <skip.elytron.adapter.installation>false</skip.elytron.adapter.installation>
     </properties>
 
+    <dependencies>
+        <dependency>
+            <groupId>org.keycloak.testsuite</groupId>
+            <artifactId>integration-arquillian-servers-app-server-spi</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.wildfly.arquillian</groupId>
+            <artifactId>wildfly-arquillian-container-managed</artifactId>
+        </dependency>
+    </dependencies>
 </project>
diff --git a/testsuite/integration-arquillian/servers/app-server/jboss/eap/src/main/java/org/keycloak/testsuite/arquillian/eap/container/EAPAppServerProvider.java b/testsuite/integration-arquillian/servers/app-server/jboss/eap/src/main/java/org/keycloak/testsuite/arquillian/eap/container/EAPAppServerProvider.java
new file mode 100644
index 0000000..ee9b9ea
--- /dev/null
+++ b/testsuite/integration-arquillian/servers/app-server/jboss/eap/src/main/java/org/keycloak/testsuite/arquillian/eap/container/EAPAppServerProvider.java
@@ -0,0 +1,160 @@
+/*
+ * Copyright 2018 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.
+ */
+
+package org.keycloak.testsuite.arquillian.eap.container;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.jboss.arquillian.core.spi.Validate;
+import org.jboss.as.arquillian.container.managed.ManagedDeployableContainer;
+import org.jboss.shrinkwrap.descriptor.spi.node.Node;
+import org.keycloak.testsuite.arquillian.container.AppServerContainerSPI;
+
+/**
+ * @author <a href="mailto:vramik@redhat.com">Vlasta Ramik</a>
+ */
+public class EAPAppServerProvider implements AppServerContainerSPI {
+
+    private Node configuration;
+    private static final String containerName = "eap";
+
+    private final String appServerHome;
+    private final String appServerJavaHome;
+    private final String appServerPortOffset;
+    private final String managementProtocol;
+    private final String managementPort;
+    private final String startupTimeoutInSeconds;
+
+    public EAPAppServerProvider() {
+        appServerHome = System.getProperty("app.server.home");
+        appServerJavaHome = System.getProperty("app.server.java.home");
+        appServerPortOffset = System.getProperty("app.server.port.offset");
+        managementProtocol = System.getProperty("app.server.management.protocol");
+        managementPort = System.getProperty("app.server.management.port");
+        startupTimeoutInSeconds = System.getProperty("app.server.startup.timeout");
+
+        Validate.notNullOrEmpty(appServerHome, "app.server.home is not set.");
+        Validate.notNullOrEmpty(appServerJavaHome, "app.server.java.home is not set.");
+        Validate.notNullOrEmpty(appServerPortOffset, "app.server.port.offset is not set.");
+        Validate.notNullOrEmpty(managementProtocol, "app.server.management.protocol is not set.");
+        Validate.notNullOrEmpty(managementPort, "app.server.management.port is not set.");
+        Validate.notNullOrEmpty(startupTimeoutInSeconds, "app.server.startup.timeout is not set.");
+    }
+
+    @Override
+    public String getName() {
+        return containerName;
+    }
+
+    @Override
+    public List<Node> getContainers() {
+        List<Node> containers = new ArrayList<>();
+
+        containers.add(standaloneContainer());
+        containers.add(clusterGroup());
+
+        return containers;
+    }
+
+    private void createChild(String name, String text) {
+        configuration.createChild("property").attribute("name", name).text(text);
+    }
+
+    private Node standaloneContainer() {
+        Node container = new Node("container");
+        container.attribute("mode", "manual");
+        container.attribute("qualifier", AppServerContainerSPI.APP_SERVER + "-" + containerName);
+
+        configuration = container.createChild("configuration");
+        createChild("enabled", "true");
+        createChild("adapterImplClass", ManagedDeployableContainer.class.getName());
+        createChild("jbossHome", appServerHome);
+        createChild("javaHome", appServerJavaHome);
+        createChild("jbossArguments", 
+                "-Djboss.socket.binding.port-offset=" + appServerPortOffset + " " +
+                System.getProperty("adapter.test.props", "")
+        );
+        createChild("javaVmArguments", 
+                System.getProperty("app.server.jboss.jvm.debug.args", "") + " " +
+                System.getProperty("app.server.memory.settings", "") + " " +
+                "-Djava.net.preferIPv4Stack=true"
+        );
+        createChild("managementProtocol", managementProtocol);
+        createChild("managementPort", managementPort);
+        createChild("startupTimeoutInSeconds", startupTimeoutInSeconds);
+
+        return container;
+    }
+
+    private Node clusterGroup() {
+        Node group = new Node("group");
+        group.attribute("qualifier", "app-server-eap-clustered");
+        addHaNodeContainer(group, 1);
+        addHaNodeContainer(group, 2);
+        return group;
+    }
+
+    private void addHaNodeContainer(Node group, int number) {
+        String portOffset = System.getProperty("app.server." + number + ".port.offset");
+        String managementPort = System.getProperty("app.server." + number + ".management.port");
+
+        Validate.notNullOrEmpty(portOffset, "app.server." + number + ".port.offset is not set.");
+        Validate.notNullOrEmpty(managementPort, "app.server." + number + ".management.port is not set.");
+
+        Node container = group.createChild("container");
+        container.attribute("mode", "manual");
+        container.attribute("qualifier", AppServerContainerSPI.APP_SERVER + "-" + containerName + "-ha-node-" + number);
+
+        configuration = container.createChild("configuration");
+        createChild("enabled", "true");
+        createChild("adapterImplClass", ManagedDeployableContainer.class.getName());
+        createChild("jbossHome", appServerHome);
+        createChild("javaHome", appServerJavaHome);
+        //cleanServerBaseDir cannot be used until WFARQ-44 is fixed
+//        createChild("cleanServerBaseDir", appServerHome + "/standalone-ha-node-" + number);
+        createChild("serverConfig", "standalone-ha.xml");
+        createChild("jbossArguments", 
+                "-Djboss.server.base.dir=" + appServerHome + "/standalone-ha-node-" + number + " " +
+                "-Djboss.socket.binding.port-offset=" + portOffset + " " +
+                "-Djboss.node.name=ha-node-" + number + " " +
+                getCrossDCProperties(number, portOffset) +
+                System.getProperty("adapter.test.props", "")
+        );
+        createChild("javaVmArguments", 
+                "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=790" + number + " " +
+                System.getProperty("app.server.memory.settings", "") + " " +
+                "-Djava.net.preferIPv4Stack=true"
+        );
+        createChild("managementProtocol", managementProtocol);
+        createChild("managementPort", managementPort);
+        createChild("startupTimeoutInSeconds", startupTimeoutInSeconds);
+    }
+    
+    private String getCrossDCProperties(int number, String portOffset) {
+        if (System.getProperty("cache.server") == null || System.getProperty("cache.server").equals("undefined")) {
+            return "";
+        }
+        String cacheHotrodPortString = System.getProperty("cache.server." + number + ".port.offset");
+        Validate.notNullOrEmpty(cacheHotrodPortString, "cache.server." + number + ".port.offset is not set.");
+
+        int tcppingPort = 7600 + Integer.parseInt(portOffset);
+        int cacheHotrodPort = 11222 + Integer.parseInt(cacheHotrodPortString);
+        
+        //properties used in servers/app-server/jboss/common/cli/configure-crossdc-config.cli
+        return "-Dtcpping.port=" + tcppingPort + " -Dcache.hotrod.port=" + cacheHotrodPort + " ";
+    }
+}
diff --git a/testsuite/integration-arquillian/servers/app-server/jboss/eap/src/main/resources/META-INF/services/org.keycloak.testsuite.arquillian.container.AppServerContainerSPI b/testsuite/integration-arquillian/servers/app-server/jboss/eap/src/main/resources/META-INF/services/org.keycloak.testsuite.arquillian.container.AppServerContainerSPI
new file mode 100644
index 0000000..641dd44
--- /dev/null
+++ b/testsuite/integration-arquillian/servers/app-server/jboss/eap/src/main/resources/META-INF/services/org.keycloak.testsuite.arquillian.container.AppServerContainerSPI
@@ -0,0 +1 @@
+org.keycloak.testsuite.arquillian.eap.container.EAPAppServerProvider
diff --git a/testsuite/integration-arquillian/tests/base/pom.xml b/testsuite/integration-arquillian/tests/base/pom.xml
index ed6b5bf..a062c5b 100644
--- a/testsuite/integration-arquillian/tests/base/pom.xml
+++ b/testsuite/integration-arquillian/tests/base/pom.xml
@@ -340,134 +340,51 @@
                     <version>${wildfly.core.version}</version>
                 </dependency>
             </dependencies>
-            <!--todo move the build section higher probably-->
             <build>
                 <plugins>
                     <plugin>
                         <groupId>org.commonjava.maven.plugins</groupId>
                         <artifactId>directory-maven-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>keycloak-parent-basedir</id>
-                                <goals>
-                                    <goal>directory-of</goal>
-                                </goals>
-                                <phase>initialize</phase>
-                                <configuration>
-                                    <property>keycloak-parent.basedir</property>
-                                    <project>
-                                        <groupId>org.keycloak</groupId>
-                                        <artifactId>keycloak-parent</artifactId>
-                                    </project>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <artifactId>maven-dependency-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>example-wars</id>
-                                <phase>generate-test-resources</phase>
-                                <goals>
-                                    <goal>copy</goal>
-                                </goals>
-                                <configuration>
-                                    <artifactItems>
-                                        <artifactItem>
-                                            <groupId>org.keycloak.testsuite</groupId>
-                                            <artifactId>hello-world-authz-service</artifactId>
-                                            <version>${project.version}</version>
-                                            <type>war</type>
-                                        </artifactItem>
-                                        <artifactItem>
-                                            <groupId>org.keycloak.testsuite</groupId>
-                                            <artifactId>photoz-html5-client</artifactId>
-                                            <version>${project.version}</version>
-                                            <type>war</type>
-                                        </artifactItem>
-                                        <artifactItem>
-                                            <groupId>org.keycloak.testsuite</groupId>
-                                            <artifactId>photoz-restful-api</artifactId>
-                                            <version>${project.version}</version>
-                                            <type>war</type>
-                                        </artifactItem>
-                                        <artifactItem>
-                                            <groupId>org.keycloak.testsuite</groupId>
-                                            <artifactId>servlet-authz-app</artifactId>
-                                            <version>${project.version}</version>
-                                            <type>war</type>
-                                        </artifactItem>
-                                        <artifactItem>
-                                            <groupId>org.keycloak.testsuite</groupId>
-                                            <artifactId>servlet-policy-enforcer</artifactId>
-                                            <version>${project.version}</version>
-                                            <type>war</type>
-                                        </artifactItem>
-                                        <artifactItem>
-                                            <groupId>org.keycloak.testsuite</groupId>
-                                            <artifactId>integration-arquillian-test-apps-cors-angular-product</artifactId>
-                                            <version>${project.version}</version>
-                                            <type>war</type>
-                                        </artifactItem>
-                                        <artifactItem>
-                                            <groupId>org.keycloak.testsuite</groupId>
-                                            <artifactId>integration-arquillian-test-apps-cors-database-service</artifactId>
-                                            <version>${project.version}</version>
-                                            <type>war</type>
-                                        </artifactItem>
-                                    </artifactItems>
-                                    <outputDirectory>${examples.home}</outputDirectory>
-                                    <overWriteIfNewer>true</overWriteIfNewer>
-                                    <!--<skip>${skip.example.tests}</skip>-->
-                                </configuration>
-                            </execution>
-                            <execution>
-                                <id>test-apps-realms</id>
-                                <phase>generate-test-resources</phase>
-                                <goals>
-                                    <goal>unpack</goal>
-                                </goals>
-                                <configuration>
-                                    <artifactItems>
-                                        <artifactItem>
-                                            <groupId>org.keycloak.testsuite</groupId>
-                                            <artifactId>integration-arquillian-test-apps-dist</artifactId>
-                                            <version>${project.version}</version>
-                                            <type>zip</type>
-                                            <includes>**/*realm.json,**/*authz-service.json,**/testsaml.json,**/*-keycloak.json</includes>
-                                        </artifactItem>
-                                    </artifactItems>
-                                    <outputDirectory>${examples.home}</outputDirectory>
-                                    <overWriteIfNewer>true</overWriteIfNewer>
-                                </configuration>
-                            </execution>
-                        </executions>
                     </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>app-server-eap</id>
+            <activation>
+                <property>
+                    <name>app.server</name>
+                    <value>eap</value>
+                </property>
+            </activation>
+            <properties>
+                <app.server>eap</app.server> <!--in case the profile is called directly-->
+                <app.server.skip.unpack>false</app.server.skip.unpack>
+            </properties>
+            <dependencies>
+                <dependency>
+                    <groupId>org.keycloak.testsuite</groupId>
+                    <artifactId>integration-arquillian-servers-app-server-eap</artifactId>
+                    <version>${project.version}</version>
+                    <scope>runtime</scope>
+                </dependency>
+                <dependency>
+                    <groupId>org.wildfly.arquillian</groupId>
+                    <artifactId>wildfly-arquillian-container-managed</artifactId>
+                </dependency>
+                <!--required by creaper-core-->
+                <dependency>
+                    <groupId>org.wildfly.core</groupId>
+                    <artifactId>wildfly-cli</artifactId>
+                    <scope>test</scope>
+                    <version>${wildfly.core.version}</version>
+                </dependency>
+            </dependencies>
+            <build>
+                <plugins>
                     <plugin>
-                        <artifactId>maven-resources-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>example-realms</id>
-                                <phase>generate-test-resources</phase>
-                                <goals>
-                                    <goal>copy-resources</goal>
-                                </goals>
-                                <configuration>
-                                    <outputDirectory>${examples.home}/example-realms</outputDirectory>
-                                    <overWriteIfNewer>true</overWriteIfNewer>
-                                    <resources>
-                                        <resource>
-                                            <directory>${examples.basedir}</directory>
-                                            <filtering>true</filtering>
-                                            <includes>
-                                                <include>**/*.json</include>
-                                            </includes>
-                                        </resource>
-                                    </resources>
-                                </configuration>
-                            </execution>
-                        </executions>
+                        <groupId>org.commonjava.maven.plugins</groupId>
+                        <artifactId>directory-maven-plugin</artifactId>
                     </plugin>
                 </plugins>
             </build>
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/containers/ContainerConstants.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/containers/ContainerConstants.java
index 3f24322..39bd6d3 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/containers/ContainerConstants.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/containers/ContainerConstants.java
@@ -23,4 +23,7 @@ public interface ContainerConstants {
 
     public static final String APP_SERVER_WILDFLY = APP_SERVER_PREFIX + "wildfly";
     public static final String APP_SERVER_WILDFLY_CLUSTER = APP_SERVER_WILDFLY + "-ha-node-1;" + APP_SERVER_WILDFLY + "-ha-node-2";
+
+    public static final String APP_SERVER_EAP = APP_SERVER_PREFIX + "eap";
+    public static final String APP_SERVER_EAP_CLUSTER = APP_SERVER_EAP + "-ha-node-1;" + APP_SERVER_EAP + "-ha-node-2";
 }
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/ContainerAssume.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/ContainerAssume.java
index f062264..c42baa6 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/ContainerAssume.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/ContainerAssume.java
@@ -1,18 +1,43 @@
 /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
+ * Copyright 2018 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.
  */
+
 package org.keycloak.testsuite.util;
 
+import org.jboss.logging.Logger;
 import org.junit.Assume;
 import org.keycloak.testsuite.arquillian.AuthServerTestEnricher;
 
 public class ContainerAssume {
 
+    private static final Logger log = Logger.getLogger(ContainerAssume.class);
+
     public static void assumeNotAuthServerUndertow() {
         Assume.assumeFalse("Doesn't work on auth-server-undertow", 
                 AuthServerTestEnricher.AUTH_SERVER_CONTAINER.equals(AuthServerTestEnricher.AUTH_SERVER_CONTAINER_DEFAULT));
     }
 
+    public static void assumeNotAppServerUndertow() {
+        log.warn("TODO: Not stable on app-server-undertow. "
+                + "It throws: KC-SERVICES0057: Logout for client '${CLIENT_NAME}' failed\n" 
+                + "org.apache.http.NoHttpResponseException: localhost:8280 failed to respond");
+        Assume.assumeFalse("Not stable on app-server-undertow. "
+                + "It throws: KC-SERVICES0057: Logout for client '${CLIENT_NAME}' failed\n" 
+                + "org.apache.http.NoHttpResponseException: localhost:8280 failed to respond",
+                System.getProperty("app.server", "undertow").equals("undertow"));
+    }
+
 }
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/AbstractAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/AbstractAdapterTest.java
index 63cddce..d337345 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/AbstractAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/AbstractAdapterTest.java
@@ -47,7 +47,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeoutException;
-import org.junit.Assume;
 
 /**
  * <code>@AppServerContainer</code> is needed for stopping recursion in 
@@ -234,16 +233,6 @@ public abstract class AbstractAdapterTest extends AbstractAuthTest {
         }
     }
 
-    protected void assumeNotOnAppServerUndertow() {
-        log.warn("TODO: Not stable on app-server-undertow. "
-                + "It throws: KC-SERVICES0057: Logout for client '${CLIENT_NAME}' failed\n" 
-                + "org.apache.http.NoHttpResponseException: localhost:8280 failed to respond");
-        Assume.assumeFalse("Not stable on app-server-undertow. "
-                + "It throws: KC-SERVICES0057: Logout for client '${CLIENT_NAME}' failed\n" 
-                + "org.apache.http.NoHttpResponseException: localhost:8280 failed to respond",
-                System.getProperty("app.server", "undertow").equals("undertow"));
-    }
-
     public static void addContextXml(Archive archive, String contextPath) {
         try {
             String contextXmlContent = IOUtils.toString(tomcatContext.openStream(), "UTF-8")
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/DefaultAuthzConfigAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/DefaultAuthzConfigAdapterTest.java
index 8184367..8a7d169 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/DefaultAuthzConfigAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/DefaultAuthzConfigAdapterTest.java
@@ -47,6 +47,7 @@ import static org.keycloak.testsuite.util.IOUtil.loadRealm;
  * @author <a href="mailto:psilva@redhat.com">Pedro Igor</a>
  */
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP)
 public class DefaultAuthzConfigAdapterTest extends AbstractExampleAdapterTest {
 
     private static final String REALM_NAME = "hello-world-authz";
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PermissiveModeAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PermissiveModeAdapterTest.java
index c7649b0..f1d2cbc 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PermissiveModeAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PermissiveModeAdapterTest.java
@@ -31,6 +31,7 @@ import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
  * @author <a href="mailto:psilva@redhat.com">Pedro Igor</a>
  */
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP)
 public class PermissiveModeAdapterTest extends AbstractBaseServletAuthzAdapterTest {
 
     @Deployment(name = RESOURCE_SERVER_ID, managed = false)
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PhotozExampleLazyLoadPathsAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PhotozExampleLazyLoadPathsAdapterTest.java
index 795df94..77060b8 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PhotozExampleLazyLoadPathsAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PhotozExampleLazyLoadPathsAdapterTest.java
@@ -29,6 +29,7 @@ import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
  * @author <a href="mailto:psilva@redhat.com">Pedro Igor</a>
  */
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP)
 public class PhotozExampleLazyLoadPathsAdapterTest extends AbstractPhotozExampleAdapterTest {
 
     @Deployment(name = PhotozClientAuthzTestApp.DEPLOYMENT_NAME)
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PhotozExampleNoLazyLoadPathsAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PhotozExampleNoLazyLoadPathsAdapterTest.java
index b04f70a..14c3a8c 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PhotozExampleNoLazyLoadPathsAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/PhotozExampleNoLazyLoadPathsAdapterTest.java
@@ -28,6 +28,7 @@ import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
  * @author <a href="mailto:psilva@redhat.com">Pedro Igor</a>
  */
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP)
 public class PhotozExampleNoLazyLoadPathsAdapterTest extends AbstractPhotozExampleAdapterTest {
 
     @Deployment(name = PhotozClientAuthzTestApp.DEPLOYMENT_NAME)
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzCIPAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzCIPAdapterTest.java
index e57bb3f..cce3095 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzCIPAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzCIPAdapterTest.java
@@ -29,7 +29,8 @@ import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
  * @author <a href="mailto:psilva@redhat.com">Pedro Igor</a>
  */
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
-public class ServletAuthzCIPAdapterTest extends AbstractServletAuthzFunctionalAdapterTest {
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP)
+public class ServletAuthzCIPAdapterTest extends AbstractServletAuthzAdapterTest {
 
     @Deployment(name = RESOURCE_SERVER_ID, managed = false)
     public static WebArchive deployment() throws IOException {
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzLazyLoadPathsAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzLazyLoadPathsAdapterTest.java
index a1ae4cf..bdce273 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzLazyLoadPathsAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletAuthzLazyLoadPathsAdapterTest.java
@@ -29,7 +29,8 @@ import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
  * @author <a href="mailto:psilva@redhat.com">Pedro Igor</a>
  */
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
-public class ServletAuthzLazyLoadPathsAdapterTest extends AbstractServletAuthzFunctionalAdapterTest {
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP)
+public class ServletAuthzLazyLoadPathsAdapterTest extends AbstractServletAuthzAdapterTest {
 
     @Deployment(name = RESOURCE_SERVER_ID, managed = false)
     public static WebArchive deployment() throws IOException {
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletPolicyEnforcerTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletPolicyEnforcerTest.java
index ab66b00..d42e463 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletPolicyEnforcerTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/authorization/ServletPolicyEnforcerTest.java
@@ -53,6 +53,7 @@ import org.openqa.selenium.By;
  * @author <a href="mailto:psilva@redhat.com">Pedro Igor</a>
  */
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP)
 public class ServletPolicyEnforcerTest extends AbstractExampleAdapterTest {
 
     protected static final String REALM_NAME = "servlet-policy-enforcer-authz";
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/cors/CorsExampleAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/cors/CorsExampleAdapterTest.java
index 4c297ba..1322133 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/cors/CorsExampleAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/cors/CorsExampleAdapterTest.java
@@ -57,6 +57,7 @@ import static org.keycloak.testsuite.util.WaitUtils.waitUntilElement;
  * Created by fkiss.
  */
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP)
 public class CorsExampleAdapterTest extends AbstractExampleAdapterTest {
 
     public static final String CORS = "cors";
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/hal/ConsoleProtectionTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/hal/ConsoleProtectionTest.java
index e0e2409..f9e4c90 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/hal/ConsoleProtectionTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/hal/ConsoleProtectionTest.java
@@ -49,6 +49,7 @@ import org.wildfly.extras.creaper.core.online.operations.Operations;
  * @author <a href="mailto:psilva@redhat.com">Pedro Igor</a>
  */
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP)
 public class ConsoleProtectionTest extends AbstractAdapterTest {
 
     // Javascript browser needed KEYCLOAK-4703
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/BrokerLinkAndTokenExchangeTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/BrokerLinkAndTokenExchangeTest.java
index a214e1e..186e0cf 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/BrokerLinkAndTokenExchangeTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/BrokerLinkAndTokenExchangeTest.java
@@ -90,6 +90,7 @@ import static org.keycloak.testsuite.arquillian.DeploymentTargetModifier.AUTH_SE
  */
 @AppServerContainer(ContainerConstants.APP_SERVER_UNDERTOW)
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP)
 public class BrokerLinkAndTokenExchangeTest extends AbstractServletsAdapterTest {
     public static final String CHILD_IDP = "child";
     public static final String PARENT_IDP = "parent-idp";
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/ClientInitiatedAccountLinkTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/ClientInitiatedAccountLinkTest.java
index fec5132..0c19734 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/ClientInitiatedAccountLinkTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/ClientInitiatedAccountLinkTest.java
@@ -74,6 +74,7 @@ import static org.keycloak.testsuite.admin.ApiUtil.createUserAndResetPasswordWit
  */
 @AppServerContainer(ContainerConstants.APP_SERVER_UNDERTOW)
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP)
 public class ClientInitiatedAccountLinkTest extends AbstractServletsAdapterTest {
     public static final String CHILD_IDP = "child";
     public static final String PARENT_IDP = "parent-idp";
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/cluster/SAMLAdapterClusterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/cluster/SAMLAdapterClusterTest.java
index 278c076..e0d6be8 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/cluster/SAMLAdapterClusterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/cluster/SAMLAdapterClusterTest.java
@@ -33,12 +33,16 @@ import static org.keycloak.testsuite.adapter.AbstractServletsAdapterTest.samlSer
  * @author hmlnarik
  */
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY_CLUSTER)
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP_CLUSTER)
 public class SAMLAdapterClusterTest extends AbstractSAMLAdapterClusteredTest {
 
     @TargetsContainer(value = TARGET_CONTAINER_NODE_1)
     @Deployment(name = EmployeeServletDistributable.DEPLOYMENT_NAME, managed = false)
     protected static WebArchive employee() {
-        return samlServletDeployment(EmployeeServletDistributable.DEPLOYMENT_NAME, EmployeeServletDistributable.DEPLOYMENT_NAME + "/WEB-INF/web.xml", SendUsernameServlet.class);
+        return samlServletDeployment(
+                EmployeeServletDistributable.DEPLOYMENT_NAME, 
+                EmployeeServletDistributable.DEPLOYMENT_NAME + "/WEB-INF/web.xml", 
+                SendUsernameServlet.class);
     }
 
     @TargetsContainer(value = TARGET_CONTAINER_NODE_2)
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/crossdc/SAMLAdapterCrossDCTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/crossdc/SAMLAdapterCrossDCTest.java
index 3050dab..df20436 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/crossdc/SAMLAdapterCrossDCTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/crossdc/SAMLAdapterCrossDCTest.java
@@ -37,6 +37,7 @@ import static org.keycloak.testsuite.adapter.AbstractServletsAdapterTest.samlSer
  * @author hmlnarik
  */
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY_CLUSTER)
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP_CLUSTER)
 public class SAMLAdapterCrossDCTest extends AbstractSAMLAdapterClusteredTest {
 
     @BeforeClass
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/DemoFilterServletAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/DemoFilterServletAdapterTest.java
index d5b5c27..2b712f4 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/DemoFilterServletAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/DemoFilterServletAdapterTest.java
@@ -24,6 +24,7 @@ import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
 
 @AppServerContainer(ContainerConstants.APP_SERVER_UNDERTOW)
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP)
 @UseServletFilter(filterName = "oidc-filter", filterClass = "org.keycloak.adapters.servlet.KeycloakOIDCFilter",
         filterDependency = "org.keycloak:keycloak-servlet-filter-adapter", skipPattern = "/error.html")
 public class DemoFilterServletAdapterTest extends DemoServletsAdapterTest {
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/DemoServletsAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/DemoServletsAdapterTest.java
index 863120b..b9ab5d9 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/DemoServletsAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/DemoServletsAdapterTest.java
@@ -131,6 +131,7 @@ import static org.keycloak.testsuite.util.WaitUtils.waitForPageToLoad;
  */
 @AppServerContainer(ContainerConstants.APP_SERVER_UNDERTOW)
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP)
 public class DemoServletsAdapterTest extends AbstractServletsAdapterTest {
 
     // Javascript browser needed KEYCLOAK-4703
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/OfflineServletsAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/OfflineServletsAdapterTest.java
index 619de47..4bc8a3d 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/OfflineServletsAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/OfflineServletsAdapterTest.java
@@ -37,6 +37,7 @@ import static org.keycloak.testsuite.util.WaitUtils.waitUntilElement;
  */
 @AppServerContainer(ContainerConstants.APP_SERVER_UNDERTOW)
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP)
 public class OfflineServletsAdapterTest extends AbstractServletsAdapterTest {
 
     @Rule
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/OIDCPublicKeyRotationAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/OIDCPublicKeyRotationAdapterTest.java
index 45dabae..2c9a716 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/OIDCPublicKeyRotationAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/OIDCPublicKeyRotationAdapterTest.java
@@ -80,6 +80,7 @@ import static org.keycloak.testsuite.util.WaitUtils.waitUntilElement;
  */
 @AppServerContainer(ContainerConstants.APP_SERVER_UNDERTOW)
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP)
 public class OIDCPublicKeyRotationAdapterTest extends AbstractServletsAdapterTest {
 
     @Page
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SAMLFilterServletAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SAMLFilterServletAdapterTest.java
index fdedc82..86c1dc8 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SAMLFilterServletAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SAMLFilterServletAdapterTest.java
@@ -12,6 +12,7 @@ import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
  * @author mhajas
  */
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP)
 @UseServletFilter(filterName = "saml-filter", filterClass = "org.keycloak.adapters.saml.servlet.SamlFilter",
         filterDependency = "org.keycloak:keycloak-saml-servlet-filter-adapter")
 public class SAMLFilterServletAdapterTest extends SAMLServletsAdapterTest {
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SAMLServletsAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SAMLServletsAdapterTest.java
index 60525ec..c6f4d75 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SAMLServletsAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SAMLServletsAdapterTest.java
@@ -151,6 +151,7 @@ import static org.keycloak.testsuite.util.WaitUtils.*;
  * @author mhajas
  */
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP)
 public class SAMLServletsAdapterTest extends AbstractServletsAdapterTest {
     @Page
     protected BadClientSalesPostSigServlet badClientSalesPostSigServletPage;
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SecuredDeploymentsAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SecuredDeploymentsAdapterTest.java
index 8ef8720..2d85cf6 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SecuredDeploymentsAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SecuredDeploymentsAdapterTest.java
@@ -29,11 +29,13 @@ import org.keycloak.testsuite.adapter.page.ProductPortalSubsystem;
 import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
 import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
 
-import static org.junit.Assert.assertTrue;
+import static org.hamcrest.Matchers.containsString;
+import static org.junit.Assert.assertThat;
 import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlEquals;
 import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWithLoginUrlOf;
 
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP)
 public class SecuredDeploymentsAdapterTest extends AbstractServletsAdapterTest {
 
     @Page
@@ -62,15 +64,17 @@ public class SecuredDeploymentsAdapterTest extends AbstractServletsAdapterTest {
         customerPortalSubsystem.navigateTo();
         assertCurrentUrlStartsWithLoginUrlOf(testRealmPage);
         testRealmLoginPage.form().login("bburke@redhat.com", "password");
-        String pageSource = driver.getPageSource();
-        log.debug(pageSource);
-        assertTrue(pageSource.contains("Bill Burke") && pageSource.contains("Stian Thorgersen"));
+        assertPageContains("Bill Burke");
+        assertPageContains("Stian Thorgersen");
 
         productPortalSubsystem.navigateTo();
         assertCurrentUrlEquals(productPortalSubsystem);
-        pageSource = driver.getPageSource();
-        log.debug(pageSource);
-        assertTrue(pageSource.contains("iPhone") && pageSource.contains("iPad"));
+        assertPageContains("iPhone");
+        assertPageContains("iPad");
     }
 
+    private void assertPageContains(String string) {
+        String pageSource = driver.getPageSource();
+        assertThat(pageSource, containsString(string));
+    }
 }
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SessionServletAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SessionServletAdapterTest.java
index 3165a33..55924fc 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SessionServletAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/SessionServletAdapterTest.java
@@ -35,6 +35,7 @@ import org.keycloak.testsuite.auth.page.account.Sessions;
 import org.keycloak.testsuite.auth.page.login.Login;
 import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
 import org.keycloak.testsuite.arquillian.containers.ContainerConstants;
+import org.keycloak.testsuite.util.ContainerAssume;
 import org.keycloak.testsuite.util.SecondBrowser;
 import org.openqa.selenium.By;
 import org.openqa.selenium.WebDriver;
@@ -51,6 +52,7 @@ import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWithLo
  */
 @AppServerContainer(ContainerConstants.APP_SERVER_UNDERTOW)
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP)
 public class SessionServletAdapterTest extends AbstractServletsAdapterTest {
 
     @Page
@@ -124,7 +126,7 @@ public class SessionServletAdapterTest extends AbstractServletsAdapterTest {
     //KEYCLOAK-741
     @Test
     public void testSessionInvalidatedAfterFailedRefresh() {
-        assumeNotOnAppServerUndertow();
+        ContainerAssume.assumeNotAppServerUndertow();
         RealmRepresentation testRealmRep = testRealmResource().toRepresentation();
         ClientResource sessionPortalRes = null;
         for (ClientRepresentation clientRep : testRealmResource().clients().findAll()) {
@@ -182,7 +184,7 @@ public class SessionServletAdapterTest extends AbstractServletsAdapterTest {
     //KEYCLOAK-1216
     @Test
     public void testAccountManagementSessionsLogout() {
-        assumeNotOnAppServerUndertow();
+        ContainerAssume.assumeNotAppServerUndertow();
         // login as bburke
         loginAndCheckSession(testRealmLoginPage);
         testRealmSessions.navigateTo();
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/UserStorageConsentTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/UserStorageConsentTest.java
index 0c1dc1a..5b40ce8 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/UserStorageConsentTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/servlet/UserStorageConsentTest.java
@@ -55,6 +55,7 @@ import org.keycloak.testsuite.auth.page.login.PageWithLoginUrl;
 import org.keycloak.testsuite.federation.UserMapStorageFactory;
 import org.keycloak.testsuite.pages.ConsentPage;
 import org.keycloak.testsuite.runonserver.RunOnServerDeployment;
+import org.keycloak.testsuite.util.ContainerAssume;
 
 import static org.keycloak.testsuite.arquillian.DeploymentTargetModifier.AUTH_SERVER_CURRENT;
 import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlEquals;
@@ -66,6 +67,7 @@ import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWithLo
  */
 @AppServerContainer(ContainerConstants.APP_SERVER_UNDERTOW)
 @AppServerContainer(ContainerConstants.APP_SERVER_WILDFLY)
+@AppServerContainer(ContainerConstants.APP_SERVER_EAP)
 public class UserStorageConsentTest extends AbstractServletsAdapterTest {
 
     @Page
@@ -144,7 +146,7 @@ public class UserStorageConsentTest extends AbstractServletsAdapterTest {
      */
     @Test
     public void testLogin() throws Exception {
-        assumeNotOnAppServerUndertow();
+        ContainerAssume.assumeNotAppServerUndertow();
 
         testingClient.server().run(UserStorageConsentTest::setupConsent);
         UserRepresentation memuser = new UserRepresentation();
diff --git a/testsuite/integration-arquillian/tests/other/adapters/jboss/eap6/src/test/java/org/keycloak/testsuite/adapter/example/authorization/EAP6ServletAuthzAdapterTest.java b/testsuite/integration-arquillian/tests/other/adapters/jboss/eap6/src/test/java/org/keycloak/testsuite/adapter/example/authorization/EAP6ServletAuthzAdapterTest.java
index f7ac21a..5833b29 100644
--- a/testsuite/integration-arquillian/tests/other/adapters/jboss/eap6/src/test/java/org/keycloak/testsuite/adapter/example/authorization/EAP6ServletAuthzAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/other/adapters/jboss/eap6/src/test/java/org/keycloak/testsuite/adapter/example/authorization/EAP6ServletAuthzAdapterTest.java
@@ -25,6 +25,6 @@ import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
  */
 @RunAsClient
 @AppServerContainer("app-server-eap6")
-public class EAP6ServletAuthzAdapterTest extends AbstractServletAuthzFunctionalAdapterTest {
+public class EAP6ServletAuthzAdapterTest extends AbstractServletAuthzAdapterTest {
 
 }
diff --git a/testsuite/integration-arquillian/tests/other/adapters/jboss/pom.xml b/testsuite/integration-arquillian/tests/other/adapters/jboss/pom.xml
index c66b83a..31038bc 100644
--- a/testsuite/integration-arquillian/tests/other/adapters/jboss/pom.xml
+++ b/testsuite/integration-arquillian/tests/other/adapters/jboss/pom.xml
@@ -72,12 +72,6 @@
         </profile>
 
         <profile>
-            <id>app-server-eap</id>
-            <modules>
-                <module>eap</module>
-            </modules>
-        </profile>
-        <profile>
             <id>app-server-eap6</id>
             <modules>
                 <module>eap6</module>
diff --git a/testsuite/integration-arquillian/tests/other/adapters/jboss/wildfly10/src/test/java/org/keycloak/testsuite/adapter/example/authorization/Wildfly10ServletAuthzAdapterTest.java b/testsuite/integration-arquillian/tests/other/adapters/jboss/wildfly10/src/test/java/org/keycloak/testsuite/adapter/example/authorization/Wildfly10ServletAuthzAdapterTest.java
index ac7dcfc..b97170c 100644
--- a/testsuite/integration-arquillian/tests/other/adapters/jboss/wildfly10/src/test/java/org/keycloak/testsuite/adapter/example/authorization/Wildfly10ServletAuthzAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/other/adapters/jboss/wildfly10/src/test/java/org/keycloak/testsuite/adapter/example/authorization/Wildfly10ServletAuthzAdapterTest.java
@@ -26,6 +26,6 @@ import org.keycloak.testsuite.arquillian.annotation.AppServerContainer;
 @RunAsClient
 @AppServerContainer("app-server-wildfly10")
 //@AdapterLibsLocationProperty("adapter.libs.wildfly")
-public class Wildfly10ServletAuthzAdapterTest extends AbstractServletAuthzFunctionalAdapterTest {
+public class Wildfly10ServletAuthzAdapterTest extends AbstractServletAuthzAdapterTest {
 
 }
diff --git a/testsuite/integration-arquillian/tests/pom.xml b/testsuite/integration-arquillian/tests/pom.xml
index f38d996..e48e0da 100755
--- a/testsuite/integration-arquillian/tests/pom.xml
+++ b/testsuite/integration-arquillian/tests/pom.xml
@@ -204,6 +204,83 @@
                                 <skip>${app.server.skip.unpack}</skip>
                             </configuration>
                         </execution>
+                        <execution>
+                            <id>example-wars</id>
+                            <phase>generate-test-resources</phase>
+                            <goals>
+                                <goal>copy</goal>
+                            </goals>
+                            <configuration>
+                                <skip>${app.server.skip.unpack}</skip>
+                                <artifactItems>
+                                    <artifactItem>
+                                        <groupId>org.keycloak.testsuite</groupId>
+                                        <artifactId>hello-world-authz-service</artifactId>
+                                        <version>${project.version}</version>
+                                        <type>war</type>
+                                    </artifactItem>
+                                    <artifactItem>
+                                        <groupId>org.keycloak.testsuite</groupId>
+                                        <artifactId>photoz-html5-client</artifactId>
+                                        <version>${project.version}</version>
+                                        <type>war</type>
+                                    </artifactItem>
+                                    <artifactItem>
+                                        <groupId>org.keycloak.testsuite</groupId>
+                                        <artifactId>photoz-restful-api</artifactId>
+                                        <version>${project.version}</version>
+                                        <type>war</type>
+                                    </artifactItem>
+                                    <artifactItem>
+                                        <groupId>org.keycloak.testsuite</groupId>
+                                        <artifactId>servlet-authz-app</artifactId>
+                                        <version>${project.version}</version>
+                                        <type>war</type>
+                                    </artifactItem>
+                                    <artifactItem>
+                                        <groupId>org.keycloak.testsuite</groupId>
+                                        <artifactId>servlet-policy-enforcer</artifactId>
+                                        <version>${project.version}</version>
+                                        <type>war</type>
+                                    </artifactItem>
+                                    <artifactItem>
+                                        <groupId>org.keycloak.testsuite</groupId>
+                                        <artifactId>integration-arquillian-test-apps-cors-angular-product</artifactId>
+                                        <version>${project.version}</version>
+                                        <type>war</type>
+                                    </artifactItem>
+                                    <artifactItem>
+                                        <groupId>org.keycloak.testsuite</groupId>
+                                        <artifactId>integration-arquillian-test-apps-cors-database-service</artifactId>
+                                        <version>${project.version}</version>
+                                        <type>war</type>
+                                    </artifactItem>
+                                </artifactItems>
+                                <outputDirectory>${examples.home}</outputDirectory>
+                                <overWriteIfNewer>true</overWriteIfNewer>
+                            </configuration>
+                        </execution>
+                        <execution>
+                            <id>test-apps-realms</id>
+                            <phase>generate-test-resources</phase>
+                            <goals>
+                                <goal>unpack</goal>
+                            </goals>
+                            <configuration>
+                                <skip>${app.server.skip.unpack}</skip>
+                                <artifactItems>
+                                    <artifactItem>
+                                        <groupId>org.keycloak.testsuite</groupId>
+                                        <artifactId>integration-arquillian-test-apps-dist</artifactId>
+                                        <version>${project.version}</version>
+                                        <type>zip</type>
+                                        <includes>**/*realm.json,**/*authz-service.json,**/testsaml.json,**/*-keycloak.json</includes>
+                                    </artifactItem>
+                                </artifactItems>
+                                <outputDirectory>${examples.home}</outputDirectory>
+                                <overWriteIfNewer>true</overWriteIfNewer>
+                            </configuration>
+                        </execution>
                     </executions>
                 </plugin>
                 <plugin>
@@ -247,6 +324,27 @@
                                 </resources>
                             </configuration>
                         </execution>
+                        <execution>
+                            <id>example-realms</id>
+                            <phase>generate-test-resources</phase>
+                            <goals>
+                                <goal>copy-resources</goal>
+                            </goals>
+                            <configuration>
+                                <skip>${app.server.skip.unpack}</skip>
+                                <outputDirectory>${examples.home}/example-realms</outputDirectory>
+                                <overWriteIfNewer>true</overWriteIfNewer>
+                                <resources>
+                                    <resource>
+                                        <directory>${examples.basedir}</directory>
+                                        <filtering>true</filtering>
+                                        <includes>
+                                            <include>**/*.json</include>
+                                        </includes>
+                                    </resource>
+                                </resources>
+                            </configuration>
+                        </execution>
                     </executions>
                 </plugin>
                 <plugin>
@@ -405,6 +503,26 @@
                         </properties>
                     </configuration>
                 </plugin>
+                <plugin>
+                    <groupId>org.commonjava.maven.plugins</groupId>
+                    <artifactId>directory-maven-plugin</artifactId>
+                    <executions>
+                        <execution>
+                            <id>keycloak-parent-basedir</id>
+                            <goals>
+                                <goal>directory-of</goal>
+                            </goals>
+                            <phase>initialize</phase>
+                            <configuration>
+                                <property>keycloak-parent.basedir</property>
+                                <project>
+                                    <groupId>org.keycloak</groupId>
+                                    <artifactId>keycloak-parent</artifactId>
+                                </project>
+                            </configuration>
+                        </execution>
+                    </executions>
+                </plugin>
             </plugins>
         </pluginManagement>
         <plugins>