keycloak-aplcache

Details

diff --git a/testsuite/integration-arquillian/README.md b/testsuite/integration-arquillian/README.md
index 1adc054..4a0cfa1 100644
--- a/testsuite/integration-arquillian/README.md
+++ b/testsuite/integration-arquillian/README.md
@@ -1,33 +1,36 @@
 # Keycloak Arquillian Integration Testsuite
 
-## Container Lifecycles
+## Overview
+
+For overview see the **Modules Overview** section at the bottom of this README.
 
-### Keycloak Auth Server
 
-There is only one instance of Keycloak server running during a single test run.
-It is automatically started by Arquillian on the `BeforeSuite` event and stopped `AfterSuite`.
+## Container Lifecycles
+
+### Auth Server
 
-The type of container can be determined by property `-Dauth.server.container`. Default value is `auth-server-undertow`, 
-other options are: `auth-server-wildfly` and `auth-server-eap7`. The values correspond to Arquillian *container qualifiers* in `arquillian.xml` config file.
+Keycloak server is automatically started by the testsuite on the `BeforeSuite` event and stopped on `AfterSuite` event.
 
-**Note 1:** For the non-default options it's necessary to build a corresponding server module prior to running any of the test modules.
-This can be done by building the server module directly (from `servers/wildfly`/`servers/eap7`), 
-or by activating `auth-server-wildfly`/`auth-server-eap7` profile when building from the top level module.
+By default the server runs in embedded Undertow.
 
-**Note 2:** Most server-side configurations are done during the build of the server module
-and included in the output artifact - which is then consumed by the test modules( if a corresponding profile is activated).
-To reflect a change in server config in the test (e.g. a datasource) it's necessary to rebuild the server module after each change.
+#### Wildfly/EAP
 
-#### Migration
+Testsuite supports running server on Wildfly/EAP. For this it's necessary to:
+- build the project including the `distribution` module
+ (artifact `keycloak-server-dist`/`-overlay` needs to be available before running the testsuite),
+- activate profile `auth-server-wildfly` or `auth-server-eap7`.
 
-Migration tests can be enabled by setting `-Dmigrated.auth.server.version` property. Supported versions can be found at the bottom of `tests/pom.xml`.
-When enabled, the `AuthServerTestEnricher` class will start and stop the selected migrated instance 
-*before* the current auth server instance is started.
+[More details...](servers/auth-server/README.md)
 
 #### Cluster Setup
 
-Cluster setup can be enabled with profile `auth-server-wildfly-cluster`.
-(It is also necessary to build the server modules with this profile before running the test. See *Notes 1 and 2* above.)
+The cluster setup for server can be enabled by activating profile `auth-server-cluster`.
+
+The cluster setup is not supported for server on Undetow. Profile `auth-server-wildfly` or `auth-server-eap` needs to be activated.
+
+The setup includes:
+- a `mod_cluster` load balancer on Wildfly
+- two clustered nodes of Keycloak server on Wildfly/EAP
 
 Clustering tests require MULTICAST to be enabled on machine's `loopback` network interface.
 This can be done by running the following commands under root privileges:
@@ -36,20 +39,20 @@ route add -net 224.0.0.0 netmask 240.0.0.0 dev lo
 ifconfig lo multicast
 ```
 
-### App Servers
+### App Servers / Adapter Tests
 
 Lifecycle of application server is always tied to a particular TestClass.
 
 Each *adapter* test class is annotated by `@AppServerContainer("app-server-*")` annotation 
 that links it to a particular Arquillian container in `arquillian.xml`.
-The `AppServerTestEnricher` then ensures the server is started before and stopped after all tests methods in the class.
+The `AppServerTestEnricher` then ensures the server is started during `BeforeClass` event and stopped during `AfterClass` event for that particular test class. 
 In case the `@AppServerContainer` annotation has no value it's assumed that the application container 
-is the same as the auth server container (a relative adapter test scenario).
+is the same as the auth server container - a "relative" adapter test scenario.
 
-Adapter tests are separated into submodules because different app containers require different configurations 
-(installation of adapter libs, etc.).
-Container entries of app servers are not present in the main `arquillian.xml` in the `base` module.
-Each adapter submodule adds it's own entry before it runs the tests.
+The app-servers with installed Keycloak adapter are prepared in `servers/app-server` submodules, activated by `-Papp-server-MODULE`.
+[More details.](servers/app-server/README.md)
+
+The corresponding adapter test modules are in `tests/other/adapters` submodules, and are activated by the same profiles.
 
 ## SuiteContext and TestContext
 
@@ -130,32 +133,6 @@ It automatically modifies imported test realms and deployments' adapter configs 
 2. **Bundled** - In the deployed war in `/WEB-INF/keycloak.json`. **Default.**
 
 
-## Maven Modules Structure
-
-```
-integration-arquillian
-│
-├──servers
-│  ├──wildfly   (activated by -Pauth-server-wildfly)
-│  └──eap7      (activated by -Pauth-server-eap7)
-│
-└──tests   (common settings for all test modules)
-   ├──base    (custom ARQ extensions + base functional tests)
-   └──other   (common settings for all modules dependent on base)
-      │
-      ├──adapters         (common settings for all adapter submodules)
-      │  ├──wildfly           (activated by -Papp-server-wildfly)
-      │  ├──wildfly-relative  (activated by -Papp-server-wildfly-relative,auth-server-wildfly)
-      │  ├──...
-      │  ├──tomcat            (activated by -Papp-server-tomcat)
-      │  └──karaf             (activated by -Papp-server-karaf)
-      │
-      ├──console          (activated by -Pconsole-ui-tests)
-      ├──mod_auth_mellon  (activated by -Pmod_auth_mellon)
-      ├──console_no_users (activated by -Pconsole-ui-no-users-tests)
-      └──...
-```
-
 ## Custom Arquillian Extensions
 
 Custom extensions are registered in `META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension`.
@@ -173,6 +150,37 @@ Custom extensions are registered in `META-INF/services/org.jboss.arquillian.core
  * `DeploymentTargetModifier` - Ensures all test app deployments are targeted at app server containers.
  * `URLProvider` - Fixes URLs injected by Arquillian Graphene which contain value `127.0.0.1` instead of required `localhost`.
  
