Skip to content

TS-47184 Build with Gradle 9 and bundle a Java 25 runtime - #92

Merged
wilhelma merged 3 commits into
masterfrom
ts/47184_gradle_java_25
Oct 21, 2026
Merged

wilhelma merged 3 commits into
masterfrom
ts/47184_gradle_java_25

Conversation

@alexrhein

Copy link
Copy Markdown
Collaborator

The build failed on machines with only Java 25 installed: Gradle 8.14 cannot run on Java 25, and the Java 17 toolchain could not be downloaded because no toolchain resolver was configured.

  • Upgrade Gradle to 9.8.1 and the runtime plugin to 2.0.1
  • Add the foojay toolchain resolver, so Gradle downloads the JDK itself
  • Build with a Temurin 25 toolchain and bundle a Java 25 runtime
  • Download the jmods of each target platform separately, because Temurin 25 no longer ships them (JEP 493)
  • Fail the build if jmods are missing, because the runtime plugin would otherwise silently link the build host's runtime
  • Keep file permissions in the distribution zips, which Gradle 9 now normalizes to 644
  • Enable native access for JNA to avoid a warning on every run
  • Drop the empty jdk.crypto.ec module
  • Set up Java 25 in CI and update setup-gradle to v5
  • Remove the outdated Maven and GraalVM parts of README_DEV_SETUP.md

Addresses issue TS-XXXXX

  • Changes are tested adequately
  • Teamscale documentation updated in case of relevant user-visible changes
  • CHANGELOG.md updated
  • Present new features in N&N

Please respect the vote of the Teamscale bot or flag irrelevant findings as tolerated or
false positives. If you feel that the Teamscale config or architecture file needs adjustment, please state so in a
comment and discuss this with your reviewer.

alexrhein and others added 3 commits October 16, 2026 12:52
The build failed on machines with only Java 25 installed: Gradle 8.14 cannot
run on Java 25, and the Java 17 toolchain could not be downloaded because no
toolchain resolver was configured.

- Upgrade Gradle to 9.8.1 and the runtime plugin to 2.0.1
- Add the foojay toolchain resolver, so Gradle downloads the JDK itself
- Build with a Temurin 25 toolchain and bundle a Java 25 runtime
- Download the jmods of each target platform separately, because
  Temurin 25 no longer ships them (JEP 493)
- Fail the build if jmods are missing, because the runtime plugin would
  otherwise silently link the build host's runtime
- Keep file permissions in the distribution zips, which Gradle 9 now
  normalizes to 644
- Enable native access for JNA to avoid a warning on every run
- Drop the empty jdk.crypto.ec module
- Set up Java 25 in CI and update setup-gradle to v5
- Remove the outdated Maven and GraalVM parts of README_DEV_SETUP.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…orms

- Declare the unpacked jmods as an input of the jre task. A plain
  dependency left jre up to date after a RUNTIME_JDK_VERSION update, so an
  incremental build kept the old runtime.
- Define the jmods location once instead of three times
- Fail the build if a runtime image's java executable is built for another
  platform than its name says, because CI runs only the Linux image
- Delete build-windows.bat and package-windows.bat, which called the
  removed Maven build

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The jmods of the bundled Java runtime are now dependencies from an Ivy
repository on Adoptium's GitHub releases instead of a custom download
task. Gradle caches them, so a clean build no longer downloads them again.

Dependency verification checks the SHA-256 of the jmods archives and of
all dependencies and plugins against gradle/verification-metadata.xml.
The recorded hashes match the checksums Adoptium and the Maven
repositories publish.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@wilhelma
wilhelma merged commit af4d067 into master Oct 21, 2026
5 checks passed
@wilhelma
wilhelma deleted the ts/47184_gradle_java_25 branch October 21, 2026 11:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants