Author: markt Date: Sat Apr 4 11:58:27 2026 New Revision: 1932842 Log: Update Tomcat site for release of Tomcat 11.0.21
Modified: tomcat/site/trunk/build.properties.default tomcat/site/trunk/docs/download-11.html tomcat/site/trunk/docs/index.html tomcat/site/trunk/docs/migration-11.0.html tomcat/site/trunk/docs/migration-12.0.html tomcat/site/trunk/docs/oldnews.html tomcat/site/trunk/docs/whichversion.html tomcat/site/trunk/xdocs/download-11.xml tomcat/site/trunk/xdocs/index.xml tomcat/site/trunk/xdocs/migration-11.0.xml tomcat/site/trunk/xdocs/oldnews.xml tomcat/site/trunk/xdocs/whichversion.xml Modified: tomcat/site/trunk/build.properties.default ============================================================================== --- tomcat/site/trunk/build.properties.default Sat Apr 4 11:55:09 2026 (r1932841) +++ tomcat/site/trunk/build.properties.default Sat Apr 4 11:58:27 2026 (r1932842) @@ -38,7 +38,7 @@ tomcat.loc=https://downloads.apache.org/ # ----- Tomcat versions ----- tomcat9.0=9.0.117 tomcat10.1=10.1.54 -tomcat11.0=11.0.20 +tomcat11.0=11.0.21 # ----- Download destination ----- tomcat-site-docs.home=${base.path}/tomcat-site-docs/ Modified: tomcat/site/trunk/docs/download-11.html ============================================================================== --- tomcat/site/trunk/docs/download-11.html Sat Apr 4 11:55:09 2026 (r1932841) +++ tomcat/site/trunk/docs/download-11.html Sat Apr 4 11:58:27 2026 (r1932842) @@ -19,7 +19,7 @@ </div><h3 id="Quick_Navigation">Quick Navigation</h3><div class="text"> -[define v]11.0.20[end] +[define v]11.0.21[end] <a href="https://downloads.apache.org/tomcat/tomcat-11/KEYS">KEYS</a> | <a href="#[v]">[v]</a> | <a href="[preferred]tomcat/tomcat-11" rel="nofollow">Browse</a> | Modified: tomcat/site/trunk/docs/index.html ============================================================================== --- tomcat/site/trunk/docs/index.html Sat Apr 4 11:55:09 2026 (r1932841) +++ tomcat/site/trunk/docs/index.html Sat Apr 4 11:58:27 2026 (r1932842) @@ -31,6 +31,36 @@ these users and their stories are listed <a href="https://cwiki.apache.org/confluence/display/TOMCAT/PoweredBy">PoweredBy</a> wiki page.</p> +</div><h3 id="Tomcat_11.0.21_Released"><span class="pull-right">2026-04-04</span> Tomcat 11.0.21 Released</h3><div class="text"> +<p> +The Apache Tomcat Project is proud to announce the release of version 11.0.21 +of Apache Tomcat. This release implements specifications that are part of the +Jakarta EE 11 platform.</p> +<p>Users of Tomcat 10 onwards should be aware that, as a result of the move from +Java EE to Jakarta EE as part of the transfer of Java EE to the Eclipse +Foundation, the primary package for all implemented APIs has changed from +<code>javax.*</code> to <code>jakarta.*</code>. This will almost certainly +require code changes to enable applications to migrate from Tomcat 9 and earlier +to Tomcat 10 and later. A +<a href="https://github.com/apache/tomcat-jakartaee-migration">migration +tool</a> is available to aid this process.</p> +<p>The notable changes in this release are:</p> +<ul> +<li>Fix a bug in the non-blocking flushing code for NIO+TLS that meant + that a response may not have been fully written until the connection + was closed. Pull request 966 provided by Phil Clay.</li> +<li>Improved HTTP/2 error handling</li> +<li>Better error handling for the EncryptInterceptor</li> +</ul> +<p> +Full details of these changes, and all the other changes, are available in the +<a href="tomcat-11.0-doc/changelog.html#Tomcat_11.0.21_(markt)">Tomcat 11 +changelog</a>. +</p> + +<p style="text-align: center;"> +<a href="https://tomcat.apache.org/download-11.cgi">Download</a> +</p> </div><h3 id="Tomcat_9.0.117_Released"><span class="pull-right">2026-04-03</span> Tomcat 9.0.117 Released</h3><div class="text"> <p> The Apache Tomcat Project is proud to announce the release of version 9.0.117 @@ -87,39 +117,6 @@ changelog</a>. <p style="text-align: center;"> <a href="https://tomcat.apache.org/download-10.cgi">Download</a> </p> -</div><h3 id="Tomcat_11.0.20_Released"><span class="pull-right">2026-03-20</span> Tomcat 11.0.20 Released</h3><div class="text"> -<p> -The Apache Tomcat Project is proud to announce the release of version 11.0.20 -of Apache Tomcat. This release implements specifications that are part of the -Jakarta EE 11 platform.</p> -<p>Users of Tomcat 10 onwards should be aware that, as a result of the move from -Java EE to Jakarta EE as part of the transfer of Java EE to the Eclipse -Foundation, the primary package for all implemented APIs has changed from -<code>javax.*</code> to <code>jakarta.*</code>. This will almost certainly -require code changes to enable applications to migrate from Tomcat 9 and earlier -to Tomcat 10 and later. A -<a href="https://github.com/apache/tomcat-jakartaee-migration">migration -tool</a> is available to aid this process.</p> -<p>The notable changes in this release are:</p> -<ul> -<li>Relax HTTP/2 header validation and respond to invalid requests with - a stream reset or a 400 response as appropriate rather then with a - connection reset.</li> -<li>Fix bug 69964: Respect the configured cipher order, which was no - longer respected following the addition of TLS 1.3 specific cipher - configuration. TLS 1.3 ciphers will always be first in the list.</li> -<li>Update Tomcat Native to 2.0.14 and increase the recommended version to - 2.0.14.</li> -</ul> -<p> -Full details of these changes, and all the other changes, are available in the -<a href="tomcat-11.0-doc/changelog.html#Tomcat_11.0.20_(markt)">Tomcat 11 -changelog</a>. -</p> - -<p style="text-align: center;"> -<a href="https://tomcat.apache.org/download-11.cgi">Download</a> -</p> </div><h3 id="Tomcat_Native_2.0.14_Released"><span class="pull-right">2026-03-10</span> Tomcat Native 2.0.14 Released</h3><div class="text"> <p> The Apache Tomcat Project is proud to announce the release of version 2.0.14 of Modified: tomcat/site/trunk/docs/migration-11.0.html ============================================================================== --- tomcat/site/trunk/docs/migration-11.0.html Sat Apr 4 11:55:09 2026 (r1932841) +++ tomcat/site/trunk/docs/migration-11.0.html Sat Apr 4 11:58:27 2026 (r1932842) @@ -221,8 +221,9 @@ versions of Apache Tomcat<sup>®</sup <option value="11.0.13">11.0.13</option> <option value="11.0.14">11.0.14</option> <option value="11.0.15">11.0.15</option> - <option value="11.0.18" selected>11.0.18</option> - <option value="11.0.20">11.0.20</option> + <option value="11.0.18">11.0.18</option> + <option value="11.0.20" selected>11.0.20</option> + <option value="11.0.21">11.0.21</option> </select>,</label> <label>new version: <select name="target"> <option value="11.0.0-M1">11.0.0-M1</option> @@ -265,7 +266,8 @@ versions of Apache Tomcat<sup>®</sup <option value="11.0.14">11.0.14</option> <option value="11.0.15">11.0.15</option> <option value="11.0.18">11.0.18</option> - <option value="11.0.20" selected>11.0.20</option> + <option value="11.0.20">11.0.20</option> + <option value="11.0.21" selected>11.0.21</option> <option value="HEAD">trunk (unreleased)</option> </select></label> </p> Modified: tomcat/site/trunk/docs/migration-12.0.html ============================================================================== --- tomcat/site/trunk/docs/migration-12.0.html Sat Apr 4 11:55:09 2026 (r1932841) +++ tomcat/site/trunk/docs/migration-12.0.html Sat Apr 4 11:58:27 2026 (r1932842) @@ -1,195 +1,195 @@ -<!DOCTYPE html SYSTEM "about:legacy-compat"> -<html lang="en"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link href="res/css/tomcat.css" rel="stylesheet" type="text/css"><link href="res/css/fonts/fonts.css" rel="stylesheet" type="text/css"><title>Apache Tomcat® - Migration Guide - Tomcat 12.0.x</title><meta name="author" content="Apache Tomcat Project"><script src="https://www.apachecon.com/event-images/snippet.js"></script></head><body><div id="wrapper"><header id="header"><div class="clearfix"><div class="menu-toggler pull-left" tabindex="1"><div class="hamburger"></div></div><a href="http://tomcat.apache.org/"><img class="tomcat-logo pull-left noPrint" alt="Tomcat Home" src="res/images/tomcat.png"></a><h1 class="pull-left">Apache Tomcat<sup>®</sup></h1><div class="asf-logos pull-right"><a href="https://www.apache.org/foundation/contributing.html" target="_blank" class="pull-left"><img src="https://www.apache.org/images/S upportApache-small.png" class="support-asf" alt="Support Apache"></a><a href="http://www.apache.org/" target="_blank" class="pull-left"><img src="res/images/asf_logo_wide.svg" class="asf-logo" alt="The Apache Software Foundation"></a></div></div></header><main id="middle"><div><div id="mainLeft"><div id="nav-wrapper"><form action="https://www.google.com/search" method="get"><div class="searchbox"><input value="tomcat.apache.org" name="sitesearch" type="hidden"><input aria-label="Search text" placeholder="Search…" required="required" name="q" id="query" type="search"><button>GO</button></div></form><div class="asfevents"><a class="acevent" data-format="square" data-width="150"></a></div><nav><div><h2>Apache Tomcat</h2><ul><li><a href="./index.html">Home</a></li><li><a href="./taglibs.html">Taglibs</a></li><li><a href="./maven-plugin.html">Maven Plugin</a></li></ul></div><div><h2>Download</h2><ul><li><a href="./whichversion.html">Which version?</a></li><li><a href="https://tomc at.apache.org/download-11.cgi">Tomcat 11</a></li><li><a href="https://tomcat.apache.org/download-10.cgi">Tomcat 10</a></li><li><a href="https://tomcat.apache.org/download-90.cgi">Tomcat 9</a></li><li><a href="https://tomcat.apache.org/download-migration.cgi">Tomcat Migration Tool for Jakarta EE</a></li><li><a href="https://tomcat.apache.org/download-connectors.cgi">Tomcat Connectors</a></li><li><a href="https://tomcat.apache.org/download-native.cgi">Tomcat Native</a></li><li><a href="https://tomcat.apache.org/download-taglibs.cgi">Taglibs</a></li><li><a href="https://archive.apache.org/dist/tomcat/">Archives</a></li></ul></div><div><h2>Documentation</h2><ul><li><a href="./tomcat-11.0-doc/index.html">Tomcat 11.0</a></li><li><a href="./tomcat-10.1-doc/index.html">Tomcat 10.1</a></li><li><a href="./tomcat-9.0-doc/index.html">Tomcat 9.0</a></li><li><a href="./upgrading.html">Upgrading</a></li><li><a href="./connectors-doc/index.html">Tomcat Connectors</a></li><li><a href="./native-doc/i ndex.html">Tomcat Native 2</a></li><li><a href="./native-1.3-doc/index.html">Tomcat Native 1.3</a></li><li><a href="https://cwiki.apache.org/confluence/display/TOMCAT">Wiki</a></li><li><a href="./migration.html">Migration Guide</a></li><li><a href="./presentations.html">Presentations</a></li><li><a href="https://cwiki.apache.org/confluence/x/Bi8lBg">Specifications</a></li></ul></div><div><h2>Problems?</h2><ul><li><a href="./security.html">Security Reports</a></li><li><a href="./findhelp.html">Find help</a></li><li><a href="https://cwiki.apache.org/confluence/display/TOMCAT/FAQ">FAQ</a></li><li><a href="./lists.html">Mailing Lists</a></li><li><a href="./bugreport.html">Bug Database</a></li></ul></div><div><h2>Get Involved</h2><ul><li><a href="./getinvolved.html">Overview</a></li><li><a href="./source.html">Source code</a></li><li><a href="./ci.html">Buildbot</a></li><li><a href="./tools.html">Tools</a></li></ul></div><div><h2>Media</h2><ul><li><a href="https://twitter.com/theapacheto mcat">Twitter</a></li><li><a href="https://www.youtube.com/c/ApacheTomcatOfficial">YouTube</a></li><li><a href="https://blogs.apache.org/tomcat/">Blog</a></li></ul></div><div><h2>Misc</h2><ul><li><a href="./whoweare.html">Who We Are</a></li><li><a href="https://www.redbubble.com/people/comdev/works/30885254-apache-tomcat">Swag</a></li><li><a href="./heritage.html">Heritage</a></li><li><a href="http://www.apache.org">Apache Home</a></li><li><a href="./resources.html">Resources</a></li><li><a href="./contact.html">Contact</a></li><li><a href="./legal.html">Legal</a></li><li><a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy</a></li><li><a href="https://www.apache.org/foundation/contributing.html">Support Apache</a></li><li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li><li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li><li><a href="http://www.apache.org/licenses/">License</a></li></ul></div></nav></ div></div><div id="mainRight"><div id="content"><h2 style="display: none;">Content</h2><h3 id="Table_of_Contents">Table of Contents</h3><div class="text"> -<ul><li><a href="#General">General</a></li><li><a href="#Migrating_from_11.0.x_to_12.0.x">Migrating from 11.0.x to 12.0.x</a><ol><li><a href="#Java_21_required">Java 21 required</a></li><li><a href="#Specification_APIs">Specification APIs</a></li><li><a href="#Servlet_6.2">Servlet 6.2</a></li><li><a href="#Pages_4.1">Pages 4.1</a></li><li><a href="#Expression_Language_6.1">Expression Language 6.1</a></li><li><a href="#WebSocket_2.3">WebSocket 2.3</a></li><li><a href="#Authentication_3.2">Authentication 3.2</a></li><li><a href="#Annotations_3.1">Annotations 3.1</a></li><li><a href="#Internal_APIs">Internal APIs</a></li></ol></li><li><a href="#Upgrading_12.0.x">Upgrading 12.0.x</a><ol><li><a href="#Tomcat_12.0.x_noteable_changes">Tomcat 12.0.x noteable changes</a></li><li><a href="#Tomcat_12.0.x_configuration_file_differences">Tomcat 12.0.x configuration file differences</a></li></ol></li></ul> -</div><h3 id="General">General</h3><div class="text"> - -<p>Please read the general <a href="migration.html">Migration Guide page</a> -first, for common considerations that apply to migration or upgrade between -versions of Apache Tomcat<sup>®</sup>.</p> - -</div><h3 id="Migrating_from_11.0.x_to_12.0.x">Migrating from 11.0.x to 12.0.x</h3><div class="text"> - - <p>This section lists all the known changes between 11.0.x and 12.0.x - which may cause backwards compatibility problems when upgrading.</p> - - <div class="subsection"><h4 id="Java_21_required">Java 21 required</h4><div class="text"> - - <p>Apache Tomcat 12.0.x requires Java 21 or later. Apache Tomcat 11.0.x - required Java 17.</p> - - </div></div> - - <div class="subsection"><h4 id="Specification_APIs">Specification APIs</h4><div class="text"> - - <p>Apache Tomcat 12.0 supports the Jakarta Servlet 6.2, Jakarta Pages 4.1, - Jakarta Expression Language 6.1, JakartaWebSocket 2.3, - Jakarta Authentication 3.2 and Jakarta Annotations 3.1 - <a href="https://cwiki.apache.org/confluence/display/TOMCAT/Specifications">specifications</a>. - </p> - - </div></div> - - <div class="subsection"><h4 id="Servlet_6.2">Servlet 6.2</h4><div class="text"> - - <p>None.</p> - - </div></div> - - <div class="subsection"><h4 id="Pages_4.1">Pages 4.1</h4><div class="text"> - - <p>None.</p> - - </div></div> - - <div class="subsection"><h4 id="Expression_Language_6.1">Expression Language 6.1</h4><div class="text"> - - <p>None.</p> - - </div></div> - - <div class="subsection"><h4 id="WebSocket_2.3">WebSocket 2.3</h4><div class="text"> - - <p><code>ClientEndpointConfig.Configurator.afterResponse()</code> is now - called after every WebSocket handshake regardless of whether the - handshake is successful or not.</p> - - <p>When attempting to write a message via a WebSocket session that has been - closed, an <code>IOException</code> rather than an - <code>IllegalStateExcpetion</code> is thrown for consistency with - <code>Writer</code> and <code>OutputStream</code>.</p> - - </div></div> - - <div class="subsection"><h4 id="Authentication_3.2">Authentication 3.2</h4><div class="text"> - - <p>None.</p> - - </div></div> - - <div class="subsection"><h4 id="Annotations_3.1">Annotations 3.1</h4><div class="text"> - - <p>None.</p> - - </div></div> - - <div class="subsection"><h4 id="Internal_APIs">Internal APIs</h4><div class="text"> - - <p>Whilst the Tomcat 12.0 internal API is broadly compatible with Tomcat - 11.0 there have been many changes at the detail level and they are not - binary compatible. Developers of custom components that interact with - Tomcat's internals should review the JavaDoc for the relevant API.</p> - - <p>Of particular note are:</p> - <ul> - <li>All code marked as deprecated in 11.0.x has been removed.</li> - <li>The <code>useAcceptRanges</code> initialisation parameter for the - default servlet has been removed. It is now effectively hard coded to - <code>true</code></li> - <li>The default for the <code>encodedSolidusHandling</code> attribute of - a <strong>Context</strong> has changed from <code>decode</code> to - <code>reject</code>.</li> - <li>When searching the web application class loader for a resource or - resources by name, align the behaviour with the JRE class loaders and - always return <code>null</code> if the provided name starts with - <code>/</code>.</li> - <li>The default value for the <code>allowPostAsGet</code> initialisation - parameter of the Default servlet has been updated from - <code>true</code> to <code>false</code>. This means a direct request - (i.e. not a forward or an include) for a static resource using the - POST method will be rejected by default.</li> - <li>Calls to <code>HttpServletRequest.getContextPath()</code> now return - the canonical context path for the web application rather than the - component of the request URI presented by the user agent that maps to - the context path.</li> - <li>The default value of the <code>archiveIndexStrategy</code> attribute - of the <code>Resources</code> element has been changed from - <code>simple</code> to <code>bloom</code> to improve web application - class loading performance.</li> - <li>The default for the <code>digestInRfc3112Order</code> attribute of - <code>MessageDigestCredentialHandler</code> has been changed from - <code>false</code> to <code>true</code>.</li> - <li>The default value of the <code>cookiesWithoutEquals</code> attribute - of the <code>Rfc6265CookieProcessor</code> has been changed from - <code>name</code> to <code>ignore</code>.</li> - <li>The default password value (was <code>changeit</code>) for the - <code>certificateKeystorePassword</code> attribute of a certificate - has been removed.</li> - <li>Support for HTTP/0.9 has been removed.</li> - </ul> - - </div></div> - -</div><h3 id="Upgrading_12.0.x">Upgrading 12.0.x</h3><div class="text"> - - <p>When upgrading instances of Apache Tomcat from one version of Tomcat 12.0 - to another, particularly when using separate locations for $CATALINA_HOME and - $CATALINA_BASE, it is necessary to ensure that any changes in the - configuration files such as new attributes and changes to defaults are applied - as part of the upgrade. To assist with the identification of these changes, - the form below may be used to view the differences between the configuration - files in different versions of Tomcat 12.0.</p> - - <div class="subsection"><h4 id="Tomcat_12.0.x_noteable_changes">Tomcat 12.0.x noteable changes</h4><div class="text"> - <p>The Tomcat developers aim for each stable patch release to be fully - backwards compatible with the previous release. Occasionally, it is - necessary to break backwards compatibility in order to fix a bug. In most - cases, these changes will go unnoticed. This section lists changes that - are not fully backwards compatible and might cause breakage when - upgrading.</p> - <ul> - <li> - None. - </li> - </ul> - </div></div> - - <div class="subsection"><h4 id="Tomcat_12.0.x_configuration_file_differences">Tomcat 12.0.x configuration file differences</h4><div class="text"> - - <p>Select a configuration file, old version and new version from the boxes - below and then click "View differences" to see the differences. - The differences will be shown in a new tab/window.</p> - - <p><b>Note:</b> If there are no differences you will see an error page.</p> - - <form action="https://gitbox.apache.org/filediff" method="get" target="_blank"> - - <input type="hidden" name="repo" value="tomcat.git"> - - <p><label>Configuration file: - <select name="file"> - <option value="conf" selected>All configuration files</option> - <option value="conf/catalina.policy">catalina.policy</option> - <option value="conf/catalina.properties">catalina.properties</option> - <option value="conf/context.xml">context.xml</option> - <option value="conf/logging.properties">logging.properties</option> - <option value="conf/server.xml">server.xml</option> - <option value="conf/tomcat-users.xml">tomcat-users.xml</option> - <option value="conf/web.xml">web.xml</option> - </select></label> - </p> - <p><label>Old version: - <select name="origin"> - <option value="12.0.0-M1" selected>12.0.0-M1</option> - </select>,</label> <label>new version: - <select name="target"> - <option value="12.0.0-M1" selected>12.0.0-M1</option> - <option value="HEAD">trunk (unreleased)</option> - </select></label> - </p> - - <p> - <button>View Differences</button> - </p> - </form> - <p>You can also use a Git command similar to the following from within a - working copy:</p> - <div class="codeBox"><pre><code>git diff 12.0.0-M1 12.0.0-M2 -- conf/</code></pre></div> - </div></div> - -</div></div></div></div></main><footer id="footer"> - Copyright © 1999-2025, The Apache Software Foundation - <br> - Apache Tomcat, Tomcat, Apache, the Apache Tomcat logo and the Apache logo - are either registered trademarks or trademarks of the Apache Software - Foundation. +<!DOCTYPE html SYSTEM "about:legacy-compat"> +<html lang="en"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link href="res/css/tomcat.css" rel="stylesheet" type="text/css"><link href="res/css/fonts/fonts.css" rel="stylesheet" type="text/css"><title>Apache Tomcat® - Migration Guide - Tomcat 12.0.x</title><meta name="author" content="Apache Tomcat Project"><script src="https://www.apachecon.com/event-images/snippet.js"></script></head><body><div id="wrapper"><header id="header"><div class="clearfix"><div class="menu-toggler pull-left" tabindex="1"><div class="hamburger"></div></div><a href="http://tomcat.apache.org/"><img class="tomcat-logo pull-left noPrint" alt="Tomcat Home" src="res/images/tomcat.png"></a><h1 class="pull-left">Apache Tomcat<sup>®</sup></h1><div class="asf-logos pull-right"><a href="https://www.apache.org/foundation/contributing.html" target="_blank" class="pull-left"><img src="https://www.apache.org/images/S upportApache-small.png" class="support-asf" alt="Support Apache"></a><a href="http://www.apache.org/" target="_blank" class="pull-left"><img src="res/images/asf_logo_wide.svg" class="asf-logo" alt="The Apache Software Foundation"></a></div></div></header><main id="middle"><div><div id="mainLeft"><div id="nav-wrapper"><form action="https://www.google.com/search" method="get"><div class="searchbox"><input value="tomcat.apache.org" name="sitesearch" type="hidden"><input aria-label="Search text" placeholder="Search…" required="required" name="q" id="query" type="search"><button>GO</button></div></form><div class="asfevents"><a class="acevent" data-format="square" data-width="150"></a></div><nav><div><h2>Apache Tomcat</h2><ul><li><a href="./index.html">Home</a></li><li><a href="./taglibs.html">Taglibs</a></li><li><a href="./maven-plugin.html">Maven Plugin</a></li></ul></div><div><h2>Download</h2><ul><li><a href="./whichversion.html">Which version?</a></li><li><a href="https://tomc at.apache.org/download-11.cgi">Tomcat 11</a></li><li><a href="https://tomcat.apache.org/download-10.cgi">Tomcat 10</a></li><li><a href="https://tomcat.apache.org/download-90.cgi">Tomcat 9</a></li><li><a href="https://tomcat.apache.org/download-migration.cgi">Tomcat Migration Tool for Jakarta EE</a></li><li><a href="https://tomcat.apache.org/download-connectors.cgi">Tomcat Connectors</a></li><li><a href="https://tomcat.apache.org/download-native.cgi">Tomcat Native</a></li><li><a href="https://tomcat.apache.org/download-taglibs.cgi">Taglibs</a></li><li><a href="https://archive.apache.org/dist/tomcat/">Archives</a></li></ul></div><div><h2>Documentation</h2><ul><li><a href="./tomcat-11.0-doc/index.html">Tomcat 11.0</a></li><li><a href="./tomcat-10.1-doc/index.html">Tomcat 10.1</a></li><li><a href="./tomcat-9.0-doc/index.html">Tomcat 9.0</a></li><li><a href="./upgrading.html">Upgrading</a></li><li><a href="./connectors-doc/index.html">Tomcat Connectors</a></li><li><a href="./native-doc/i ndex.html">Tomcat Native 2</a></li><li><a href="./native-1.3-doc/index.html">Tomcat Native 1.3</a></li><li><a href="https://cwiki.apache.org/confluence/display/TOMCAT">Wiki</a></li><li><a href="./migration.html">Migration Guide</a></li><li><a href="./presentations.html">Presentations</a></li><li><a href="https://cwiki.apache.org/confluence/x/Bi8lBg">Specifications</a></li></ul></div><div><h2>Problems?</h2><ul><li><a href="./security.html">Security Reports</a></li><li><a href="./findhelp.html">Find help</a></li><li><a href="https://cwiki.apache.org/confluence/display/TOMCAT/FAQ">FAQ</a></li><li><a href="./lists.html">Mailing Lists</a></li><li><a href="./bugreport.html">Bug Database</a></li></ul></div><div><h2>Get Involved</h2><ul><li><a href="./getinvolved.html">Overview</a></li><li><a href="./source.html">Source code</a></li><li><a href="./ci.html">Buildbot</a></li><li><a href="./tools.html">Tools</a></li></ul></div><div><h2>Media</h2><ul><li><a href="https://twitter.com/theapacheto mcat">Twitter</a></li><li><a href="https://www.youtube.com/c/ApacheTomcatOfficial">YouTube</a></li><li><a href="https://blogs.apache.org/tomcat/">Blog</a></li></ul></div><div><h2>Misc</h2><ul><li><a href="./whoweare.html">Who We Are</a></li><li><a href="https://www.redbubble.com/people/comdev/works/30885254-apache-tomcat">Swag</a></li><li><a href="./heritage.html">Heritage</a></li><li><a href="http://www.apache.org">Apache Home</a></li><li><a href="./resources.html">Resources</a></li><li><a href="./contact.html">Contact</a></li><li><a href="./legal.html">Legal</a></li><li><a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy</a></li><li><a href="https://www.apache.org/foundation/contributing.html">Support Apache</a></li><li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li><li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li><li><a href="http://www.apache.org/licenses/">License</a></li></ul></div></nav></ div></div><div id="mainRight"><div id="content"><h2 style="display: none;">Content</h2><h3 id="Table_of_Contents">Table of Contents</h3><div class="text"> +<ul><li><a href="#General">General</a></li><li><a href="#Migrating_from_11.0.x_to_12.0.x">Migrating from 11.0.x to 12.0.x</a><ol><li><a href="#Java_21_required">Java 21 required</a></li><li><a href="#Specification_APIs">Specification APIs</a></li><li><a href="#Servlet_6.2">Servlet 6.2</a></li><li><a href="#Pages_4.1">Pages 4.1</a></li><li><a href="#Expression_Language_6.1">Expression Language 6.1</a></li><li><a href="#WebSocket_2.3">WebSocket 2.3</a></li><li><a href="#Authentication_3.2">Authentication 3.2</a></li><li><a href="#Annotations_3.1">Annotations 3.1</a></li><li><a href="#Internal_APIs">Internal APIs</a></li></ol></li><li><a href="#Upgrading_12.0.x">Upgrading 12.0.x</a><ol><li><a href="#Tomcat_12.0.x_noteable_changes">Tomcat 12.0.x noteable changes</a></li><li><a href="#Tomcat_12.0.x_configuration_file_differences">Tomcat 12.0.x configuration file differences</a></li></ol></li></ul> +</div><h3 id="General">General</h3><div class="text"> + +<p>Please read the general <a href="migration.html">Migration Guide page</a> +first, for common considerations that apply to migration or upgrade between +versions of Apache Tomcat<sup>®</sup>.</p> + +</div><h3 id="Migrating_from_11.0.x_to_12.0.x">Migrating from 11.0.x to 12.0.x</h3><div class="text"> + + <p>This section lists all the known changes between 11.0.x and 12.0.x + which may cause backwards compatibility problems when upgrading.</p> + + <div class="subsection"><h4 id="Java_21_required">Java 21 required</h4><div class="text"> + + <p>Apache Tomcat 12.0.x requires Java 21 or later. Apache Tomcat 11.0.x + required Java 17.</p> + + </div></div> + + <div class="subsection"><h4 id="Specification_APIs">Specification APIs</h4><div class="text"> + + <p>Apache Tomcat 12.0 supports the Jakarta Servlet 6.2, Jakarta Pages 4.1, + Jakarta Expression Language 6.1, JakartaWebSocket 2.3, + Jakarta Authentication 3.2 and Jakarta Annotations 3.1 + <a href="https://cwiki.apache.org/confluence/display/TOMCAT/Specifications">specifications</a>. + </p> + + </div></div> + + <div class="subsection"><h4 id="Servlet_6.2">Servlet 6.2</h4><div class="text"> + + <p>None.</p> + + </div></div> + + <div class="subsection"><h4 id="Pages_4.1">Pages 4.1</h4><div class="text"> + + <p>None.</p> + + </div></div> + + <div class="subsection"><h4 id="Expression_Language_6.1">Expression Language 6.1</h4><div class="text"> + + <p>None.</p> + + </div></div> + + <div class="subsection"><h4 id="WebSocket_2.3">WebSocket 2.3</h4><div class="text"> + + <p><code>ClientEndpointConfig.Configurator.afterResponse()</code> is now + called after every WebSocket handshake regardless of whether the + handshake is successful or not.</p> + + <p>When attempting to write a message via a WebSocket session that has been + closed, an <code>IOException</code> rather than an + <code>IllegalStateExcpetion</code> is thrown for consistency with + <code>Writer</code> and <code>OutputStream</code>.</p> + + </div></div> + + <div class="subsection"><h4 id="Authentication_3.2">Authentication 3.2</h4><div class="text"> + + <p>None.</p> + + </div></div> + + <div class="subsection"><h4 id="Annotations_3.1">Annotations 3.1</h4><div class="text"> + + <p>None.</p> + + </div></div> + + <div class="subsection"><h4 id="Internal_APIs">Internal APIs</h4><div class="text"> + + <p>Whilst the Tomcat 12.0 internal API is broadly compatible with Tomcat + 11.0 there have been many changes at the detail level and they are not + binary compatible. Developers of custom components that interact with + Tomcat's internals should review the JavaDoc for the relevant API.</p> + + <p>Of particular note are:</p> + <ul> + <li>All code marked as deprecated in 11.0.x has been removed.</li> + <li>The <code>useAcceptRanges</code> initialisation parameter for the + default servlet has been removed. It is now effectively hard coded to + <code>true</code></li> + <li>The default for the <code>encodedSolidusHandling</code> attribute of + a <strong>Context</strong> has changed from <code>decode</code> to + <code>reject</code>.</li> + <li>When searching the web application class loader for a resource or + resources by name, align the behaviour with the JRE class loaders and + always return <code>null</code> if the provided name starts with + <code>/</code>.</li> + <li>The default value for the <code>allowPostAsGet</code> initialisation + parameter of the Default servlet has been updated from + <code>true</code> to <code>false</code>. This means a direct request + (i.e. not a forward or an include) for a static resource using the + POST method will be rejected by default.</li> + <li>Calls to <code>HttpServletRequest.getContextPath()</code> now return + the canonical context path for the web application rather than the + component of the request URI presented by the user agent that maps to + the context path.</li> + <li>The default value of the <code>archiveIndexStrategy</code> attribute + of the <code>Resources</code> element has been changed from + <code>simple</code> to <code>bloom</code> to improve web application + class loading performance.</li> + <li>The default for the <code>digestInRfc3112Order</code> attribute of + <code>MessageDigestCredentialHandler</code> has been changed from + <code>false</code> to <code>true</code>.</li> + <li>The default value of the <code>cookiesWithoutEquals</code> attribute + of the <code>Rfc6265CookieProcessor</code> has been changed from + <code>name</code> to <code>ignore</code>.</li> + <li>The default password value (was <code>changeit</code>) for the + <code>certificateKeystorePassword</code> attribute of a certificate + has been removed.</li> + <li>Support for HTTP/0.9 has been removed.</li> + </ul> + + </div></div> + +</div><h3 id="Upgrading_12.0.x">Upgrading 12.0.x</h3><div class="text"> + + <p>When upgrading instances of Apache Tomcat from one version of Tomcat 12.0 + to another, particularly when using separate locations for $CATALINA_HOME and + $CATALINA_BASE, it is necessary to ensure that any changes in the + configuration files such as new attributes and changes to defaults are applied + as part of the upgrade. To assist with the identification of these changes, + the form below may be used to view the differences between the configuration + files in different versions of Tomcat 12.0.</p> + + <div class="subsection"><h4 id="Tomcat_12.0.x_noteable_changes">Tomcat 12.0.x noteable changes</h4><div class="text"> + <p>The Tomcat developers aim for each stable patch release to be fully + backwards compatible with the previous release. Occasionally, it is + necessary to break backwards compatibility in order to fix a bug. In most + cases, these changes will go unnoticed. This section lists changes that + are not fully backwards compatible and might cause breakage when + upgrading.</p> + <ul> + <li> + None. + </li> + </ul> + </div></div> + + <div class="subsection"><h4 id="Tomcat_12.0.x_configuration_file_differences">Tomcat 12.0.x configuration file differences</h4><div class="text"> + + <p>Select a configuration file, old version and new version from the boxes + below and then click "View differences" to see the differences. + The differences will be shown in a new tab/window.</p> + + <p><b>Note:</b> If there are no differences you will see an error page.</p> + + <form action="https://gitbox.apache.org/filediff" method="get" target="_blank"> + + <input type="hidden" name="repo" value="tomcat.git"> + + <p><label>Configuration file: + <select name="file"> + <option value="conf" selected>All configuration files</option> + <option value="conf/catalina.policy">catalina.policy</option> + <option value="conf/catalina.properties">catalina.properties</option> + <option value="conf/context.xml">context.xml</option> + <option value="conf/logging.properties">logging.properties</option> + <option value="conf/server.xml">server.xml</option> + <option value="conf/tomcat-users.xml">tomcat-users.xml</option> + <option value="conf/web.xml">web.xml</option> + </select></label> + </p> + <p><label>Old version: + <select name="origin"> + <option value="12.0.0-M1" selected>12.0.0-M1</option> + </select>,</label> <label>new version: + <select name="target"> + <option value="12.0.0-M1" selected>12.0.0-M1</option> + <option value="HEAD">trunk (unreleased)</option> + </select></label> + </p> + + <p> + <button>View Differences</button> + </p> + </form> + <p>You can also use a Git command similar to the following from within a + working copy:</p> + <div class="codeBox"><pre><code>git diff 12.0.0-M1 12.0.0-M2 -- conf/</code></pre></div> + </div></div> + +</div></div></div></div></main><footer id="footer"> + Copyright © 1999-2025, The Apache Software Foundation + <br> + Apache Tomcat, Tomcat, Apache, the Apache Tomcat logo and the Apache logo + are either registered trademarks or trademarks of the Apache Software + Foundation. </footer></div><script src="res/js/tomcat.js"></script></body></html> \ No newline at end of file Modified: tomcat/site/trunk/docs/oldnews.html ============================================================================== --- tomcat/site/trunk/docs/oldnews.html Sat Apr 4 11:55:09 2026 (r1932841) +++ tomcat/site/trunk/docs/oldnews.html Sat Apr 4 11:58:27 2026 (r1932842) @@ -20,6 +20,39 @@ <li><a href="oldnews-2011.html">year 2011</a></li> <li><a href="oldnews-2010.html">year 2010</a></li> </ul> +</div><h3 id="Tomcat_11.0.20_Released"><span class="pull-right">2026-03-20</span> Tomcat 11.0.20 Released</h3><div class="text"> +<p> +The Apache Tomcat Project is proud to announce the release of version 11.0.20 +of Apache Tomcat. This release implements specifications that are part of the +Jakarta EE 11 platform.</p> +<p>Users of Tomcat 10 onwards should be aware that, as a result of the move from +Java EE to Jakarta EE as part of the transfer of Java EE to the Eclipse +Foundation, the primary package for all implemented APIs has changed from +<code>javax.*</code> to <code>jakarta.*</code>. This will almost certainly +require code changes to enable applications to migrate from Tomcat 9 and earlier +to Tomcat 10 and later. A +<a href="https://github.com/apache/tomcat-jakartaee-migration">migration +tool</a> is available to aid this process.</p> +<p>The notable changes in this release are:</p> +<ul> +<li>Relax HTTP/2 header validation and respond to invalid requests with + a stream reset or a 400 response as appropriate rather then with a + connection reset.</li> +<li>Fix bug 69964: Respect the configured cipher order, which was no + longer respected following the addition of TLS 1.3 specific cipher + configuration. TLS 1.3 ciphers will always be first in the list.</li> +<li>Update Tomcat Native to 2.0.14 and increase the recommended version to + 2.0.14.</li> +</ul> +<p> +Full details of these changes, and all the other changes, are available in the +<a href="tomcat-11.0-doc/changelog.html#Tomcat_11.0.20_(markt)">Tomcat 11 +changelog</a>. +</p> + +<p style="text-align: center;"> +<a href="https://tomcat.apache.org/download-11.cgi">Download</a> +</p> </div><h3 id="Tomcat_9.0.116_Released"><span class="pull-right">2026-03-20</span> Tomcat 9.0.116 Released</h3><div class="text"> <p> The Apache Tomcat Project is proud to announce the release of version 9.0.116 Modified: tomcat/site/trunk/docs/whichversion.html ============================================================================== --- tomcat/site/trunk/docs/whichversion.html Sat Apr 4 11:55:09 2026 (r1932841) +++ tomcat/site/trunk/docs/whichversion.html Sat Apr 4 11:58:27 2026 (r1932842) @@ -31,7 +31,7 @@ specifications</a> and the respective Ap <td>3.1</td> <td>3.0</td> <td>11.0.x</td> - <td>11.0.20</td> + <td>11.0.21</td> <td>17 and later</td> </tr> Modified: tomcat/site/trunk/xdocs/download-11.xml ============================================================================== --- tomcat/site/trunk/xdocs/download-11.xml Sat Apr 4 11:55:09 2026 (r1932841) +++ tomcat/site/trunk/xdocs/download-11.xml Sat Apr 4 11:58:27 2026 (r1932842) @@ -31,7 +31,7 @@ Define variable to hold the current version number. Documentation for ezt.py: https://code.google.com/p/ezt/wiki/Syntax --> -[define v]11.0.20[end] +[define v]11.0.21[end] <a href="https://downloads.apache.org/tomcat/tomcat-11/KEYS">KEYS</a> | <a href="#[v]">[v]</a> | <a href="[preferred]tomcat/tomcat-11" rel="nofollow">Browse</a> | Modified: tomcat/site/trunk/xdocs/index.xml ============================================================================== --- tomcat/site/trunk/xdocs/index.xml Sat Apr 4 11:55:09 2026 (r1932841) +++ tomcat/site/trunk/xdocs/index.xml Sat Apr 4 11:58:27 2026 (r1932842) @@ -48,6 +48,37 @@ these users and their stories are listed wiki page.</p> </section> +<section name="Tomcat 11.0.21 Released" rtext="2026-04-04"> +<p> +The Apache Tomcat Project is proud to announce the release of version 11.0.21 +of Apache Tomcat. This release implements specifications that are part of the +Jakarta EE 11 platform.</p> +<p>Users of Tomcat 10 onwards should be aware that, as a result of the move from +Java EE to Jakarta EE as part of the transfer of Java EE to the Eclipse +Foundation, the primary package for all implemented APIs has changed from +<code>javax.*</code> to <code>jakarta.*</code>. This will almost certainly +require code changes to enable applications to migrate from Tomcat 9 and earlier +to Tomcat 10 and later. A +<a href="https://github.com/apache/tomcat-jakartaee-migration">migration +tool</a> is available to aid this process.</p> +<p>The notable changes in this release are:</p> +<ul> +<li>Fix a bug in the non-blocking flushing code for NIO+TLS that meant + that a response may not have been fully written until the connection + was closed. Pull request 966 provided by Phil Clay.</li> +<li>Improved HTTP/2 error handling</li> +<li>Better error handling for the EncryptInterceptor</li> +</ul> +<p> +Full details of these changes, and all the other changes, are available in the +<a href="tomcat-11.0-doc/changelog.html#Tomcat_11.0.21_(markt)">Tomcat 11 +changelog</a>. +</p> + +<p style="text-align: center;"> +<a href="download-11.cgi">Download</a> +</p> +</section> <section name="Tomcat 9.0.117 Released" rtext="2026-04-03"> <p> @@ -110,40 +141,6 @@ changelog</a>. </section> -<section name="Tomcat 11.0.20 Released" rtext="2026-03-20"> -<p> -The Apache Tomcat Project is proud to announce the release of version 11.0.20 -of Apache Tomcat. This release implements specifications that are part of the -Jakarta EE 11 platform.</p> -<p>Users of Tomcat 10 onwards should be aware that, as a result of the move from -Java EE to Jakarta EE as part of the transfer of Java EE to the Eclipse -Foundation, the primary package for all implemented APIs has changed from -<code>javax.*</code> to <code>jakarta.*</code>. This will almost certainly -require code changes to enable applications to migrate from Tomcat 9 and earlier -to Tomcat 10 and later. A -<a href="https://github.com/apache/tomcat-jakartaee-migration">migration -tool</a> is available to aid this process.</p> -<p>The notable changes in this release are:</p> -<ul> -<li>Relax HTTP/2 header validation and respond to invalid requests with - a stream reset or a 400 response as appropriate rather then with a - connection reset.</li> -<li>Fix bug 69964: Respect the configured cipher order, which was no - longer respected following the addition of TLS 1.3 specific cipher - configuration. TLS 1.3 ciphers will always be first in the list.</li> -<li>Update Tomcat Native to 2.0.14 and increase the recommended version to - 2.0.14.</li> -</ul> -<p> -Full details of these changes, and all the other changes, are available in the -<a href="tomcat-11.0-doc/changelog.html#Tomcat_11.0.20_(markt)">Tomcat 11 -changelog</a>. -</p> - -<p style="text-align: center;"> -<a href="download-11.cgi">Download</a> -</p> -</section> <section name="Tomcat Native 2.0.14 Released" rtext="2026-03-10"> <p> Modified: tomcat/site/trunk/xdocs/migration-11.0.xml ============================================================================== --- tomcat/site/trunk/xdocs/migration-11.0.xml Sat Apr 4 11:55:09 2026 (r1932841) +++ tomcat/site/trunk/xdocs/migration-11.0.xml Sat Apr 4 11:58:27 2026 (r1932842) @@ -238,8 +238,9 @@ versions of Apache Tomcat<sup>®</su <option value="11.0.13">11.0.13</option> <option value="11.0.14">11.0.14</option> <option value="11.0.15">11.0.15</option> - <option value="11.0.18" selected="selected">11.0.18</option> - <option value="11.0.20">11.0.20</option> + <option value="11.0.18">11.0.18</option> + <option value="11.0.20" selected="selected">11.0.20</option> + <option value="11.0.21">11.0.21</option> </select>,</label> <label>new version: <select name="target"> <option value="11.0.0-M1">11.0.0-M1</option> @@ -282,7 +283,8 @@ versions of Apache Tomcat<sup>®</su <option value="11.0.14">11.0.14</option> <option value="11.0.15">11.0.15</option> <option value="11.0.18">11.0.18</option> - <option value="11.0.20" selected="selected">11.0.20</option> + <option value="11.0.20">11.0.20</option> + <option value="11.0.21" selected="selected">11.0.21</option> <option value="HEAD">trunk (unreleased)</option> </select></label> </p> Modified: tomcat/site/trunk/xdocs/oldnews.xml ============================================================================== --- tomcat/site/trunk/xdocs/oldnews.xml Sat Apr 4 11:55:09 2026 (r1932841) +++ tomcat/site/trunk/xdocs/oldnews.xml Sat Apr 4 11:58:27 2026 (r1932842) @@ -30,6 +30,40 @@ <li><a href="oldnews-2010.html">year 2010</a></li> </ul> </section> +<section name="Tomcat 11.0.20 Released" rtext="2026-03-20"> +<p> +The Apache Tomcat Project is proud to announce the release of version 11.0.20 +of Apache Tomcat. This release implements specifications that are part of the +Jakarta EE 11 platform.</p> +<p>Users of Tomcat 10 onwards should be aware that, as a result of the move from +Java EE to Jakarta EE as part of the transfer of Java EE to the Eclipse +Foundation, the primary package for all implemented APIs has changed from +<code>javax.*</code> to <code>jakarta.*</code>. This will almost certainly +require code changes to enable applications to migrate from Tomcat 9 and earlier +to Tomcat 10 and later. A +<a href="https://github.com/apache/tomcat-jakartaee-migration">migration +tool</a> is available to aid this process.</p> +<p>The notable changes in this release are:</p> +<ul> +<li>Relax HTTP/2 header validation and respond to invalid requests with + a stream reset or a 400 response as appropriate rather then with a + connection reset.</li> +<li>Fix bug 69964: Respect the configured cipher order, which was no + longer respected following the addition of TLS 1.3 specific cipher + configuration. TLS 1.3 ciphers will always be first in the list.</li> +<li>Update Tomcat Native to 2.0.14 and increase the recommended version to + 2.0.14.</li> +</ul> +<p> +Full details of these changes, and all the other changes, are available in the +<a href="tomcat-11.0-doc/changelog.html#Tomcat_11.0.20_(markt)">Tomcat 11 +changelog</a>. +</p> + +<p style="text-align: center;"> +<a href="download-11.cgi">Download</a> +</p> +</section> <section name="Tomcat 9.0.116 Released" rtext="2026-03-20"> <p> Modified: tomcat/site/trunk/xdocs/whichversion.xml ============================================================================== --- tomcat/site/trunk/xdocs/whichversion.xml Sat Apr 4 11:55:09 2026 (r1932841) +++ tomcat/site/trunk/xdocs/whichversion.xml Sat Apr 4 11:58:27 2026 (r1932842) @@ -42,7 +42,7 @@ specifications</a> and the respective Ap <td>3.1</td> <td>3.0</td> <td>11.0.x</td> - <td>11.0.20</td> + <td>11.0.21</td> <td>17 and later</td> </tr> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
