From 123c058d0ade84f2a3dc49b8e80448b5c42fcbef Mon Sep 17 00:00:00 2001 From: Dongjoon Hyun Date: Tue, 29 Apr 2025 10:25:03 -0700 Subject: [PATCH] [SPARK-51953] Support Java 24 --- .github/workflows/build_and_test.yml | 2 +- build-tools/docker/Dockerfile | 2 +- .../spark-kubernetes-operator/values.yaml | 2 ++ build.gradle | 33 +++++++++++-------- gradle/libs.versions.toml | 8 ++--- gradlew | 2 +- 6 files changed, 28 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index f37f2e2f..d8eefd97 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -33,7 +33,7 @@ jobs: fail-fast: false matrix: os: [ 'ubuntu-latest', 'ubuntu-24.04-arm' ] - java-version: [ 17, 21 ] + java-version: [ 17, 21, 24 ] steps: - name: Checkout repository uses: actions/checkout@v3 diff --git a/build-tools/docker/Dockerfile b/build-tools/docker/Dockerfile index 5f6a92f8..725f5598 100644 --- a/build-tools/docker/Dockerfile +++ b/build-tools/docker/Dockerfile @@ -22,7 +22,7 @@ COPY . . RUN --mount=type=cache,target=/home/gradle/.gradle/caches gradle --no-daemon clean build -x check -FROM azul/zulu-openjdk:21-jre +FROM azul/zulu-openjdk:24-jre ARG APP_VERSION=0.1.0-SNAPSHOT ARG SPARK_UID=185 diff --git a/build-tools/helm/spark-kubernetes-operator/values.yaml b/build-tools/helm/spark-kubernetes-operator/values.yaml index 85ff2111..53c387ee 100644 --- a/build-tools/helm/spark-kubernetes-operator/values.yaml +++ b/build-tools/helm/spark-kubernetes-operator/values.yaml @@ -43,6 +43,8 @@ operatorDeployment: operatorContainer: jvmArgs: "-Dfile.encoding=UTF8" env: + - name: "SPARK_USER" + value: "spark" envFrom: volumeMounts: { } resources: diff --git a/build.gradle b/build.gradle index 8ba73432..223c7e9d 100644 --- a/build.gradle +++ b/build.gradle @@ -58,6 +58,9 @@ subprojects { repositories { mavenCentral() + maven { + url = "https://repository.apache.org/content/repositories/snapshots/" + } } apply plugin: 'checkstyle' @@ -68,22 +71,24 @@ subprojects { showViolations = true } - apply plugin: 'pmd' - pmd { - ruleSetFiles = files("$rootDir/config/pmd/ruleset.xml") - toolVersion = libs.versions.pmd.get() - consoleOutput = true - ignoreFailures = false - } + if (JavaVersion.current() < JavaVersion.VERSION_24) { + apply plugin: 'pmd' + pmd { + ruleSetFiles = files("$rootDir/config/pmd/ruleset.xml") + toolVersion = libs.versions.pmd.get() + consoleOutput = true + ignoreFailures = false + } - apply plugin: 'com.github.spotbugs' - spotbugs { - toolVersion = libs.versions.spotbugs.tool.get() - afterEvaluate { - reportsDir = file("${project.reporting.baseDir}/findbugs") + apply plugin: 'com.github.spotbugs' + spotbugs { + toolVersion = libs.versions.spotbugs.tool.get() + afterEvaluate { + reportsDir = file("${project.reporting.baseDir}/findbugs") + } + excludeFilter = file("$rootDir/config/spotbugs/spotbugs_exclude.xml") + ignoreFailures = false } - excludeFilter = file("$rootDir/config/spotbugs/spotbugs_exclude.xml") - ignoreFailures = false } apply plugin: 'jacoco' diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d766f1fa..2b0f6e9c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -16,17 +16,17 @@ # under the License. [versions] fabric8 = "7.1.0" -lombok = "1.18.32" +lombok = "1.18.38" operator-sdk = "4.9.0" okhttp = "4.12.0" dropwizard-metrics = "4.2.25" -spark = "4.0.0-preview2" +spark = "4.0.1-SNAPSHOT" log4j = "2.24.2" # Test junit = "5.10.2" -jacoco = "0.8.12" -mockito = "5.11.0" +jacoco = "0.8.13" +mockito = "5.17.0" powermock = "2.0.9" # Build Analysis diff --git a/gradlew b/gradlew index 21bed9b4..118b4abe 100755 --- a/gradlew +++ b/gradlew @@ -210,7 +210,7 @@ fi # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m" "--enable-native-access=ALL-UNNAMED"' # Collect all arguments for the java command: # * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,