Migrate early, migrate often! JDK release cadence strategies
summary
Java moves to 6-month releases with LTS every three years (Java 11 is LTS, Java 17 next), so expect more churn and short public support windows; Java 9 and 10 already lose public support. Add concrete checks: run parallel pipelines against the stable LTS and the latest build, treat warnings as errors, use AdoptOpenJDK Docker images for quick testing, run jdeps to find JDK internal API usage and jdeprscan to find deprecated/for-removal APIs (example: removed thread destroy), and consider multi-release jars or reflection when one code path must run on both old and new JVMs.
AI-written summary · about
chapters (11)
- 0:00Intro
- 1:26Historical Java release model
- 2:596 month release cadence
- 5:48Migrate to a stable base: Java 8
- 6:26Track future changes: Java 9
- 7:54Continuous integration pipeline
- 13:44jdeps docker stage
- 16:27Continuous migration strategies
- 17:43Multi-release JAR files
- 20:15Summarize the strategies
- 20:57Key points to take away
related talks
44mThe Future of Java SE
20mMoving Java Forward Faster
06mInterview with Mark Reinhold
51mLife Beyond Java 8
49mJDK LTS Release Use Cases: When is a Java migration advisable?
27mJava in 2024 - #JVMLS keynote
53mApproaching the JDK 25 LTS release through real-world migration
27mModern Java: Change is the Only Constant
