From c7f758bb983a47f139c9c82f7f26147654520c6e Mon Sep 17 00:00:00 2001 From: Cristian Ramon-Cortes Date: Wed, 8 Jul 2026 14:57:34 +0200 Subject: [PATCH 1/3] build(java): align toolchain and runtime to Java 25 (bytecode 17) Adopt Java 25 as the build toolchain and runtime while setting the bytecode target to Java 17 (options.release 21 -> 17) to match the org-wide standard, and bump CI to Java 25. Follows the proposed org-wide standard in the Java 25 ADR (seqeralabs/adr#48), which supersedes the 2024-12-03 Java 17/21 ADR. Co-Authored-By: Claude Opus 4.8 (1M context) Signed-off-by: Cristian Ramon-Cortes --- .github/workflows/build.yml | 10 +++++----- .github/workflows/security-submit-dependencies.yml | 2 +- build.gradle | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b7047630a..bce0ceca1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,7 +31,7 @@ jobs: - name: Setup Graalvm uses: graalvm/setup-graalvm@60c26726de13f8b90771df4bc1641a52a3159994 # v1.5.2 with: - java-version: '21' + java-version: '25' distribution: 'graalvm' native-image-musl: 'true' github-token: ${{ secrets.GITHUB_TOKEN }} @@ -100,7 +100,7 @@ jobs: - name: Setup Graalvm uses: graalvm/setup-graalvm@60c26726de13f8b90771df4bc1641a52a3159994 # v1.5.2 with: - java-version: '21' + java-version: '25' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} @@ -187,7 +187,7 @@ jobs: uses: graalvm/setup-graalvm@60c26726de13f8b90771df4bc1641a52a3159994 # v1.5.2 with: version: 'latest' - java-version: '21' + java-version: '25' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} @@ -280,7 +280,7 @@ jobs: - name: Setup Graalvm uses: graalvm/setup-graalvm@60c26726de13f8b90771df4bc1641a52a3159994 # v1.5.2 with: - java-version: '21' + java-version: '25' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} @@ -352,7 +352,7 @@ jobs: - name: Setup Java for JReleaser uses: actions/setup-java@c1e323688fd81a25caa38c78aa6df2d33d3e20d9 # v4.8.0 with: - java-version: '21' + java-version: '25' distribution: 'adopt' - name: Version diff --git a/.github/workflows/security-submit-dependencies.yml b/.github/workflows/security-submit-dependencies.yml index 5f55669cb..bf8b6874e 100644 --- a/.github/workflows/security-submit-dependencies.yml +++ b/.github/workflows/security-submit-dependencies.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 - uses: graalvm/setup-graalvm@60c26726de13f8b90771df4bc1641a52a3159994 # v1.5.2 with: - java-version: '21' + java-version: '25' distribution: 'graalvm' components: 'native-image' native-image-musl: 'true' diff --git a/build.gradle b/build.gradle index aa64ee04e..afe08f173 100644 --- a/build.gradle +++ b/build.gradle @@ -98,7 +98,7 @@ application { java { toolchain { - languageVersion = JavaLanguageVersion.of(21) + languageVersion = JavaLanguageVersion.of(25) } } @@ -120,7 +120,7 @@ graalvmNative { buildArgs.add('-H:+ReportExceptionStackTraces') javaLauncher = javaToolchains.launcherFor { - languageVersion = JavaLanguageVersion.of(21) + languageVersion = JavaLanguageVersion.of(25) vendor = JvmVendorSpec.matching("Oracle Corporation") } @@ -155,7 +155,7 @@ tasks.register('buildInfo') { } tasks.named('compileJava') { - options.release = 21 + options.release = 17 options.compilerArgs += ["-Aproject=${project.name}"] dependsOn tasks.named('buildInfo') } From e575a013cf358b7d6e14185924e41d3de98c8472 Mon Sep 17 00:00:00 2001 From: Cristian Ramon-Cortes Date: Wed, 8 Jul 2026 15:01:48 +0200 Subject: [PATCH 2/3] ci(java): use Amazon Corretto distribution instead of Temurin Switch the CI setup-java JDK distribution from Temurin to Amazon Corretto, following the Java 25 ADR (seqeralabs/adr#48), which specifies Amazon Corretto as the preferred distribution for Linux. Co-Authored-By: Claude Opus 4.8 (1M context) Signed-off-by: Cristian Ramon-Cortes --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bce0ceca1..3a56cf995 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -353,7 +353,7 @@ jobs: uses: actions/setup-java@c1e323688fd81a25caa38c78aa6df2d33d3e20d9 # v4.8.0 with: java-version: '25' - distribution: 'adopt' + distribution: 'corretto' - name: Version id: version From 8f5fff4b90a523ab373fe1f3cda313f6b052228b Mon Sep 17 00:00:00 2001 From: Cristian Ramon-Cortes Date: Wed, 8 Jul 2026 15:34:52 +0200 Subject: [PATCH 3/3] build(java): keep bytecode target at Java 21 Revert the bytecode target from 17 back to 21. tower-cli uses a Java 21 API (java.net.http.HttpClient became AutoCloseable in 21, used in a try-with-resources), so it cannot compile to Java 17 bytecode. As a CLI application (not a library consumed by other Java projects), the ADR's bytecode-17 interoperability requirement does not apply; it keeps the Java 25 toolchain/runtime and Corretto distribution. Co-Authored-By: Claude Opus 4.8 (1M context) Signed-off-by: Cristian Ramon-Cortes --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index afe08f173..61ec63a62 100644 --- a/build.gradle +++ b/build.gradle @@ -155,7 +155,7 @@ tasks.register('buildInfo') { } tasks.named('compileJava') { - options.release = 17 + options.release = 21 options.compilerArgs += ["-Aproject=${project.name}"] dependsOn tasks.named('buildInfo') }