Java 10 introduceert Time-Based Release Versioning voor voorspelbare halfjaarlijkse updates
JEP 322 – Time-Based Release Versioning
Vanaf Java 10 heeft Oracle een strikt tijdsgebaseerd release-versioneringsmodel ingevoerd. Java heeft nu elke 6 maanden een grote release. Java 10 kwam uit in maart 2018; alle toekomstige grote versies zijn gepland voor maart en september. Releases vallen in drie categorieën:
Feature Release – Bevat taalfeatures, JVM-features, nieuwe/verbeterde API's, verwijdering/deprecatie van API's. Het moment is vast; er is geen dwang om specifieke features in een bepaalde release te krijgen. Als een feature niet klaar is, schuift hij naar de volgende release.
Update Release – Bevat bugfixes, beveiligingsfixes, regressiefixes. Elke update release is per kwartaal gepland (januari, april, juli, oktober). Elke Feature Release ontvangt twee Update Releases voordat de volgende Feature Release aangekondigd wordt.
Long Term Support (LTS) Release – Wordt elke drie jaar aangekondigd, beginnend september 2018. Oracle biedt 3 jaar support en updates. Bedoeld voor bedrijven die Java in productie draaien.
Versieformaat
Een versie volgt nu het formaat:
$FEATURE.$INTERIM.$UPDATE.$PATCH
Waarbij:
$FEATURE – Hoofdkenmerkrelease; incrementeert met 1 na elke Feature Release. Voor Java 10 is dit 10.
$INTERIM – Niet-feature, niet-update release met bugfixes en verbeteringen, geen incompatibele wijzigingen of API-verwijdering. Een Feature Release heeft deze teller op 0.
$UPDATE – Updaterelease na een Feature Release. Bijv. update in april 2018 is JDK 10.0.1, juli 2018 is JDK 10.0.2, enz.
$PATCH – Noodrelease, alleen verhoogd bij kritieke issues die dringend gepromoot moeten worden.
Voorbeeld
Programma dat de versioneringsdetails van Java 10 toont:
public class Tester {
public static void main(String[] args) {
Runtime.Version version = Runtime.version();
System.out.printf(" feature: %s%n interim: %s%n update: %s%n patch: %s%n",
version.feature(), version.interim(), version.update(), version.patch());
}
}
Uitvoer
feature: 10 interim: 0 update: 2 patch: 0
Java
- Eclipse Hono lanceert MongoDB-gebaseerde Device Registry – Schaalbaar, Productie-klaar
- Java-operators beheersen: typen, syntax en praktische voorbeelden
- Java-commentaar: typen, gebruik en best practices
- Java Enhanced For-lus beheersen: syntax, voorbeelden en best practices
- Java Strings beheersen: aanmaken, methodes en best practices
- Java interfaces meesteren: concepten, implementatie en best practices
- Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
- Java Try-with-resources meesteren: automatische resource management uitgelegd
- Java Annotaties uitgelegd: typen, plaatsing en praktische voorbeelden
- Java Assertions: een praktische gids voor bugdetectie en codebetrouwbaarheid
- Java Vector begrijpen: Gebruik, Kenmerken en Vergelijking met ArrayList