modules/tomcat-11-jakarta-ee-11.html (122 lines of code) (raw):
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<section data-background-image="../images/tomcat.svg"
data-background-size="contain"
data-background-opacity="0.15">
<h3>Agenda</h3>
<p>Overview<p>
<p>Changes</p>
<p>Tomcat 11</p>
<p>Questions</p>
</section>
<section data-background-image="../images/tomcat.svg"
data-background-size="contain"
data-background-opacity="0.15">
<h3>Overview - Versioning</h3>
<p>Tomcat major versions aligned with Servlet specification releases<p>
<p>Servlet specification releases aligned with and Jakarta EE releases</p>
<p>Tomcat 11 - Servlet 6.1 - Jakarta EE 11</p>
<p>Hope to keep Tomcat major version and Jakarta EE version aligned</p>
</section>
<section data-background-image="../images/tomcat.svg"
data-background-size="contain"
data-background-opacity="0.15">
<h3>Jakarta EE 11 - Tomcat 11</h3>
<p>42 individual specifications - Tomcat implements 6</p>
<p>Those 6 are complete and released</p>
<p>Tomcat 11 implements all 6</p>
<p>Tomcat 11 passes the TCK all 6</p>
<p>Daily testing against 5 TCKs</p>
<p>Authentication TCK uses different framework - work in progress</p>
</section>
<section data-background-image="../images/tomcat.svg"
data-background-size="contain"
data-background-opacity="0.15">
<h3>Overview - Timing</h3>
<p>Jakarta EE 10 was released Q3 2022</p>
<p>Jakarta EE 11 originally planned for Q1 2024</p>
<p>Testing and Compatibility Kits (TCKs) refactoring taking longer than expected</p>
<p>Slipped to H1 2024 then H2 2024</p>
<p>Tomcat 11.0.0-M1 2022-12-05</p>
<p>Tomcat 11.0.0 2024-10-09</p>
</section>
<section data-background-image="../images/tomcat.svg"
data-background-size="contain"
data-background-opacity="0.15">
<h3>Changes - Jakarta EE 11 Platform</h3>
<p>Requires a minimum of Java 17</p>
<p>No SecurityManager support</p>
</section>
<section data-background-image="../images/tomcat.svg"
data-background-size="contain"
data-background-opacity="0.15">
<h3>Changes - Jakarta Servlet - 6.1</h3>
<p>Safe HTTP session access for WebSocket</p>
<pre>
<code data-noescape>
public interface HttpSession {
...
Accessor getAccessor();
interface Accessor {
void access(Consumer<HttpSession> sessionConsumer);
}
}
</code>
</pre>
</section>
<section data-background-image="../images/tomcat.svg"
data-background-size="contain"
data-background-opacity="0.15">
<h3>Changes - Jakarta Servlet - 6.1</h3>
<p>Invalid request parameters will always trigger an exception</p>
<p>HTTP/2 server push is deprecated
<p>Lots of clarifications</p>
</section>
<section data-background-image="../images/tomcat.svg"
data-background-size="contain"
data-background-opacity="0.15">
<h3>Changes - Jakarta Pages - 4.0</h3>
<p>Deprecated classes and methods have been removed</p>
<p>Updated ErrorData to support the new request attribute jakarta.servlet.error.query_string
</section>
<section data-background-image="../images/tomcat.svg"
data-background-size="contain"
data-background-opacity="0.15">
<h3>Changes - Jakarta WebSocket - 2.2</h3>
<p>Clarified the responsibility for sending Ping messages</p>
<p>Added getSession() method to SendResult</p>
</section>
<section data-background-image="../images/tomcat.svg"
data-background-size="contain"
data-background-opacity="0.15">
<h3>Changes - Expression Language - 6.0</h3>
<p>Remove all deprecated classes and methods</p>
<p>Dependency on JavaBeans API is now optional</p>
<p>Added support for java.util.Optional via OptionalELResolver</p>
</section>
<section data-background-image="../images/tomcat.svg"
data-background-size="contain"
data-background-opacity="0.15">
<h3>Changes - Tomcat 11</h3>
<p>Specification / RFC updates</p>
<p>RFC 9218 - HTTP/2 priority frame support</p>
<p>Generally stricter with invalid input</p>
<p>32-bit Windows no longer supported</p>
<p>Added virtual thread support</p>
<p>Added TLSCertificateReloadListener</p>
</section>
<section data-background-image="../images/tomcat.svg"
data-background-size="contain"
data-background-opacity="0.15">
<h3>Tomcat 11</h3>
<p>First stable release will be on Wednesday</p>
<p>25th anniversary of first Tomcat commit at the ASF</p>
<p>Join us for cake</p>
</section>
<section data-background-image="../images/tomcat.svg"
data-background-size="contain"
data-background-opacity="0.15">
<h3>Tomcat 11</h3>
<p>Major versions are supported for ~10 years</p>
<p>Regular monthly release cycle</p>
<p>Stable APIs with backwards compatibility a priority</p>
<p>All open, repeatable issues fixed for next release</p>
</section>