You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The project currently targets JDK 8 across the entire stack: Maven compiler (`1.8` / `1.8`), Docker runtime (`tomcat:8-jre8-openjdk`), CI workflows, provisioning scripts, and documentation. JDK 8 public updates ended in March 2019 (Oracle), and Tomcat 8.5 reached EOL in March 2024.
Upgrading to JDK 17 (LTS) would bring security patches, performance improvements, and modern API access while keeping the migration scope minimal.
Why JDK 17
LTS and actively supported: JDK 17 is a Long-Term Support release with free security updates from Adoptium/Temurin through 2026+.
JDK 11 is EOL: Adoptium/Temurin ended free builds for JDK 11 in September 2024, making it a poor target for a new migration.
No servlet namespace migration: JDK 17 still works with `javax.*` APIs and Tomcat 9 — no `javax` → `jakarta` refactoring needed.
Tomcat 8.5 is EOL: Tomcat 9.0.x is actively maintained and supports JDK 17+.
Modern APIs: Records, sealed classes, text blocks, pattern matching (preview), `String.repeat()`, `var`, `HttpClient`, `Optional.isEmpty()`, `List.of()`, `Map.of()`, and other quality-of-life improvements.
Security: Continued security patches from Adoptium/Temurin and other vendors.
Summary
The project currently targets JDK 8 across the entire stack: Maven compiler (`1.8` / `1.8`), Docker runtime (`tomcat:8-jre8-openjdk`), CI workflows, provisioning scripts, and documentation. JDK 8 public updates ended in March 2019 (Oracle), and Tomcat 8.5 reached EOL in March 2024.
Upgrading to JDK 17 (LTS) would bring security patches, performance improvements, and modern API access while keeping the migration scope minimal.
Why JDK 17
Scope of changes
What this does NOT change
Alternatives considered