1.9 KiB
1.9 KiB
PR#82: The Statistics Service on Temurin 25
WARNING: This document describes only the change applied in this PR. It may already be outdated once the next PR is merged. Historic PR documentation is not maintained along with new PRs; treat it as a snapshot.
Related Links
- werkregie PR#20 and PR#22: ADR 0001, Temurin 25 as JDK and runtime of all werk repositories, loaded with Foojay.
Problem
ADR 0001 of werkregie decides Temurin 25 for all werk repositories, and for each service a runtime jlinked from it. The statistics service builds with Temurin 21, Kotlin 2.2.0, Gradle 8.14.5 and Foojay 0.8.0. On mih09 it runs on a full Temurin 21 runtime that was put there by hand.
Non-Goals
- No change of the review itself, nor of its Python runtime.
- No change of the service's behaviour.
Solution
- Toolchain Temurin 25, Kotlin 2.4.21, Gradle 9.8.1 and Foojay 1.0.0, as werkregie.
- Kotlin 2.2.0 has no JVM 25 target; Kotlin 2.4.21 has.
- The dependency management of Spring Boot raised the Kotlin compiler of ktlint to 2.4.21, which ktlint cannot parse with. The ktlint configurations keep the compiler 2.1.0 that ktlint 1.5.0 was built against.
- The task
runtimejlinks the runtime of the service from the toolchain intobuild/runtime, about 65 MB. Its modules come from jdeps over the boot jar, plus the ones that only the runtime needs, as in Werkator. - The README tells how to deploy the jar and the runtime on mih09;
--enable-native-access=ALL-UNNAMEDkeeps sqlite-jdbc from warning on Java 25. - Checked locally: the tests pass on Temurin 25, and the service starts on the jlinked runtime and answers
/api/stats. - Werkbaum:
#stats.temurin. - Version 0.32.9.
Additional Changes
- A raw string in
UsageApiIntegrationTestbecomes an escaped one; ktlint flagged it since PR#57.