KEYCLOAK-4189 add possibility to use jdg as cache server

This commit is contained in:
vramik 2017-06-15 11:39:38 +02:00
parent a34f890453
commit 5d72def1bc
6 changed files with 157 additions and 34 deletions

View file

@ -431,12 +431,20 @@ The cross DC requires setting a profile specifying used cache server (currently
#### Run Cross-DC Tests from Maven #### Run Cross-DC Tests from Maven
First compile the Infinispan test server via the following command: First compile the Infinispan/JDG test server via the following command:
`mvn -Pcache-server-infinispan -f testsuite/integration-arquillian -DskipTests clean install` `mvn -Pcache-server-infinispan -f testsuite/integration-arquillian -DskipTests clean install`
or
`mvn -Pcache-server-jdg -f testsuite/integration-arquillian -DskipTests clean install`
Then you can run the tests using the following command (adjust the test specification according to your needs): Then you can run the tests using the following command (adjust the test specification according to your needs):
`mvn -Pcache-server-infinispan -Dtest=*.crossdc.* -pl testsuite/integration-arquillian/tests/base test` `mvn -Pcache-server-infinispan -Dtest=*.crossdc.* -pl testsuite/integration-arquillian/tests/base test`
or
`mvn -Pcache-server-jdg -Dtest=*.crossdc.* -pl testsuite/integration-arquillian/tests/base test`
_Someone using IntelliJ IDEA, please describe steps for that IDE_ _Someone using IntelliJ IDEA, please describe steps for that IDE_

View file

@ -0,0 +1,46 @@
<?xml version="1.0"?>
<!--
~ Copyright 2016 Red Hat, Inc. and/or its affiliates
~ and other contributors as indicated by the @author tags.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<parent>
<groupId>org.keycloak.testsuite</groupId>
<artifactId>integration-arquillian-servers-cache-server-jboss</artifactId>
<version>3.2.0.CR1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>integration-arquillian-servers-cache-server-jdg</artifactId>
<packaging>pom</packaging>
<name>Cache Server - JDG</name>
<properties>
<cache.server>jdg</cache.server>
<cache.server.container>cache-server-${cache.server}</cache.server.container>
<cache.server.home>${containers.home}/${cache.server.container}</cache.server.home>
<cache.server.jboss.groupId>org.infinispan.server</cache.server.jboss.groupId>
<cache.server.jboss.artifactId>infinispan-server</cache.server.jboss.artifactId>
<cache.server.jboss.version>${jdg.version}</cache.server.jboss.version>
<cache.server.jboss.unpacked.folder.name>${cache.server.jboss.artifactId}-${jdg.version}</cache.server.jboss.unpacked.folder.name>
<cache.server.worker.io-threads>${cache.default.worker.io-threads}</cache.server.worker.io-threads>
<cache.server.worker.task-max-threads>${cache.default.worker.task-max-threads}</cache.server.worker.task-max-threads>
</properties>
</project>

View file

@ -0,0 +1 @@
This file is to mark this Maven project as a valid option for building cache server artifact

View file

@ -205,6 +205,12 @@
<module>infinispan</module> <module>infinispan</module>
</modules> </modules>
</profile> </profile>
<profile>
<id>cache-server-jdg</id>
<modules>
<module>jdg</module>
</modules>
</profile>
</profiles> </profiles>
</project> </project>

View file

@ -48,6 +48,7 @@
<!-- cache server versions --> <!-- cache server versions -->
<infinispan.version>9.0.1.Final</infinispan.version> <infinispan.version>9.0.1.Final</infinispan.version>
<jdg.version>8.4.0.Final-redhat-2</jdg.version><!-- JDG 7.1.0 -->
<jboss.default.worker.io-threads>16</jboss.default.worker.io-threads> <jboss.default.worker.io-threads>16</jboss.default.worker.io-threads>
<jboss.default.worker.task-max-threads>128</jboss.default.worker.task-max-threads> <jboss.default.worker.task-max-threads>128</jboss.default.worker.task-max-threads>

View file

@ -41,7 +41,8 @@
<properties> <properties>
<auth.server>undertow</auth.server> <auth.server>undertow</auth.server>
<auth.server.undertow>true</auth.server.undertow> <auth.server.undertow>true</auth.server.undertow>
<auth.server.undertow.crossdc>true</auth.server.undertow.crossdc> <auth.server.undertow.crossdc>false</auth.server.undertow.crossdc>
<auth.server.crossdc>false</auth.server.crossdc>
<auth.server.container>auth-server-${auth.server}</auth.server.container> <auth.server.container>auth-server-${auth.server}</auth.server.container>
<auth.server.home>${containers.home}/${auth.server.container}</auth.server.home> <auth.server.home>${containers.home}/${auth.server.container}</auth.server.home>
@ -67,7 +68,7 @@
<auth.server.profile/> <auth.server.profile/>
<auth.server.feature/> <auth.server.feature/>
<cache.server>infinispan</cache.server> <cache.server>undefined</cache.server>
<cache.server.container>cache-server-${cache.server}</cache.server.container> <cache.server.container>cache-server-${cache.server}</cache.server.container>
<cache.server.home>${containers.home}/${cache.server.container}</cache.server.home> <cache.server.home>${containers.home}/${cache.server.container}</cache.server.home>
<cache.server.port.offset>1010</cache.server.port.offset> <cache.server.port.offset>1010</cache.server.port.offset>
@ -240,6 +241,22 @@
<client.key.passphrase>${client.key.passphrase}</client.key.passphrase> <client.key.passphrase>${client.key.passphrase}</client.key.passphrase>
<auth.server.ocsp.responder.enabled>${auth.server.ocsp.responder.enabled}</auth.server.ocsp.responder.enabled> <auth.server.ocsp.responder.enabled>${auth.server.ocsp.responder.enabled}</auth.server.ocsp.responder.enabled>
<!--cache server properties-->
<auth.server.crossdc>${auth.server.crossdc}</auth.server.crossdc>
<auth.server.undertow.crossdc>${auth.server.undertow.crossdc}</auth.server.undertow.crossdc>
<cache.server>${cache.server}</cache.server>
<cache.server.port.offset>${cache.server.port.offset}</cache.server.port.offset>
<cache.server.container>${cache.server.container}</cache.server.container>
<cache.server.home>${cache.server.home}</cache.server.home>
<cache.server.console.output>${cache.server.console.output}</cache.server.console.output>
<cache.server.management.port>${cache.server.management.port}</cache.server.management.port>
<keycloak.connectionsInfinispan.remoteStorePort>${keycloak.connectionsInfinispan.remoteStorePort}</keycloak.connectionsInfinispan.remoteStorePort>
<keycloak.connectionsInfinispan.remoteStoreServer>${keycloak.connectionsInfinispan.remoteStoreServer}</keycloak.connectionsInfinispan.remoteStoreServer>
<keycloak.connectionsJpa.url.crossdc>${keycloak.connectionsJpa.url.crossdc}</keycloak.connectionsJpa.url.crossdc>
</systemPropertyVariables> </systemPropertyVariables>
<properties> <properties>
<property> <property>
@ -336,6 +353,8 @@
<id>cache-server-infinispan</id> <id>cache-server-infinispan</id>
<properties> <properties>
<cache.server>infinispan</cache.server> <cache.server>infinispan</cache.server>
<auth.server.undertow.crossdc>true</auth.server.undertow.crossdc>
<auth.server.crossdc>true</auth.server.crossdc>
<cache.server.jboss>true</cache.server.jboss> <cache.server.jboss>true</cache.server.jboss>
<cache.server.config.dir>${cache.server.home}/standalone/configuration</cache.server.config.dir> <cache.server.config.dir>${cache.server.home}/standalone/configuration</cache.server.config.dir>
</properties> </properties>
@ -344,17 +363,6 @@
<groupId>org.wildfly.arquillian</groupId> <groupId>org.wildfly.arquillian</groupId>
<artifactId>wildfly-arquillian-container-managed</artifactId> <artifactId>wildfly-arquillian-container-managed</artifactId>
</dependency> </dependency>
<!-- <dependency>
<groupId>org.infinispan.arquillian.container</groupId>
<artifactId>infinispan-arquillian-impl</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-core</artifactId>
</exclusion>
</exclusions>
</dependency>-->
</dependencies> </dependencies>
<build> <build>
@ -410,26 +418,79 @@
</execution> </execution>
</executions> </executions>
</plugin> </plugin>
<plugin> </plugins>
<artifactId>maven-surefire-plugin</artifactId> </pluginManagement>
<configuration> </build>
<systemPropertyVariables> </profile>
<profile>
<id>cache-server-jdg</id>
<properties>
<cache.server>jdg</cache.server>
<auth.server.undertow.crossdc>true</auth.server.undertow.crossdc>
<auth.server.crossdc>true</auth.server.crossdc> <auth.server.crossdc>true</auth.server.crossdc>
<auth.server.undertow.crossdc>${auth.server.undertow.crossdc}</auth.server.undertow.crossdc> <cache.server.jboss>true</cache.server.jboss>
<cache.server.config.dir>${cache.server.home}/standalone/configuration</cache.server.config.dir>
</properties>
<dependencies>
<dependency>
<groupId>org.wildfly.arquillian</groupId>
<artifactId>wildfly-arquillian-container-managed</artifactId>
</dependency>
</dependencies>
<cache.server>${cache.server}</cache.server> <build>
<cache.server.port.offset>${cache.server.port.offset}</cache.server.port.offset> <plugins>
<cache.server.container>${cache.server.container}</cache.server.container> <plugin>
<cache.server.home>${cache.server.home}</cache.server.home> <artifactId>maven-enforcer-plugin</artifactId>
<cache.server.console.output>${cache.server.console.output}</cache.server.console.output> <executions>
<cache.server.management.port>${cache.server.management.port}</cache.server.management.port> <execution>
<goals>
<keycloak.connectionsInfinispan.remoteStorePort>${keycloak.connectionsInfinispan.remoteStorePort}</keycloak.connectionsInfinispan.remoteStorePort> <goal>enforce</goal>
<keycloak.connectionsInfinispan.remoteStoreServer>${keycloak.connectionsInfinispan.remoteStoreServer}</keycloak.connectionsInfinispan.remoteStoreServer> </goals>
<configuration>
<keycloak.connectionsJpa.url.crossdc>${keycloak.connectionsJpa.url.crossdc}</keycloak.connectionsJpa.url.crossdc> <rules>
</systemPropertyVariables> <!--requireActiveProfile 'auth-server-wildfly/eap' doesn't work unless the profiles are defined in all submodule poms
using requireProperty instead-->
<requireProperty>
<property>cache.server</property>
<regex>(infinispan)|(jdg)</regex>
<regexMessage>Profile "cache-server-jdg" requires activation of profile "cache-server-infinispan" or "cache-server-jdg".</regexMessage>
</requireProperty>
</rules>
</configuration> </configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack-cache-server-jdg</id>
<phase>generate-resources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.keycloak.testsuite</groupId>
<artifactId>integration-arquillian-servers-cache-server-jdg</artifactId>
<version>${project.version}</version>
<type>zip</type>
<outputDirectory>${containers.home}</outputDirectory>
</artifactItem>
</artifactItems>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin> </plugin>
</plugins> </plugins>
</pluginManagement> </pluginManagement>