From 8bb055fc9e647e3e2fd7dc511c2888552b71ba00 Mon Sep 17 00:00:00 2001 From: Sriharsha Chintalapani Date: Wed, 11 Jun 2025 22:06:08 -0700 Subject: [PATCH] Fix #21506: Upgrade to Java 21 (#21507) * Fix #21506: Upgrade to Java 21 * Fix #1655: Upgrade to Java 21 --- .github/actions/prepare-for-docker-build/action.yml | 4 ++-- .../setup-openmetadata-test-environment/action.yml | 4 ++-- .github/workflows/airflow-apis-tests.yml | 4 ++-- .github/workflows/docker-openmetadata-server.yml | 4 ++-- .github/workflows/java-checkstyle.yml | 4 ++-- .github/workflows/maven-build.yml | 4 ++-- .github/workflows/maven-postgres-tests-build.yml | 4 ++-- .github/workflows/maven-sonar-build.yml | 4 ++-- .github/workflows/publish-maven-package.yml | 4 ++-- .github/workflows/py-nox-ci.yml | 4 ++-- .github/workflows/security-scan.yml | 4 ++-- .github/workflows/selenium-noIngestion-tests.yml | 4 ++-- bin/openmetadata-server-start.sh | 13 ++++--------- docker/development/Dockerfile | 2 +- docker/docker-compose-quickstart/Dockerfile | 2 +- .../openmetadata-java-client/pom.xml | 2 +- openmetadata-clients/pom.xml | 4 ++-- openmetadata-spec/pom.xml | 4 ++-- pom.xml | 4 ++-- 19 files changed, 37 insertions(+), 42 deletions(-) diff --git a/.github/actions/prepare-for-docker-build/action.yml b/.github/actions/prepare-for-docker-build/action.yml index d14cdca7dfd..26d8c80d509 100644 --- a/.github/actions/prepare-for-docker-build/action.yml +++ b/.github/actions/prepare-for-docker-build/action.yml @@ -30,11 +30,11 @@ runs: sudo apt-get update sudo apt-get install -y unixodbc-dev python3-venv librdkafka-dev gcc libsasl2-dev build-essential libssl-dev libffi-dev \ librdkafka-dev unixodbc-dev libevent-dev wkhtmltopdf libkrb5-dev jq - - name: Set up JDK 17 + - name: Set up JDK 21 if: inputs.is_ingestion == 'false' uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: 'temurin' - name: Install antlr cli diff --git a/.github/actions/setup-openmetadata-test-environment/action.yml b/.github/actions/setup-openmetadata-test-environment/action.yml index f484ff5a158..1a13b097d74 100644 --- a/.github/actions/setup-openmetadata-test-environment/action.yml +++ b/.github/actions/setup-openmetadata-test-environment/action.yml @@ -26,10 +26,10 @@ runs: # ------------------------------------------------------------------------------ # ---- Setup Java -------------------------------------------------------------- - - name: Setup JDK 17 + - name: Setup JDK 21 uses: actions/setup-java@v4 with: - java-version: '17' + java-version: '21' distribution: 'temurin' # ------------------------------------------------------------------------------ diff --git a/.github/workflows/airflow-apis-tests.yml b/.github/workflows/airflow-apis-tests.yml index c0174ff11fb..cb0662d4986 100644 --- a/.github/workflows/airflow-apis-tests.yml +++ b/.github/workflows/airflow-apis-tests.yml @@ -62,10 +62,10 @@ jobs: ref: ${{ github.event.pull_request.head.sha }} fetch-depth: 0 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: - java-version: '17' + java-version: '21' distribution: 'temurin' - name: Set up Python 3.10 diff --git a/.github/workflows/docker-openmetadata-server.yml b/.github/workflows/docker-openmetadata-server.yml index 5955f4a8b5e..945d584b68b 100644 --- a/.github/workflows/docker-openmetadata-server.yml +++ b/.github/workflows/docker-openmetadata-server.yml @@ -27,10 +27,10 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: 'temurin' - name: Install antlr cli diff --git a/.github/workflows/java-checkstyle.yml b/.github/workflows/java-checkstyle.yml index da6d753414f..5513fdc35ec 100644 --- a/.github/workflows/java-checkstyle.yml +++ b/.github/workflows/java-checkstyle.yml @@ -67,10 +67,10 @@ jobs: with: ref: ${{ github.event.pull_request.head.sha }} - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: - java-version: '17' + java-version: '21' distribution: 'temurin' - name: Run checkstyle diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index 79207e78ae5..f7a25aadfa0 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -84,11 +84,11 @@ jobs: restore-keys: | ${{ runner.os }}-maven- - - name: Set up JDK 17 + - name: Set up JDK 21 if: steps.cache-output.outputs.exit-code == 0 uses: actions/setup-java@v4 with: - java-version: '17' + java-version: '21' distribution: 'temurin' - name: Install Ubuntu dependencies diff --git a/.github/workflows/maven-postgres-tests-build.yml b/.github/workflows/maven-postgres-tests-build.yml index 76e9408639b..c4c2d6482a4 100644 --- a/.github/workflows/maven-postgres-tests-build.yml +++ b/.github/workflows/maven-postgres-tests-build.yml @@ -83,11 +83,11 @@ jobs: restore-keys: | ${{ runner.os }}-maven- - - name: Set up JDK 17 + - name: Set up JDK 21 if: steps.cache-output.outputs.exit-code == 0 uses: actions/setup-java@v4 with: - java-version: '17' + java-version: '21' distribution: 'temurin' - name: Install Ubuntu dependencies diff --git a/.github/workflows/maven-sonar-build.yml b/.github/workflows/maven-sonar-build.yml index ff06693ef13..4509938da6d 100644 --- a/.github/workflows/maven-sonar-build.yml +++ b/.github/workflows/maven-sonar-build.yml @@ -70,11 +70,11 @@ jobs: restore-keys: | ${{ runner.os }}-maven- - - name: Set up JDK 17 + - name: Set up JDK 21 if: steps.cache-output.outputs.exit-code == 0 uses: actions/setup-java@v4 with: - java-version: "17" + java-version: "21" distribution: "temurin" - name: Install Ubuntu dependencies diff --git a/.github/workflows/publish-maven-package.yml b/.github/workflows/publish-maven-package.yml index 02e92be065b..5583a7f69b5 100644 --- a/.github/workflows/publish-maven-package.yml +++ b/.github/workflows/publish-maven-package.yml @@ -43,10 +43,10 @@ jobs: swap-storage: true - uses: actions/checkout@v4 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: "temurin" server-id: ossrh server-username: MAVEN_USERNAME diff --git a/.github/workflows/py-nox-ci.yml b/.github/workflows/py-nox-ci.yml index c3801d420c4..0fb0a3584e0 100644 --- a/.github/workflows/py-nox-ci.yml +++ b/.github/workflows/py-nox-ci.yml @@ -31,10 +31,10 @@ jobs: sudo apt-get update sudo apt-get install -y libkrb5-dev build-essential - - name: Setup JDK 17 + - name: Setup JDK 21 uses: actions/setup-java@v4 with: - java-version: '17' + java-version: '21' distribution: 'temurin' - name: Generate Python Data Models diff --git a/.github/workflows/security-scan.yml b/.github/workflows/security-scan.yml index dfe6fc1e3c4..306f11c4361 100644 --- a/.github/workflows/security-scan.yml +++ b/.github/workflows/security-scan.yml @@ -41,10 +41,10 @@ jobs: with: python-version: 3.9 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: - java-version: '17' + java-version: '21' distribution: 'temurin' - name: Install Ubuntu dependencies diff --git a/.github/workflows/selenium-noIngestion-tests.yml b/.github/workflows/selenium-noIngestion-tests.yml index ccaa8918f61..f14f4c790a1 100644 --- a/.github/workflows/selenium-noIngestion-tests.yml +++ b/.github/workflows/selenium-noIngestion-tests.yml @@ -46,10 +46,10 @@ jobs: docker-images: true swap-storage: true - uses: actions/checkout@v4 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: - java-version: '17' + java-version: '21' distribution: 'temurin' - name: Generating Data Models diff --git a/bin/openmetadata-server-start.sh b/bin/openmetadata-server-start.sh index 34237f7d94b..b4ff868a717 100644 --- a/bin/openmetadata-server-start.sh +++ b/bin/openmetadata-server-start.sh @@ -96,21 +96,16 @@ if [ "x$OPENMETADATA_DEBUG" != "x" ]; then OPENMETADATA_OPTS="$JAVA_DEBUG_OPTS $OPENMETADATA_OPTS" fi -# GC options +# GC options for Java 21 GC_LOG_FILE_NAME='openmetadata-gc.log' if [ -z "$OPENMETADATA_GC_LOG_OPTS" ]; then - JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([0-9]*).*$/\1/p') - if [[ "$JAVA_MAJOR_VERSION" -ge "9" ]] ; then - OPENMETADATA_GC_LOG_OPTS="-Xlog:gc*:file=$LOG_DIR/$GC_LOG_FILE_NAME:time,tags:filecount=10,filesize=102400" - else - OPENMETADATA_GC_LOG_OPTS="-Xloggc:$LOG_DIR/$GC_LOG_FILE_NAME -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M" - fi + OPENMETADATA_GC_LOG_OPTS="-Xlog:gc*,gc+heap=info,gc+ergo=debug:file=$LOG_DIR/$GC_LOG_FILE_NAME:time,level,tags:filecount=10,filesize=102400" fi -# JVM performance options +# JVM performance options optimized for Java 21 if [ -z "$OPENMETADATA_JVM_PERFORMANCE_OPTS" ]; then - OPENMETADATA_JVM_PERFORMANCE_OPTS="-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -Djava.awt.headless=true" + OPENMETADATA_JVM_PERFORMANCE_OPTS="-server -XX:+UseG1GC -XX:+UseStringDeduplication -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -XX:+UseLargePages -XX:+OptimizeStringConcat -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -Djava.awt.headless=true" fi #Application classname diff --git a/docker/development/Dockerfile b/docker/development/Dockerfile index 68535876503..4b77b240341 100644 --- a/docker/development/Dockerfile +++ b/docker/development/Dockerfile @@ -26,7 +26,7 @@ EXPOSE 8585 RUN adduser -D openmetadata && \ apk update && \ apk upgrade && \ - apk add --update --no-cache bash openjdk17-jre + apk add --update --no-cache bash openjdk21-jre COPY --chown=openmetadata:openmetadata --from=build /opt/openmetadata /opt/openmetadata COPY --chmod=755 docker/openmetadata-start.sh / diff --git a/docker/docker-compose-quickstart/Dockerfile b/docker/docker-compose-quickstart/Dockerfile index 4a2f0991ab6..29fb8e225f2 100644 --- a/docker/docker-compose-quickstart/Dockerfile +++ b/docker/docker-compose-quickstart/Dockerfile @@ -37,7 +37,7 @@ LABEL org.open-metadata.commit-id=$COMMIT_ID EXPOSE 8585 8586 RUN adduser -D openmetadata && apk update && \ apk upgrade && \ - apk add --update --no-cache bash openjdk17-jre + apk add --update --no-cache bash openjdk21-jre COPY --chown=openmetadata:openmetadata --from=build /opt/openmetadata /opt/openmetadata COPY --chmod=755 docker/openmetadata-start.sh ./ diff --git a/openmetadata-clients/openmetadata-java-client/pom.xml b/openmetadata-clients/openmetadata-java-client/pom.xml index 006eb18a5a9..549d7f05a9f 100644 --- a/openmetadata-clients/openmetadata-java-client/pom.xml +++ b/openmetadata-clients/openmetadata-java-client/pom.xml @@ -11,7 +11,7 @@ openmetadata-java-client - 17 + 21 ${java.version} ${java.version} 2.7.0 diff --git a/openmetadata-clients/pom.xml b/openmetadata-clients/pom.xml index a6e588d1549..d0b82131174 100644 --- a/openmetadata-clients/pom.xml +++ b/openmetadata-clients/pom.xml @@ -15,8 +15,8 @@ openmetadata-java-client - 17 - 17 + 21 + 21 diff --git a/openmetadata-spec/pom.xml b/openmetadata-spec/pom.xml index 2fcd61943aa..a37d249d7f8 100644 --- a/openmetadata-spec/pom.xml +++ b/openmetadata-spec/pom.xml @@ -12,8 +12,8 @@ openmetadata-spec - 17 - 17 + 21 + 21 2.0.12-1 3.6.0 3.3.1 diff --git a/pom.xml b/pom.xml index 3bd80084a4e..5c2493c46e9 100644 --- a/pom.xml +++ b/pom.xml @@ -915,8 +915,8 @@ maven-compiler-plugin 3.13.0 - 17 - 17 + 21 + 21 org.projectlombok