Agenda

Overview

Changes

Tomcat 11

Questions

Overview - Versioning

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

Jakarta EE 11 - Tomcat 11

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

Overview - Timing

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

Changes - Jakarta EE 11 Platform

Requires a minimum of Java 17

No SecurityManager support

Changes - Jakarta Servlet - 6.1

Safe HTTP session access for WebSocket

  
public interface HttpSession {
    ...
    Accessor getAccessor();

    interface Accessor {
        void access(Consumer sessionConsumer);
    }
}

  

Changes - Jakarta Servlet - 6.1

Invalid request parameters will always trigger an exception

HTTP/2 server push is deprecated

Lots of clarifications

Changes - Jakarta Pages - 4.0

Deprecated classes and methods have been removed

Updated ErrorData to support the new request attribute jakarta.servlet.error.query_string

Changes - Jakarta WebSocket - 2.2

Clarified the responsibility for sending Ping messages

Added getSession() method to SendResult

Changes - Expression Language - 6.0

Remove all deprecated classes and methods

Dependency on JavaBeans API is now optional

Added support for java.util.Optional via OptionalELResolver

Changes - Tomcat 11

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

Tomcat 11

First stable release will be on Wednesday

25th anniversary of first Tomcat commit at the ASF

Join us for cake

Tomcat 11

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