keycloak-aplcache

KEYCLOAK-1265 Fix import realm in admin console on EAP 6.4,

5/4/2015 6:16:42 PM

Details

diff --git a/distribution/subsystem-war/src/main/webapp/WEB-INF/jboss-deployment-structure.xml b/distribution/subsystem-war/src/main/webapp/WEB-INF/jboss-deployment-structure.xml
index 44ecae0..eed0b00 100755
--- a/distribution/subsystem-war/src/main/webapp/WEB-INF/jboss-deployment-structure.xml
+++ b/distribution/subsystem-war/src/main/webapp/WEB-INF/jboss-deployment-structure.xml
@@ -55,6 +55,7 @@
             <module name="org.bouncycastle"/>
 
             <module name="org.jboss.resteasy.resteasy-jackson-provider" services="import"/>
+            <module name="org.jboss.resteasy.resteasy-multipart-provider" services="import"/>
             <module name="org.jboss.resteasy.resteasy-jaxrs"/>
         </dependencies>
         <exclusions>
diff --git a/testsuite/docker-cluster/assembly.xml b/testsuite/docker-cluster/assembly.xml
index da0580d..ee31467 100644
--- a/testsuite/docker-cluster/assembly.xml
+++ b/testsuite/docker-cluster/assembly.xml
@@ -35,6 +35,13 @@
             <outputDirectory>eap63-adapter</outputDirectory>
         </fileSet>
         <fileSet>
+            <directory>target/server-overlay</directory>
+            <outputDirectory>server-overlay</outputDirectory>
+            <excludes>
+                <exclude>**/standalone-keycloak.xml</exclude>
+            </excludes>
+        </fileSet>
+        <fileSet>
             <directory>shared-files</directory>
             <outputDirectory>shared-files</outputDirectory>
         </fileSet>
diff --git a/testsuite/docker-cluster/eap6/Dockerfile b/testsuite/docker-cluster/eap6/Dockerfile
new file mode 100644
index 0000000..9d7ad62
--- /dev/null
+++ b/testsuite/docker-cluster/eap6/Dockerfile
@@ -0,0 +1,18 @@
+FROM mposolda/eap64
+
+ADD keycloak-eap6-trigger.sh /keycloak-eap6-trigger.sh
+RUN chmod u+x /keycloak-eap6-trigger.sh
+
+# TODO: REmove as it's in base EAP64 image already
+RUN cd /tmp
+RUN wget http://search.maven.org/remotecontent?filepath=mysql/mysql-connector-java/5.1.32/mysql-connector-java-5.1.32.jar
+RUN mv mysql-connector-*.jar /
+
+ENV JBOSS_HOME /opt/eap6
+ENV JBOSS_MODULES_HOME $JBOSS_HOME/modules/system/layers/base
+ENV JBOSS_TYPE eap6
+ENV NODE_PREFIX eap
+
+EXPOSE 8787
+
+CMD [ "/keycloak-eap6-trigger.sh" ]
\ No newline at end of file
diff --git a/testsuite/docker-cluster/pom.xml b/testsuite/docker-cluster/pom.xml
index 3c9be32..c3f98be 100755
--- a/testsuite/docker-cluster/pom.xml
+++ b/testsuite/docker-cluster/pom.xml
@@ -41,26 +41,30 @@
                             <artifactItems>
                                 <artifactItem>
                                     <groupId>org.keycloak</groupId>
-                                    <artifactId>keycloak-war-deployment</artifactId>
+                                    <artifactId>keycloak-server-overlay</artifactId>
                                     <type>zip</type>
-                                    <outputDirectory>${project.build.directory}</outputDirectory>
+                                    <version>${project.version}</version>
+                                    <outputDirectory>${project.build.directory}/server-overlay</outputDirectory>
                                 </artifactItem>
                                 <artifactItem>
                                     <groupId>org.keycloak</groupId>
                                     <artifactId>keycloak-wildfly-adapter-dist</artifactId>
                                     <type>zip</type>
+                                    <version>${project.version}</version>
                                     <outputDirectory>${project.build.directory}/wildfly-adapter</outputDirectory>
                                 </artifactItem>
                                 <artifactItem>
                                     <groupId>org.keycloak</groupId>
                                     <artifactId>keycloak-as7-adapter-dist</artifactId>
                                     <type>zip</type>
+                                    <version>${project.version}</version>
                                     <outputDirectory>${project.build.directory}/as7-adapter</outputDirectory>
                                 </artifactItem>
                                 <artifactItem>
                                     <groupId>org.keycloak</groupId>
                                     <artifactId>keycloak-eap6-adapter-dist</artifactId>
                                     <type>zip</type>
