HowToDoInJava

  • Python
  • Java
  • Spring Boot
  • Dark Mode
Home / Java 10 / Java Version – Time-Based Release Versioning

Java Version – Time-Based Release Versioning

Starting from Java 10, Oracle has adapted time based version-string scheme [JEP 322]. The new time-based model has replaced the feature-based, multi-year release model of the past. Unlike the old releases, the new time-based releases will not be delayed and features will be released every six months, with no constraints on what features can go out in the releases.

The updates releases will occur every quarter (Jan, April, July, Oct). Update releases will be strictly limited to fixes of security issues, regressions, and bugs in newer features. Going by schedule planning, we can say that each feature release will receive two updates before the next feature release.

Java version format

If you run command java -version in comaand prompt/terminal the you will get outout version information like this:

C:\Users\Lokesh>java -version
java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

The new format of the version number is:

$FEATURE.$INTERIM.$UPDATE.$PATCH

Counter NameDescription
$FEATUREIt will be incremented every 6 months and based on feature release versions e.g: JDK 10, JDK 11. (Formerly $MAJOR.)
$INTERIMUsually this will be zero, as there will be no interim release in a six month period. It will be incremented for non-feature releases that contain compatible bug fixes and enhancements but no incompatible changes, no feature removals, and no changes to standard APIs. (Formerly $MINOR.)
$UPDATEIt will be incremented for compatible update releases that fix security issues, regressions, and bugs in newer features. (Formerly $SECURITY.)
$PATCHIt will be incremented only when it’s necessary to produce an emergency release to fix a critical issue.
The sequence of numerals in a version number is compared to another such sequence in numerical, pointwise fashion; e.g., 10.0.4 is less than 10.1.2. If one sequence is shorter than another then the missing elements of the shorter sequence are considered to be less than the corresponding elements of the longer sequence; e.g., 10.0.2 is less than 10.0.2.1.

Java Version API

Runtime.version() can be used to get version counter values programmatically. e.g.

Version version = Runtime.version();
version.feature();
version.interim();
version.update();
version.patch();

Output:

10
0
1
0

Parse existing version

Version version = Runtime.Version.parse("10.0.1");

version.feature();
version.interim();
version.update();
version.patch();

Long Term Release (LTS)

It is mainly for enterprise customers. LTS version of the products will offer premier and sustained support from Oracle and it will be targeted every 3 years. Also, updates for these releases will be available for at least three years.

This will cause “LTS” to be displayed prominently in the output of java –versions. e.g. e.g., 11.0.2+13-LTS

Happy Learning !!

Ref: http://openjdk.java.net/jeps/322

Was this post helpful?

Let us know if you liked the post. That’s the only way we can improve.
TwitterFacebookLinkedInRedditPocket

About Lokesh Gupta

A family guy with fun loving nature. Love computers, programming and solving everyday problems. Find me on Facebook and Twitter.

Comments are closed on this article!

Search Tutorials

Java 10 Tutorial

  • Java 10 – Features
  • Java 10 – Time-Based Release Versioning
  • Java 10 – Local-Variable Type Inference

Java Tutorial

  • Java Introduction
  • Java Keywords
  • Java Flow Control
  • Java OOP
  • Java Inner Class
  • Java String
  • Java Enum
  • Java Collections
  • Java ArrayList
  • Java HashMap
  • Java Array
  • Java Sort
  • Java Clone
  • Java Date Time
  • Java Concurrency
  • Java Generics
  • Java Serialization
  • Java Input Output
  • Java New I/O
  • Java Exceptions
  • Java Annotations
  • Java Reflection
  • Java Garbage collection
  • Java JDBC
  • Java Security
  • Java Regex
  • Java Servlets
  • Java XML
  • Java Puzzles
  • Java Examples
  • Java Libraries
  • Java Resources
  • Java 14
  • Java 12
  • Java 11
  • Java 10
  • Java 9
  • Java 8
  • Java 7

Meta Links

  • About Me
  • Contact Us
  • Privacy policy
  • Advertise
  • Guest and Sponsored Posts

Recommended Reading

  • 10 Life Lessons
  • Secure Hash Algorithms
  • How Web Servers work?
  • How Java I/O Works Internally?
  • Best Way to Learn Java
  • Java Best Practices Guide
  • Microservices Tutorial
  • REST API Tutorial
  • How to Start New Blog

Copyright © 2020 · HowToDoInjava.com · All Rights Reserved. | Sitemap

  • Sealed Classes and Interfaces