keycloak-uncached

Details

diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AdapterTestExecutionDecider.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AdapterTestExecutionDecider.java
index cc5d84a..84b9f17 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AdapterTestExecutionDecider.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/AdapterTestExecutionDecider.java
@@ -75,7 +75,6 @@ public class AdapterTestExecutionDecider implements TestExecutionDecider {
     }
 
     private AppServerContainer getCorrespondingAnnotation(Method method) {
-        String appServerContainerName = testContextInstance.get().getAppServerInfo().getArquillianContainer().getName();
 
         AppServerContainers multipleAnnotations = method.getAnnotation(AppServerContainers.class);
 
@@ -87,13 +86,12 @@ public class AdapterTestExecutionDecider implements TestExecutionDecider {
         }
 
         return appServerContainers.stream()
-            .filter(annotation -> annotation.value().equals(appServerContainerName))
-            .findFirst()
-            .orElseThrow(() -> new IllegalStateException("Not found the @AppServerContainer annotation with current app server."));
+                .filter(annotation -> annotation.value().equals(testContextInstance.get().getAppServerContainerName()))
+                .findFirst()
+                .orElseThrow(() -> new IllegalStateException("Not found the @AppServerContainer annotation with current app server."));
     }
 
     private AppServerContainer getCorrespondingAnnotation(Class testClass) {
-        String appServerContainerName = testContextInstance.get().getAppServerInfo().getArquillianContainer().getName();
 
         Class<?> annotatedClass = AppServerTestEnricher.getNearestSuperclassWithAppServerAnnotation(testClass);
 
@@ -105,10 +103,11 @@ public class AdapterTestExecutionDecider implements TestExecutionDecider {
         } else {// single @AppServerContainer annotation
             appServerContainers = Arrays.asList(annotatedClass.getAnnotation(AppServerContainer.class));
         }
+
         return appServerContainers.stream()
-            .filter(annotation -> annotation.value().equals(appServerContainerName))
-            .findFirst()
-            .orElseThrow(() -> new IllegalStateException("Not found the @AppServerContainer annotation with current app server."));
+                .filter(annotation -> annotation.value().equals(testContextInstance.get().getAppServerContainerName()))
+                .findFirst()
+                .orElseThrow(() -> new IllegalStateException("Not found the @AppServerContainer annotation with current app server."));
     }
 
     private ExecutionDecision execute(Method method, Boolean execute, String message) {
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/provider/URLProvider.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/provider/URLProvider.java
index c0d4d54..1a349ec 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/provider/URLProvider.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/provider/URLProvider.java
@@ -102,19 +102,29 @@ public class URLProvider extends URLResourceProvider {
                 return suiteContext.get().getAuthServerInfo().getContextRoot();
             }
             if (AppServerContext.class.isAssignableFrom(a.annotationType())) {
+                //standalone
                 ContainerInfo appServerInfo = testContext.get().getAppServerInfo();
                 if (appServerInfo != null) return appServerInfo.getContextRoot();
-                
+
+                //cluster
                 List<ContainerInfo> appServerBackendsInfo = testContext.get().getAppServerBackendsInfo();
                 if (appServerBackendsInfo.isEmpty()) throw new IllegalStateException("Both testContext's appServerInfo and appServerBackendsInfo not set.");
-                
+
                 return appServerBackendsInfo.get(0).getContextRoot();
             }
             if (AuthServerBrowserContext.class.isAssignableFrom(a.annotationType())) {
                 return suiteContext.get().getAuthServerInfo().getBrowserContextRoot();
             }
             if (AppServerBrowserContext.class.isAssignableFrom(a.annotationType())) {
-                return testContext.get().getAppServerInfo().getBrowserContextRoot();
+                //standalone
+                ContainerInfo appServerInfo = testContext.get().getAppServerInfo();
+                if (appServerInfo != null) return appServerInfo.getBrowserContextRoot();
+
+                //cluster
+                List<ContainerInfo> appServerBackendsInfo = testContext.get().getAppServerBackendsInfo();
+                if (appServerBackendsInfo.isEmpty()) throw new IllegalStateException("Both testContext's appServerInfo and appServerBackendsInfo not set.");
+
+                return appServerBackendsInfo.get(0).getBrowserContextRoot();
             }
         }
 
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/TestContext.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/TestContext.java
index 9e8c055..c11b158 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/TestContext.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/TestContext.java
@@ -194,4 +194,16 @@ public final class TestContext {
         customContext.put(key, value);
     }
 
+    public String getAppServerContainerName() {
+        if (isAdapterContainerEnabled()) { //standalone app server
+            return getAppServerInfo().getArquillianContainer().getName();
+
+        } else if (isAdapterContainerEnabledCluster()) { //clustered app server
+
+            return getAppServerBackendsInfo().stream()
+                .map(ContainerInfo::getQualifier)
+                .collect(Collectors.joining(";"));
+        }
+        return null;
+    }
 }