40 lines
1.9 KiB
Markdown
40 lines
1.9 KiB
Markdown
# 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](https://git.javagil.de/mi/werkregie/pulls/20) and [PR#22](https://git.javagil.de/mi/werkregie/pulls/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 `runtime` jlinks the runtime of the service from the toolchain into `build/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-UNNAMED` keeps 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 `UsageApiIntegrationTest` becomes an escaped one; ktlint flagged it since PR#57.
|