Overview
Changes
Tomcat 11
Questions
Tomcat major versions aligned with Servlet specification releases
Servlet specification releases aligned with and Jakarta EE releases
Tomcat 11 - Servlet 6.1 - Jakarta EE 11
Hope to keep Tomcat major version and Jakarta EE version aligned
42 individual specifications - Tomcat implements 6
Those 6 are complete and released
Tomcat 11 implements all 6
Tomcat 11 passes the TCK all 6
Daily testing against 5 TCKs
Authentication TCK uses different framework - work in progress
Jakarta EE 10 was released Q3 2022
Jakarta EE 11 originally planned for Q1 2024
Testing and Compatibility Kits (TCKs) refactoring taking longer than expected
Slipped to H1 2024 then H2 2024
Tomcat 11.0.0-M1 2022-12-05
Tomcat 11.0.0 2024-10-09
Requires a minimum of Java 17
No SecurityManager support
Safe HTTP session access for WebSocket
public interface HttpSession {
...
Accessor getAccessor();
interface Accessor {
void access(Consumer sessionConsumer);
}
}
Invalid request parameters will always trigger an exception
HTTP/2 server push is deprecated
Lots of clarifications
Deprecated classes and methods have been removed
Updated ErrorData to support the new request attribute jakarta.servlet.error.query_string
Clarified the responsibility for sending Ping messages
Added getSession() method to SendResult
Remove all deprecated classes and methods
Dependency on JavaBeans API is now optional
Added support for java.util.Optional via OptionalELResolver
Specification / RFC updates
RFC 9218 - HTTP/2 priority frame support
Generally stricter with invalid input
32-bit Windows no longer supported
Added virtual thread support
Added TLSCertificateReloadListener
First stable release will be on Wednesday
25th anniversary of first Tomcat commit at the ASF
Join us for cake
Major versions are supported for ~10 years
Regular monthly release cycle
Stable APIs with backwards compatibility a priority
All open, repeatable issues fixed for next release