From 5aa602a53bc91e2f4889fcaaeb78677f759c716e Mon Sep 17 00:00:00 2001 From: Piotr Bulawa Date: Thu, 20 Jun 2024 09:13:27 +0200 Subject: [PATCH 1/6] Prepare docker image and dependencies for Java 21 --- ci/_init.sh | 5 ++++- ci/image/Dockerfile.jdbc-centos7-openjdk-test | 20 ++++++++++++++++++- parent-pom.xml | 6 ++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/ci/_init.sh b/ci/_init.sh index c91f03c31..5df299949 100755 --- a/ci/_init.sh +++ b/ci/_init.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/local/bin/env bash set -e export PLATFORM=$(echo $(uname) | tr '[:upper:]' '[:lower:]') @@ -23,6 +23,7 @@ declare -A TEST_IMAGE_NAMES=( [$DRIVER_NAME-centos7-openjdk8]=$DOCKER_REGISTRY_NAME/client-$DRIVER_NAME-centos7-openjdk8-test:$TEST_IMAGE_VERSION [$DRIVER_NAME-centos7-openjdk11]=$DOCKER_REGISTRY_NAME/client-$DRIVER_NAME-centos7-openjdk11-test:$TEST_IMAGE_VERSION [$DRIVER_NAME-centos7-openjdk17]=$DOCKER_REGISTRY_NAME/client-$DRIVER_NAME-centos7-openjdk17-test:$TEST_IMAGE_VERSION + [$DRIVER_NAME-centos7-openjdk21]=$DOCKER_REGISTRY_NAME/client-$DRIVER_NAME-centos7-openjdk21-test:$TEST_IMAGE_VERSION ) export TEST_IMAGE_NAMES @@ -30,11 +31,13 @@ declare -A TEST_IMAGE_DOCKERFILES=( [$DRIVER_NAME-centos7-openjdk8]=jdbc-centos7-openjdk-test [$DRIVER_NAME-centos7-openjdk11]=jdbc-centos7-openjdk-test [$DRIVER_NAME-centos7-openjdk17]=jdbc-centos7-openjdk-test + [$DRIVER_NAME-centos7-openjdk21]=jdbc-centos7-openjdk-test ) declare -A TEST_IMAGE_BUILD_ARGS=( [$DRIVER_NAME-centos7-openjdk8]="--target jdbc-centos7-openjdk-yum --build-arg=JDK_PACKAGE=java-1.8.0-openjdk-devel" [$DRIVER_NAME-centos7-openjdk11]="--target jdbc-centos7-openjdk-yum --build-arg=JDK_PACKAGE=java-11-openjdk-devel" # pragma: allowlist secret [$DRIVER_NAME-centos7-openjdk17]="--target jdbc-centos7-openjdk17" + [$DRIVER_NAME-centos7-openjdk21]="--target jdbc-centos7-openjdk21" ) diff --git a/ci/image/Dockerfile.jdbc-centos7-openjdk-test b/ci/image/Dockerfile.jdbc-centos7-openjdk-test index 15e351530..e6adfb975 100644 --- a/ci/image/Dockerfile.jdbc-centos7-openjdk-test +++ b/ci/image/Dockerfile.jdbc-centos7-openjdk-test @@ -88,4 +88,22 @@ RUN export JAVA_HOME=/opt/jdk-17 && \ -Dnot-self-contained-jar \ --batch-mode --fail-never compile && \ mv $HOME/.m2 /home/user && \ - chmod -R 777 /home/user/.m2 \ No newline at end of file + chmod -R 777 /home/user/.m2 + +###### OpenJDK 21 from archive (not available in yum) +FROM jdbc-centos7-openjdk-base AS jdbc-centos7-openjdk21 + +# Java +RUN curl -o - https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz | tar xfz - -C /opt && \ + ln -s /opt/jdk-21.0.2 /opt/jdk-21 + +RUN sed -i /usr/local/bin/entrypoint.sh -e '/^exec/i export JAVA_HOME=/opt/jdk-21' +RUN sed -i /usr/local/bin/entrypoint.sh -e '/^exec/i export PATH=$JAVA_HOME/bin:$PATH' + +RUN export JAVA_HOME=/opt/jdk-21 && \ + cd /root && \ + mvn -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn \ + -Dnot-self-contained-jar \ + --batch-mode --fail-never compile && \ + mv $HOME/.m2 /home/user && \ + chmod -R 777 /home/user/.m2 diff --git a/parent-pom.xml b/parent-pom.xml index 1c5ab3c2f..c2ef01d60 100644 --- a/parent-pom.xml +++ b/parent-pom.xml @@ -28,6 +28,7 @@ 1.74 1.0.2.4 1.0.5 + 1.14.17 1.1 3.33.0 1.2 @@ -482,6 +483,11 @@ ${mockito.version} test + + net.bytebuddy + byte-buddy + ${bytebuddy.version} + org.awaitility awaitility From ab0d033a0b1d2a20c10d8056e2d8182e134aff4f Mon Sep 17 00:00:00 2001 From: Piotr Bulawa Date: Thu, 20 Jun 2024 09:58:11 +0200 Subject: [PATCH 2/6] Add test scope for bytebuddy --- parent-pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/parent-pom.xml b/parent-pom.xml index c2ef01d60..0c4b86a0e 100644 --- a/parent-pom.xml +++ b/parent-pom.xml @@ -487,6 +487,7 @@ net.bytebuddy byte-buddy ${bytebuddy.version} + test org.awaitility From b73e8b619851e9f2310cc94073cc20496cc84b09 Mon Sep 17 00:00:00 2001 From: Piotr Bulawa Date: Thu, 20 Jun 2024 12:44:57 +0200 Subject: [PATCH 3/6] Add JDK 21 image to Jenkinsfile --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 5e62aab1b..8e5925b8c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -56,7 +56,7 @@ timestamps { e.printStackTrace() } - jdkToParams = ['openjdk8': 'jdbc-centos7-openjdk8', 'openjdk11': 'jdbc-centos7-openjdk11', 'openjdk17': 'jdbc-centos7-openjdk17'].collectEntries { jdk, image -> + jdkToParams = ['openjdk8': 'jdbc-centos7-openjdk8', 'openjdk11': 'jdbc-centos7-openjdk11', 'openjdk17': 'jdbc-centos7-openjdk17', 'openjdk21': 'jdbc-centos7-openjdk21'].collectEntries { jdk, image -> return [(jdk): [ string(name: 'client_git_branch', value: scmInfo.GIT_BRANCH), string(name: 'client_git_commit', value: scmInfo.GIT_COMMIT), From 2b95c59f178382ef43e62ec7c0580656ddb64704 Mon Sep 17 00:00:00 2001 From: Piotr Bulawa Date: Mon, 24 Jun 2024 08:55:38 +0200 Subject: [PATCH 4/6] Remove unnecessary cloud array --- .github/workflows/build-test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index ad3d196af..b36173294 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -43,7 +43,8 @@ jobs: strategy: fail-fast: false matrix: - runConfig: [ {cloud: 'AWS', javaVersion: '8'}, {cloud: 'GCP', javaVersion: '11'}, {cloud: 'AZURE', javaVersion: '17'}] + javaVersion: [ '8', '11', '17', '21'] + runConfig: [ {cloud: 'AWS', javaVersion: '8'}, {cloud: 'GCP', javaVersion: '11'}, {cloud: 'AZURE', javaVersion: '17'}, {cloud: 'AWS', javaVersion: '21'}] category: ['TestCategoryResultSet,TestCategoryOthers,TestCategoryLoader', 'TestCategoryConnection,TestCategoryStatement', 'TestCategoryArrow,TestCategoryCore', 'TestCategoryFips'] additionalMavenProfile: [''] steps: From 51611c08e7935f5b2150966c36506a0035600843 Mon Sep 17 00:00:00 2001 From: Piotr Bulawa Date: Mon, 24 Jun 2024 11:02:14 +0200 Subject: [PATCH 5/6] Remove unnecessary java version array --- .github/workflows/build-test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index b36173294..9f9dc9d5f 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -43,7 +43,6 @@ jobs: strategy: fail-fast: false matrix: - javaVersion: [ '8', '11', '17', '21'] runConfig: [ {cloud: 'AWS', javaVersion: '8'}, {cloud: 'GCP', javaVersion: '11'}, {cloud: 'AZURE', javaVersion: '17'}, {cloud: 'AWS', javaVersion: '21'}] category: ['TestCategoryResultSet,TestCategoryOthers,TestCategoryLoader', 'TestCategoryConnection,TestCategoryStatement', 'TestCategoryArrow,TestCategoryCore', 'TestCategoryFips'] additionalMavenProfile: [''] From 0c715896d4f72cd0a61f5c8edea08c1a7c0dbf64 Mon Sep 17 00:00:00 2001 From: Piotr Bulawa Date: Mon, 24 Jun 2024 11:24:35 +0200 Subject: [PATCH 6/6] Fix missing matrix entry --- .github/workflows/build-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 9f9dc9d5f..90b03180f 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -73,7 +73,7 @@ jobs: strategy: fail-fast: false matrix: - runConfig: [ {cloud: 'AWS', javaVersion: '8'}, {cloud: 'GCP', javaVersion: '11'}, {cloud: 'AZURE', javaVersion: '17'}] + runConfig: [ {cloud: 'AWS', javaVersion: '8'}, {cloud: 'GCP', javaVersion: '11'}, {cloud: 'AZURE', javaVersion: '17'}, {cloud: 'AWS', javaVersion: '21'}] category: ['TestCategoryResultSet,TestCategoryOthers,TestCategoryLoader', 'TestCategoryConnection,TestCategoryStatement', 'TestCategoryArrow,TestCategoryCore', 'TestCategoryFips'] additionalMavenProfile: [''] steps: @@ -105,7 +105,7 @@ jobs: strategy: fail-fast: false matrix: - image: [ 'jdbc-centos7-openjdk8', 'jdbc-centos7-openjdk11', 'jdbc-centos7-openjdk17' ] + image: [ 'jdbc-centos7-openjdk8', 'jdbc-centos7-openjdk11', 'jdbc-centos7-openjdk17', 'jdbc-centos7-openjdk21' ] cloud: [ 'AWS', 'AZURE', 'GCP' ] category: ['TestCategoryResultSet,TestCategoryOthers,TestCategoryLoader', 'TestCategoryConnection,TestCategoryStatement', 'TestCategoryArrow,TestCategoryCore', 'TestCategoryFips'] additionalMavenProfile: ['', '-Dthin-jar']