From a2f027ee00d0c2a686aad62616969838fef35686 Mon Sep 17 00:00:00 2001 From: Ryan Emerson Date: Mon, 19 Feb 2024 11:11:25 +0000 Subject: [PATCH] Use AWS JDBC Wrapper in CI tests. Resolves #27123 Signed-off-by: Ryan Emerson --- .github/workflows/ci.yml | 2 +- testsuite/integration-arquillian/pom.xml | 12 +++---- .../servers/auth-server/quarkus/pom.xml | 31 ++++++++++++++++++ .../testsuite/model/StoreProvider.java | 32 +++++++++++-------- 4 files changed, 56 insertions(+), 21 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c5fa9dcd698..561370f9bd4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -372,7 +372,7 @@ jobs: ./aws_ec2.sh create ${REGION} ./keycloak_ec2_installer.sh ${REGION} /tmp/keycloak.zip ./mvn_ec2_runner.sh ${REGION} "clean install -B -DskipTests -Pdistribution" - ./mvn_ec2_runner.sh ${REGION} "clean install -B -DskipTests -pl testsuite/integration-arquillian/servers/auth-server/quarkus -Pauth-server-quarkus -Dmaven.build.cache.enabled=true" + ./mvn_ec2_runner.sh ${REGION} "clean install -B -DskipTests -pl testsuite/integration-arquillian/servers/auth-server/quarkus -Pauth-server-quarkus -Pdb-aurora-postgres -Dmaven.build.cache.enabled=true" ./mvn_ec2_runner.sh ${REGION} "test -B ${{ env.SUREFIRE_RETRY }} -Pauth-server-quarkus -Pdb-${{ matrix.db }} $PROPS -Dtest=$TESTS -pl testsuite/integration-arquillian/tests/base 2>&1 | misc/log/trimmer.sh" # Copy returned surefire-report directories to workspace root to ensure they're discovered diff --git a/testsuite/integration-arquillian/pom.xml b/testsuite/integration-arquillian/pom.xml index 25bb4e15a66..3ec43f7bb98 100644 --- a/testsuite/integration-arquillian/pom.xml +++ b/testsuite/integration-arquillian/pom.xml @@ -505,19 +505,19 @@ db-aurora-postgres - postgres - org.postgresql.Driver + aurora-postgres + software.amazon.jdbc.Driver keycloak keycloak secret99 - jdbc:postgresql://${auth.server.db.host}/${keycloak.connectionsJpa.database}${keycloak.connectionsJpa.jdbcParameters} + jdbc:aws-wrapper:postgresql://${auth.server.db.host}/${keycloak.connectionsJpa.database}${keycloak.connectionsJpa.jdbcParameters} - org.postgresql - postgresql - ${postgresql-jdbc.version} + software.amazon.jdbc + aws-advanced-jdbc-wrapper + ${aws-jdbc-wrapper.version} diff --git a/testsuite/integration-arquillian/servers/auth-server/quarkus/pom.xml b/testsuite/integration-arquillian/servers/auth-server/quarkus/pom.xml index 1d6c3b44067..6bbd8ab3e41 100644 --- a/testsuite/integration-arquillian/servers/auth-server/quarkus/pom.xml +++ b/testsuite/integration-arquillian/servers/auth-server/quarkus/pom.xml @@ -387,5 +387,36 @@ + + + db-aurora-postgres + + + + maven-dependency-plugin + + + includeProprietaryDependencies + generate-resources + + copy + + + + + software.amazon.jdbc + aws-advanced-jdbc-wrapper + ${aws-jdbc-wrapper.version} + jar + ${auth.server.home}/providers + + + + + + + + + diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/model/StoreProvider.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/model/StoreProvider.java index c5bbbb64a05..fc215dc0362 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/model/StoreProvider.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/model/StoreProvider.java @@ -31,27 +31,31 @@ public enum StoreProvider { JPA("jpa") { @Override public void addStoreOptions(List commands) { - getDbVendor().ifPresent(vendor -> commands.add("--db=" + vendor)); - commands.add("--db-username=" + System.getProperty("keycloak.connectionsJpa.user")); - commands.add("--db-password=" + System.getProperty("keycloak.connectionsJpa.password")); - if ("mssql".equals(getDbVendor().orElse(null))){ - commands.add("--transaction-xa-enabled=false"); - } - commands.add("--db-url=" + System.getProperty("keycloak.connectionsJpa.url")); + addOptions("--", commands); } @Override public List getStoreOptionsToKeycloakConfImport() { List options = new ArrayList<>(); - getDbVendor().ifPresent(vendor -> options.add("db=" + vendor)); - options.add("db-url=" + System.getProperty("keycloak.connectionsJpa.url")); - options.add("db-username=" + System.getProperty("keycloak.connectionsJpa.user")); - options.add("db-password=" + System.getProperty("keycloak.connectionsJpa.password")); - if ("mssql".equals(getDbVendor().orElse(null))){ - options.add("transaction-xa-enabled=false"); - } + addOptions("", options); return options; } + + private void addOptions(String prefix, List options) { + getDbVendor().ifPresent(vendor -> { + if ("mssql".equals(vendor)) { + options.add(prefix + "transaction-xa-enabled=false"); + } else if ("aurora-postgres".equals(vendor)){ + vendor = "postgres"; + options.add(prefix + "db-driver=" + System.getProperty("keycloak.connectionsJpa.driver")); + options.add(prefix + "transaction-xa-enabled=false"); + } + options.add(prefix + "db=" + vendor); + }); + options.add(prefix + "db-username=" + System.getProperty("keycloak.connectionsJpa.user")); + options.add(prefix + "db-password=" + System.getProperty("keycloak.connectionsJpa.password")); + options.add(prefix + "db-url=" + System.getProperty("keycloak.connectionsJpa.url")); + } }, DEFAULT("default") { @Override