aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <code@mail.matthias.benkard.de>2026-09-01 06:43:52 +0200
committerMatthias Andreas Benkard <code@mail.matthias.benkard.de>2026-09-01 06:43:52 +0200
commitb65e54f2dd9cd4e385a452e66c3d80c15e0df743 (patch)
tree14696339c1977f99f9cf52faa5fb665a5fa52d27
parent1f8af7b9a90a8ba241cd05ee148f534121e015ab (diff)
Der Bausatz setzt fortan die Sprachfassung 25 voraus
Die selbsttätige Prüfung baut seit ihrer Einführung auf einem JDK 25, der Quellstand blieb mit „release 21“ jedoch hinter dieser Grundlage zurück. Beides fällt nunmehr zusammen: Die Eigenschaft „maven.compiler.release“ lautet „25“, und im Profil „wasm“ folgen ihr „source“ und „target“ samt dem erläuternden Vermerk. Die dortige Abkehr von „release“ bleibt bestehen, denn die Web-Image-API des GraalVM liegt außerhalb der dokumentierten JDK-API. Damit ein zu alter Bausatz nicht erst den Übersetzer zu einer schwer deutbaren Meldung nötigt, tritt der Regel „requireMavenVersion“ die Regel „requireJavaVersion“ zur Seite, gespeist aus der neuen Eigenschaft „enforced.java-version“. Das Handbuch setzt in § 5 Absatz 3 fortan die Fassung 25 voraus; § 14 Absatz 3 bleibt unberührt, denn der Wasm-Bau verlangt weiterhin Oracle GraalVM 25.1 oder neuer. Geprüft auf einem Oracle GraalVM 25.0.4: „./mvnw verify“ meldet BUILD SUCCESS mit 456 von 456 Tests, Spotless beanstandet nichts, der Enforcer lässt die neue Regel durchgehen, und auch das Profil „wasm“ übersetzt („target 25“). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GuVaax1nzPPH9Xk73JugUw Change-Id: Ib4b4015e3b4d6660f41231bd965c617078de8838
-rw-r--r--FASSUNGEN.txt54
-rw-r--r--README.md2
-rw-r--r--pom.xml12
3 files changed, 63 insertions, 5 deletions
diff --git a/FASSUNGEN.txt b/FASSUNGEN.txt
index 9f17e99..5e8327c 100644
--- a/FASSUNGEN.txt
+++ b/FASSUNGEN.txt
@@ -21,6 +21,60 @@ Vorbemerkung zur Führung dieses Verzeichnisses
════════════════════════════════════════════════════════════════════════════════
+ Fassung vom 1. September 2026,
+ zuletzt geändert durch die am 1. September 2026 vorgenommenen Änderungen
+════════════════════════════════════════════════════════════════════════════════
+
+Die Sprachfassung des Bausatzes wird von 21 auf 25 angehoben (Artikel 1); der
+Wasm-Zweig folgt (Artikel 2). Der Enforcer wacht fortan über die vorausgesetzte
+Fassung (Artikel 3). Das Handbuch weist dies aus (Artikel 4).
+
+
+Artikel 1
+Anhebung der Sprachfassung
+
+In „pom.xml“ wird die Eigenschaft „maven.compiler.release“ von „21“ auf „25“
+geändert. Die selbsttätige Prüfung baute schon bisher auf einem JDK 25; der
+Quellstand blieb hinter dieser Grundlage zurück. Fortan stehen die Sprachmittel
+der Fassungen 22 bis 25 zur Verfügung.
+
+
+Artikel 2
+Wasm-Zweig
+
+Im Profil „wasm“ werden „maven.compiler.source“ und „maven.compiler.target“
+gleichfalls auf „25“ gesetzt; der erläuternde Vermerk spricht entsprechend von
+der Option „release 25“. An der dortigen Abkehr von „release“ zugunsten von
+„source“/„target“ ändert sich nichts: Sie beruht darauf, dass die Web-Image-API
+des GraalVM außerhalb der dokumentierten JDK-API liegt.
+
+
+Artikel 3
+Überwachung der vorausgesetzten Fassung
+
+Der Regel „requireMavenVersion“ wird „requireJavaVersion“ zur Seite gestellt,
+gespeist aus der neuen Eigenschaft „enforced.java-version“ (Wert „25“). Ein zu
+alter Bausatz wird damit beim Enforcer benannt und nicht erst durch eine
+schwerer deutbare Meldung des Übersetzers.
+
+
+Artikel 4
+Handbuch
+
+§ 5 Absatz 3 des Handbuchs (README.md) setzt fortan einen Java-Entwicklungs-
+bausatz der Fassung 25 oder neuer voraus. § 14 Absatz 3 bleibt unberührt: Für
+den Wasm-Bau ist weiterhin Oracle GraalVM 25.1 oder neuer erforderlich.
+
+
+Artikel 5
+Prüfung
+
+Der Bau geht auf einem Oracle GraalVM 25.0.4 auf: „./mvnw verify“ meldet BUILD
+SUCCESS mit 456 von 456 Tests, Spotless beanstandet nichts, und der Enforcer
+lässt die neue Regel durchgehen. Auch das Profil „wasm“ übersetzt („target 25“).
+
+
+════════════════════════════════════════════════════════════════════════════════
Fassung vom 31. August 2026,
zuletzt geändert durch die am 31. August 2026 vorgenommenen Änderungen
════════════════════════════════════════════════════════════════════════════════
diff --git a/README.md b/README.md
index 6248c61..0a1fbea 100644
--- a/README.md
+++ b/README.md
@@ -173,7 +173,7 @@ Fassungen (`FASSUNGEN.txt`) geführt.
`0.1.0-SNAPSHOT`, soweit sie nicht durch Übergabe des Schalters `-Drevision` an
`mvnw` abweichend bestimmt wird.
-(3) Vorausgesetzt wird ein Java-Entwicklungsbausatz der Fassung 21 oder neuer.
+(3) Vorausgesetzt wird ein Java-Entwicklungsbausatz der Fassung 25 oder neuer.
Für die Herstellung der Browserfassung gilt abweichend § 14 Absatz 5.
## § 5 Zulässige Eingaben
diff --git a/pom.xml b/pom.xml
index 5511f72..53f5e9c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,12 +23,13 @@
<properties>
<maven.compiler.parameters>true</maven.compiler.parameters>
- <maven.compiler.release>21</maven.compiler.release>
+ <maven.compiler.release>25</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<enforced.maven-version>3.9.0</enforced.maven-version>
+ <enforced.java-version>25</enforced.java-version>
<build-helper-plugin.version>3.6.0</build-helper-plugin.version>
<clean-plugin.version>3.3.2</clean-plugin.version>
@@ -254,6 +255,9 @@
<requireMavenVersion>
<version>${enforced.maven-version}</version>
</requireMavenVersion>
+ <requireJavaVersion>
+ <version>${enforced.java-version}</version>
+ </requireJavaVersion>
</rules>
</configuration>
</execution>
@@ -347,13 +351,13 @@
<native-image.executable>${java.home}/bin/native-image</native-image.executable>
<wasm.output.directory>${project.build.directory}/web</wasm.output.directory>
<!--
- Die Option „release 21“ beschränkte den Modulpfad auf die dokumentierte JDK-API; die
+ Die Option „release 25“ beschränkte den Modulpfad auf die dokumentierte JDK-API; die
Web-Image-API des GraalVM wäre damit unsichtbar. Deshalb hier source/target statt
release — übersetzt wird ohnehin nur mit dem GraalVM, gegen dessen eigene Klassen.
-->
<maven.compiler.release/>
- <maven.compiler.source>21</maven.compiler.source>
- <maven.compiler.target>21</maven.compiler.target>
+ <maven.compiler.source>25</maven.compiler.source>
+ <maven.compiler.target>25</maven.compiler.target>
</properties>
<dependencies>