-### CustomKarafContainerExtension
+## Modules Overview
+
+```
+integration-arquillian
+│
+├──servers   (preconfigured test servers)
+│  │
+│  ├──auth-server
+│  │  ├──jboss (wildfly/eap)
+│  │  └──undertow (arq. extension)
+│  │
+│  ├──app-server
+│  │  ├──jboss (wildfly/eap/as)
+│  │  ├──tomcat
+│  │  └──karaf
+│  │
+│  └──wildfly-balancer
+│
+└──tests   (common settings for all test modules)
+   │
+   ├──base    (custom ARQ extensions + base functional tests)
+   │
+   └──other   (common settings for all test modules dependent on base)
+      │
+      ├──adapters         (common settings for all adapter test modules)
+      │  ├──jboss
+      │  ├──tomcat
+      │  └──karaf
+      │
+      ├──console          
+      ├──console_no_users 
+      └──...
+```
 
-Extension for executing karaf commands after container is started. Used for installation of bundles (test apps and adapter libs).
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/servers/app-server/README.md b/testsuite/integration-arquillian/servers/app-server/README.md
index 6905f03..008e4f5 100644
--- a/testsuite/integration-arquillian/servers/app-server/README.md
+++ b/testsuite/integration-arquillian/servers/app-server/README.md
@@ -1,6 +1,9 @@
-# Keycloak Arquillian Integration TestSuite - Test Servers
+# Keycloak Arquillian Integration TestSuite - Test Servers - App Servers
 
-[Up...](../README.md)
+- [Keycloak Arquillian Integration TestSuite](../../README.md)
+- [Keycloak Arquillian Integration TestSuite - Test Servers](../README.md)
+- [Keycloak Arquillian Integration TestSuite - Test Servers - Auth Server](../auth-server/README.md)
+- Keycloak Arquillian Integration TestSuite - Test Servers - App Servers
 
 ## App Server - JBoss
 
diff --git a/testsuite/integration-arquillian/servers/auth-server/jboss/pom.xml b/testsuite/integration-arquillian/servers/auth-server/jboss/pom.xml
index 72c2f98..8d23106 100644
--- a/testsuite/integration-arquillian/servers/auth-server/jboss/pom.xml
+++ b/testsuite/integration-arquillian/servers/auth-server/jboss/pom.xml
@@ -57,6 +57,9 @@
         <unpacked.artifact.version>${auth.server.dist.version}</unpacked.artifact.version>
         
         <auth.server.home>${project.build.directory}/unpacked/${auth.server.dist.unpacked.folder.name}</auth.server.home>
+        
+        <!--used in profile auth-server-cluster. profile jpa sets this to true-->
+        <skip.h2.tcp>false</skip.h2.tcp>
     </properties>
                         
     <profiles>
@@ -268,6 +271,7 @@
             <id>jpa</id>
             <properties>
                 <jdbc.mvn.driver.deployment.dir>${auth.server.home}/modules/system/layers/base/com/${jdbc.mvn.artifactId}/main</jdbc.mvn.driver.deployment.dir>
+                <skip.h2.tcp>true</skip.h2.tcp>
             </properties>
             <build>
                 <pluginManagement>
@@ -344,7 +348,7 @@
                                             <!-- create module.xml in modules -->
                                             <transformationSet>
                                                 <dir>${auth.server.home}/modules/system/layers/base/com/h2database/h2/main</dir>
-                                                <stylesheet>src/main/resources/module.xsl</stylesheet>
+                                                <stylesheet>src/main/resources/xslt/module.xsl</stylesheet>
                                                 <includes>
                                                     <include>module.xml</include>
                                                 </includes>