+                                    <version>${project.version}</version>
                                     <outputDirectory>${project.build.directory}/eap63-adapter</outputDirectory>
                                 </artifactItem>
                             </artifactItems>
diff --git a/testsuite/docker-cluster/README.md b/testsuite/docker-cluster/README.md
index c51cd80..2dc10fd 100644
--- a/testsuite/docker-cluster/README.md
+++ b/testsuite/docker-cluster/README.md
@@ -3,7 +3,7 @@ How to test Keycloak cluster with Docker
 Docker+Fig allows to easily setup and test the whole environment with:
 * Apache HTTPD 2.4 + modcluster 1.3 as Load Balancer
 * MySQL 5.6.1 as database
-* Various number of Keycloak cluster nodes running on WildFly with "demo" examples deployed. (See below for EAP 6.3 and AS7)
+* Various number of Keycloak cluster nodes running on WildFly with "demo" examples deployed. (See below for EAP 6.4 and AS7)
 
 You don't need to setup Apache with modcluster + MySQL on your laptop as Docker will do it for you and all will run in Docker containers.
 
@@ -133,16 +133,16 @@ changed jars, then rebuild distribution and testsuite/docker-cluster
 (or just copy changed JAR into $KEYCLOAK_HOME/testsuite/docker-cluster/target/keycloak-docker-cluster/deployments/auth-server.war/WEB-INF/lib if it's not adapter stuff. 
 But 'fig rm' is safer to call anyway)
 
-Test with Keycloak and examples on EAP 6.3
+Test with Keycloak and examples on EAP 6.4
 ------------------------------------------
