You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2026/05/12 11:56:47 UTC
svn commit: r1934136 - tomcat/site/trunk/docs
Author: markt
Date: Tue May 12 11:56:47 2026
New Revision: 1934136
Log:
Force rebuild to try and trigger site update
Modified:
tomcat/site/trunk/docs/migration-12.0.html
Modified: tomcat/site/trunk/docs/migration-12.0.html
==============================================================================
--- tomcat/site/trunk/docs/migration-12.0.html Tue May 12 11:30:53 2026 (r1934135)
+++ tomcat/site/trunk/docs/migration-12.0.html Tue May 12 11:56:47 2026 (r1934136)
@@ -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
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org