Skip to content

Commit 988f98c

Browse files
Migrate corfudb-cloud to JDK 25 (#283)
## Changes Made ### Gradle Wrapper (6 files) - Upgraded Gradle from 8.10 to 9.1.0 across all subprojects (root, universe, tests, benchmarks, cloud/infrastructure, cloud/corfu/corfu-client-example). Gradle 9.1.0 is required for JDK 25 support (8.10 only supports up to Java 23). ### Java Compilation (gradle/java.gradle) - sourceCompatibility and targetCompatibility updated from VERSION_21 to VERSION_25. - Added --add-opens JVM flags for JDK 25's stricter module encapsulation: java.base/java.net, java.base/java.lang, java.base/java.util, java.base/java.lang.reflect, java.base/java.io, java.management/sun.management, jdk.attach/sun.tools.attach. - Added testRuntimeOnly dependency on junit-platform-launcher:1.5.2 (required by Gradle 9.x - JUnit Platform launcher must be explicitly on the test runtime classpath). ### Groovy/Gradle 9.x API Compatibility (gradle/idea.gradle) - groovy.util.XmlParser -> groovy.xml.XmlParser (moved in Groovy 4.x) - QName import changed from groovy.xml.* to groovy.namespace.QName - compileJava.destinationDir -> compileJava.destinationDirectory.asFile.get() (destinationDir removed in Gradle 9.x) ### Gradle 9.x API Compatibility (gradle/universe.gradle) - JavaExec.main -> JavaExec.mainClass.set() (main property removed in Gradle 9.x) for deployment and shutdown tasks. ### Lombok Plugin Upgrade (4 files) - io.freefair.lombok upgraded from 8.12.1 to 9.2.0 in: universe/universe-core/build.gradle.kts universe/universe-infrastructure/build.gradle.kts tests/build.gradle.kts benchmarks/build.gradle.kts (8.12.1 is incompatible with Gradle 9.x; 9.2.0 bundles Lombok 1.18.40+ which supports JDK 25) ### Protobuf Plugin Upgrade (2 files) - com.google.protobuf upgraded from 0.9.3 to 0.9.6 in: benchmarks/build.gradle.kts tests/build.gradle.kts (0.9.3 uses Configuration.fileCollection() which was removed in Gradle 9.x) ### Palantir Docker Plugin Upgrade (3 files) - com.palantir.docker upgraded from 0.36.0 to 0.37.0 in: tests/build.gradle.kts cloud/infrastructure/integration-tools/build.gradle.kts cloud/infrastructure/kibana/kibana-tools/build.gradle.kts (0.36.0 uses ImmutableAttributesFactory internal API removed in Gradle 9.x) - Added pluginManagement block with Maven Central repository and resolutionStrategy in tests/settings.gradle.kts (0.37.0 is published to Maven Central but not the Gradle Plugin Portal). ### Checkstyle Fix (FakeDns.java) - Added missing blank line before class declaration - Added braces to single-line if statement ### GitHub Actions Workflows (4 files) - pull_request_universe.yml: java-version 21 -> 25 - pull_request_benchmarks.yml: java-version 21 -> 25 - publish-universe-artifacts.yml: java-version 21 -> 25 - run_benchmarks.yml: java-version 21 -> 25 ### Dockerfiles (5 files) - tests/Dockerfile: openjdk:21-bullseye -> eclipse-temurin:25-jdk-noble - benchmarks/Dockerfile: openjdk:21-bullseye -> eclipse-temurin:25-jdk-noble - cloud/corfu/corfu-client-example/Dockerfile: openjdk:21-bullseye -> eclipse-temurin:25-jdk-noble - cloud/infrastructure/integration-tools/Dockerfile: openjdk:21-bullseye -> eclipse-temurin:25-jdk-noble - cloud/infrastructure/kibana/kibana-tools/Dockerfile: openjdk:21-bullseye -> eclipse-temurin:25-jdk-noble Note: Also migrated from deprecated openjdk Docker images to eclipse-temurin (Adoptium), which is the recommended OpenJDK distribution. Verified locally with JDK 25.0.2: - ./gradlew check passes in universe/ - ./gradlew check passes in benchmarks/ - ./gradlew compileJava compileTestJava passes in tests/ (tests/check has pre-existing checkstyle and Docker integration test failures unrelated to JDK migration)
1 parent 3f09b77 commit 988f98c

26 files changed

Lines changed: 60 additions & 34 deletions

File tree

.github/workflows/publish-universe-artifacts.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
uses: actions/setup-java@v4
2727
with:
2828
distribution: 'corretto'
29-
java-version: '21'
29+
java-version: '25'
3030
check-latest: true
3131
cache-dependency-path: '**/pom.xml'
3232

.github/workflows/pull_request_benchmarks.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
uses: actions/setup-java@v4
2323
with:
2424
distribution: 'corretto'
25-
java-version: '21'
25+
java-version: '25'
2626
check-latest: true
2727
cache-dependency-path: '**/pom.xml'
2828

.github/workflows/pull_request_universe.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
uses: actions/setup-java@v4
2424
with:
2525
distribution: 'corretto'
26-
java-version: '21'
26+
java-version: '25'
2727
check-latest: true
2828
cache-dependency-path: '**/pom.xml'
2929

.github/workflows/run_benchmarks.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
uses: actions/setup-java@v4
2626
with:
2727
distribution: 'corretto'
28-
java-version: '21'
28+
java-version: '25'
2929
check-latest: true
3030
cache-dependency-path: '**/pom.xml'
3131

benchmarks/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM openjdk:21-bullseye
1+
FROM eclipse-temurin:25-jdk-noble
22

33
RUN apt-get update && apt-get install -y iputils-ping
44

benchmarks/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ buildscript {
77
plugins {
88
java
99
idea
10-
id("com.google.protobuf") version "0.9.3"
10+
id("com.google.protobuf") version "0.9.6"
1111
id("com.google.osdetector") version "1.6.2"
12-
id("io.freefair.lombok") version "8.12.1"
12+
id("io.freefair.lombok") version "9.2.0"
1313
id("checkstyle")
1414
id("jacoco")
1515
id("maven-publish")

benchmarks/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#Thu Jan 23 21:33:25 PST 2020
2-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip
2+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
33
distributionBase=GRADLE_USER_HOME
44
distributionPath=wrapper/dists
55
zipStorePath=wrapper/dists

cloud/corfu/corfu-client-example/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM openjdk:21-bullseye
1+
FROM eclipse-temurin:25-jdk-noble
22

33
ADD ./build/libs/corfu-runtime-client-example.jar /app/
44

cloud/corfu/corfu-client-example/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#Thu Jan 23 21:33:25 PST 2020
2-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip
2+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
33
distributionBase=GRADLE_USER_HOME
44
distributionPath=wrapper/dists
55
zipStorePath=wrapper/dists

cloud/infrastructure/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#Thu Jan 23 21:33:25 PST 2020
2-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip
2+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
33
distributionBase=GRADLE_USER_HOME
44
distributionPath=wrapper/dists
55
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)