Java 10: Zeitbasiertes Release-Versionierung (JEP 322) – Vorhersehbare halbjährliche Updates
JEP 322 – Time-Based Release Versioning
Ab Java 10 folgt Oracle einem strengen, zeitbasierten Versionsmodell:
- Feature Release alle 6 Monate (März & September) – neue Sprach-/JVM-Features, APIs, Deprecations.
- Update Release quartalsweise (Jan, Apr, Jul, Okt) – Bugfixes, Security-Patches, Regression-Fixes. Jedes Feature-Release erhält zwei Update-Releases vor dem nächsten Feature-Release.
- LTS Release alle 3 Jahre (ab Sept. 2018) – 3 Jahre kommerzieller Support, für Produktionseinsätze.
Neues Versionsformat
$FEATURE.$INTERIM.$UPDATE.$PATCH
| Bestandteil | Bedeutung |
|---|---|
$FEATURE |
Hauptversion (inkrementiert pro Feature-Release). Java 10 → 10. |
$INTERIM |
Nicht-Feature-, Nicht-Update-Release (Bugfixes/Enhancements ohne API-Änderungen). Bei Feature-Releases immer 0. |
$UPDATE |
Update-Release-Zähler nach Feature-Release (z. B. 10.0.1 für Apr 2018, 10.0.2 für Jul 2018). |
$PATCH |
Notfall-Release bei kritischen Issues (selten). |
Versionsinformation zur Laufzeit abfragen
Java 10 führt Runtime.Version ein:
public class VersionDemo {
public static void main(String[] args) {
Runtime.Version v = Runtime.version();
System.out.printf("feature: %d%n", v.feature());
System.out.printf("interim: %d%n", v.interim());
System.out.printf("update: %d%n", v.update());
System.out.printf("patch: %d%n", v.patch());
}
}
Beispielausgabe (Java 10.0.2):
feature: 10
interim: 0
update: 2
patch: 0
Vorteile des neuen Modells
- Planbarkeit: Feste Release-Termine erleichtern Upgrade-Planung.
- Kleinere Inkremente: Weniger Features pro Release → geringeres Risiko, schnellere Feedback-Schleifen.
- Klare Support-Pfade: LTS für Stabilität, Non-LTS für Early Adopters.
- Container/Cloud-freundlich: OpenJDK-Builds alle 6 Monate, frei redistribuierbar.
Java
- Java Operatoren meistern: Typen, Syntax und praktische Beispiele
- Java Kommentare: Typen, Verwendung und Best Practices
- Java Enhanced For-Schleife meistern: Syntax, Beispiele und Best Practices
- Java Strings meistern: Erstellung, Methoden und Best Practices
- Java-Schnittstellen meistern: Konzepte, Implementierung und Best Practices
- Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
- Java Try-With-Resources meistern: Automatisches Ressourcenmanagement erklärt
- Java Annotations erklärt: Typen, Platzierung und praktische Beispiele
- Java Assertions: Praktischer Leitfaden zur Fehlererkennung und Code-Reliabilität
- Java Vector verstehen: Verwendung, Funktionen und Vergleich mit ArrayList