@@ -366,6 +370,7 @@
                                                 <stylesheet>${common.resources}/datasource.xsl</stylesheet>
                                                 <includes>
                                                     <include>standalone.xml</include>
+                                                    <include>standalone-ha.xml</include>
                                                 </includes>
                                                 <outputDir>${auth.server.home}/standalone/configuration</outputDir>
                                                 <parameters>
@@ -421,14 +426,13 @@
                             <artifactId>xml-maven-plugin</artifactId>
                             <executions>
                                 <execution>
-                                    <id>configure-wildfly-datasource</id>
+                                    <id>jpa-h2-tcp</id>
                                     <phase>process-resources</phase>
                                     <goals>
                                         <goal>transform</goal>
                                     </goals>
                                     <configuration>
                                         <transformationSets>
-                                            <!-- point KeycloakDS datasource to H2 running on TCP port -->
                                             <transformationSet>
                                                 <dir>${auth.server.home}/standalone/configuration</dir>
                                                 <includes>
@@ -447,6 +451,18 @@
                                                     </parameter>
                                                 </parameters>
                                             </transformationSet>
+                                        </transformationSets>
+                                        <skip>${skip.h2.tcp}</skip>
+                                    </configuration>
+                                </execution>
+                                <execution>
+                                    <id>keycloak-ispn-caches</id>
+                                    <phase>process-resources</phase>
+                                    <goals>
+                                        <goal>transform</goal>
+                                    </goals>
+                                    <configuration>
+                                        <transformationSets>
                                             <transformationSet>
                                                 <dir>${auth.server.home}/standalone/configuration</dir>
                                                 <includes>
diff --git a/testsuite/integration-arquillian/servers/auth-server/README.md b/testsuite/integration-arquillian/servers/auth-server/README.md
index 87f9a20..1fed446 100644
--- a/testsuite/integration-arquillian/servers/auth-server/README.md
+++ b/testsuite/integration-arquillian/servers/auth-server/README.md
@@ -1,16 +1,21 @@
-# Keycloak Arquillian Integration TestSuite - Test Servers
+# Keycloak Arquillian Integration TestSuite - Test Servers - Auth Server
 
-[Up...](../README.md)
+- [Keycloak Arquillian Integration TestSuite](../../README.md)
+- [Keycloak Arquillian Integration TestSuite - Test Servers](../README.md)
+- Keycloak Arquillian Integration TestSuite - Test Servers - Auth Server
+- [Keycloak Arquillian Integration TestSuite - Test Servers - App Servers](../app-server/README.md)
 
-## Auth Server - JBoss `auth-server/jboss`
+## Auth Server - JBoss
 
-### Modules
+Common configurations of Keycloak server on JBoss-based container (Wildfly/EAP).
 
-* __`wildfly` Wildfly 10__
+### Submodules
+
+#### `wildfly` Wildfly 10
  - Builds keycloak server on top of latest Wildfly.
  - Activated by __`-Pauth-server-wildfly`__
 
-* __`eap` EAP 7__
+#### `eap` EAP 7
  - Builds keycloak server on top of latest EAP.
  - Activated by __`-Pauth-server-eap`__
  - Requires access to product repo.
@@ -39,6 +44,6 @@ Configures in `standalone-ha.xml`:
 
 See profile `auth-server-cluster`.
 
-## Auth Server - Undertow `auth-server/undertow`
+## Auth Server - Undertow
 
 Arquillian extension for running Keycloak server in embedded Undertow.
diff --git a/testsuite/integration-arquillian/servers/README.md b/testsuite/integration-arquillian/servers/README.md
index 835e171..d29f470 100644
--- a/testsuite/integration-arquillian/servers/README.md
+++ b/testsuite/integration-arquillian/servers/README.md
@@ -1,6 +1,9 @@
-# Keycloak Arquillian Integration TestSuite
+# Keycloak Arquillian Integration TestSuite - Test Servers
 
-[Keycloak Arquillian Integration TestSuite](../README.md)
+- [Keycloak Arquillian Integration TestSuite](../README.md)
+- Keycloak Arquillian Integration TestSuite - Test Servers
+- [Keycloak Arquillian Integration TestSuite - Test Servers - Auth Server](auth-server/README.md)
+- [Keycloak Arquillian Integration TestSuite - Test Servers - App Servers](app-server/README.md)
 
 ## Test Servers
 
@@ -14,8 +17,6 @@ The artifacts are used by the Arquillian TestSuite.
  - EAP 7
 - Undertow
 
-[Details...](auth-server/README.md)
-
 
 ### App Server
 
@@ -30,7 +31,6 @@ The artifacts are used by the Arquillian TestSuite.
 - Tomcat
  - Tomcat 7, 8
 
-[Details...](app-server/README.md)
 
 ### Load Balancer