-Steps are quite similar like for WildFly but we need to pass different file "fig-eap63.yml" instead of default "fig.yml" which is used for WildFly. 
+Steps are quite similar like for WildFly but we need to pass different file "fig-eap6.yml" instead of default "fig.yml" which is used for WildFly. 
 Also name of the node is "eapnode" instead of "wfnode". 
  
 So your commands will look like
 ```shell 
-$ fig -f fig-eap63.yml build
-$ fig -f fig-eap63.yml up
-$ fig -f fig-eap63.yml scale eapnode=2
+$ fig -f fig-eap6.yml build
+$ fig -f fig-eap6.yml up
+$ fig -f fig-eap6.yml scale eapnode=2
 ```` 
 and viceversa.
  
diff --git a/testsuite/docker-cluster/shared-files/keycloak-base-prepare.sh b/testsuite/docker-cluster/shared-files/keycloak-base-prepare.sh
index ac312c5..965da9b 100644
--- a/testsuite/docker-cluster/shared-files/keycloak-base-prepare.sh
+++ b/testsuite/docker-cluster/shared-files/keycloak-base-prepare.sh
@@ -1,5 +1,11 @@
 #!/bin/bash
 
+# Copy Overlay
+cp -r /keycloak-docker-cluster/server-overlay/* $JBOSS_HOME/
+
+# Deploy and configure examples
+/keycloak-docker-cluster/shared-files/deploy-examples.sh
+
 # Copy MySQL driver
 cd /tmp
 mkdir -p mysql/main && mv /mysql-connector-java-5.1.32.jar mysql/main/
@@ -7,7 +13,7 @@ cp /keycloak-docker-cluster/shared-files/mysql-module.xml mysql/main/module.xml
 mv mysql $JBOSS_MODULES_HOME/com/
 
 sed -i -e "s/<extensions>/&\n <extension module=\"org.keycloak.keycloak-subsystem\"\/>/" $JBOSS_HOME/standalone/configuration/standalone-ha.xml
-sed -i -e 's/<profile>/&\n <subsystem xmlns="urn:jboss:domain:keycloak:1.0"\/>/' $JBOSS_HOME/standalone/configuration/standalone-ha.xml && \
+sed -i -e 's/<profile>/&\n <subsystem xmlns="urn:jboss:domain:keycloak:1.0">\n  <auth-server name="main-auth-server">\n   <enabled>true<\/enabled>\n   <web-context>auth<\/web-context>\n  <\/auth-server> \n <\/subsystem>/' $JBOSS_HOME/standalone/configuration/standalone-ha.xml && \
 sed -i -e 's/<security-domains>/&\n <security-domain name="keycloak">\n  <authentication>\n   <login-module code="org.keycloak.adapters.jboss.KeycloakLoginModule" flag="required"\/>\n  <\/authentication>\n <\/security-domain>/' $JBOSS_HOME/standalone/configuration/standalone-ha.xml && \
 sed -i -e 's/<drivers>/&\n <driver name="mysql" module="com.mysql">\n  <xa-datasource-class>com.mysql.jdbc.Driver<\/xa-datasource-class>\n  <driver-class>com.mysql.jdbc.Driver<\/driver-class>\n <\/driver>/' $JBOSS_HOME/standalone/configuration/standalone-ha.xml && \
 sed -i -e 's/<\/periodic-rotating-file-handler>/&\n <logger category=\"org.keycloak\">\n  <level name=\"DEBUG\" \/> \n <\/logger>\n <logger category=\"org.jboss.resteasy.core.ResourceLocator\">\n  <level name=\"ERROR\" \/> \n <\/logger>/' $JBOSS_HOME/standalone/configuration/standalone-ha.xml
@@ -23,3 +29,7 @@ sed -i "s|<mod-cluster-config .*>|<mod-cluster-config advertise-socket=\"modclus
 sed -i "s|#JAVA_OPTS=\"\$JAVA_OPTS -agentlib:jdwp=transport=dt_socket|JAVA_OPTS=\"\$JAVA_OPTS -agentlib:jdwp=transport=dt_socket|" $JBOSS_HOME/bin/standalone.conf
 
 cp /keycloak-docker-cluster/shared-files/mysql-keycloak-ds.xml $JBOSS_HOME/standalone/deployments/
+
+# Enable Infinispan provider
+sed -i "s|\"provider\".*: \"mem\"|\"provider\": \"infinispan\"|" $JBOSS_HOME/standalone/configuration/keycloak-server.json
+sed -i -e "s/\"connectionsJpa\"/\n \"connectionsInfinispan\": \{\n  \"default\" : \{\n   \"cacheContainer\" : \"java:jboss\/infinispan\/Keycloak\"\n  \}\n \},\n     &/" $JBOSS_HOME/standalone/configuration/keycloak-server.json
diff --git a/testsuite/docker-cluster/shared-files/keycloak-run-node.sh b/testsuite/docker-cluster/shared-files/keycloak-run-node.sh
index bc0d1e6..1506dc6 100644
--- a/testsuite/docker-cluster/shared-files/keycloak-run-node.sh
+++ b/testsuite/docker-cluster/shared-files/keycloak-run-node.sh
@@ -16,19 +16,6 @@ function prepareHost
 
   echo "Base prepare finished";
 
-  cd $JBOSS_HOME
-  cp -r /keycloak-docker-cluster/$JBOSS_TYPE-adapter/modules ./
-
-  # Deploy keycloak
-  cp -r /keycloak-docker-cluster/deployments/* $JBOSS_HOME/standalone/deployments/
-
-  # Enable Infinispan provider
-  sed -i "s|\"provider\".*: \"mem\"|\"provider\": \"infinispan\"|" $JBOSS_HOME/standalone/deployments/auth-server.war/WEB-INF/classes/META-INF/keycloak-server.json
-  sed -i -e "s/\"connectionsJpa\"/\n \"connectionsInfinispan\": \{\n  \"default\" : \{\n   \"cacheContainer\" : \"java:jboss\/infinispan\/Keycloak\"\n  \}\n \},\n     &/" $JBOSS_HOME/standalone/deployments/auth-server.war/WEB-INF/classes/META-INF/keycloak-server.json
-
-  # Deploy and configure examples
-  /keycloak-docker-cluster/shared-files/deploy-examples.sh
-
   # Deploy to volume
   rm -rf /keycloak-docker-shared/keycloak-$JBOSS_TYPE-$MYHOST
   cp -r $JBOSS_HOME /keycloak-docker-shared/keycloak-$JBOSS_TYPE-$MYHOST
diff --git a/testsuite/docker-cluster/wildfly/Dockerfile b/testsuite/docker-cluster/wildfly/Dockerfile
index 6aff50b..0ed3bcc 100644
--- a/testsuite/docker-cluster/wildfly/Dockerfile
+++ b/testsuite/docker-cluster/wildfly/Dockerfile
@@ -1,4 +1,4 @@
-FROM jboss/wildfly
+FROM jboss/wildfly:8.2.0.Final
 
 USER root
 
@@ -14,7 +14,7 @@ RUN mv *.jar /mysql-connector-java-5.1.32.jar
 ADD keycloak-wildfly-trigger.sh /keycloak-wildfly-trigger.sh
 RUN chmod u+x /keycloak-wildfly-trigger.sh
 
-ENV JBOSS_HOME /opt/wildfly-8.1.0.Final
+ENV JBOSS_HOME /opt/jboss/wildfly
 ENV JBOSS_MODULES_HOME $JBOSS_HOME/modules/system/layers/base
 ENV JBOSS_TYPE wildfly
 ENV NODE_PREFIX wf