Sunday, October 3, 2021

Many reasons to migrate from Java LTS 11 to 17

  2021.09.14 was an important day for the Java community. Oracle announced the general availability of the expected release of Java 17. This release is one of the Long Term Support (LTS) ones and brings with a big amount of new features, enhancements and improvements. It support ends in September 2029!

Beside of it Oracle has communicate a simpler license model. It means that beginning with JDK17 release on the release are provided under free to use license (GPL) until one year after the next LTS release. This step brings plenty of time to migrate an application to the next LTS version.

Oracle proposed to shorten the LTS release cadence from 3 to 2 years. It means that if accepted we can expect the next LTS release version in September 2023, which will be Java SE 21

More details in an overview of all added enhancements between both LTS versions (from 11 to 17, more then 62) with some examples

Java SE 17

Java SE 16

Java SE 15

Java SE 14

  • JEP-345: NUMA(non-uniform memory access)-Aware Memory Allocation for G1
  • JEP-349: JFR (Java Flight Recorder) Event Streaming
  • JEP-352: Non-volatile mapped byte buffers
  • JEP-358: Helpful NullPointerExceptions
  • JEP-361: Switch Expressions (Standard)
  • JEP-364: ZGC on macOS
  • JEP-365: ZGC on Windows

Java SE 13

  • JEP-350: Dynamic CDS (Class-Data Sharing) Archives
  • JEP-351: ZGC: Uncommit Unusd Memory
  • JEP-353: Remimplement the Legacy Socket API

Java SE 12

  • JEP-230: Microbenchmark suite
  • JEP-334: JVM Constants API
  • JEP-340: One AArch64 Port, not two
  • JEP-341: Default CDS (Class-Data Sharing) Archives
  • JEP-344: Abortable Mixed Collections for G1
  • JEP-346: Promptly Return Unused Committed Memory from G1

Java SE 11

  • JEP-181: Nest-Based Access Control
  • JEP-309: Dynamic Class-File constants
  • JEP-315: Improve AArch64 Intrinsics
  • JEP-318: Epsilon: A No-Op garbage collector
  • JEP-321: HTTP Client (standard)
  • JEP-323: Local-Variable Syntax for Lambda Parameters
  • JEP-324: Key Agreement with Curve25519 and Curve448
  • JEP-327: Unicode 10
  • JEP-328: Flight Recorder
  • JEP-329: ChaCha20 and Poly1305 Cryptographic Algorithms
  • JEP-330: Launch Single-File Source-Code Programs
  • JEP-331: Low-Overhead Heap Profiling
  • JEP-332: Transport Layer Security (TLS) 1.3

Happy upgrading and migrating ! 


No comments: