Author: markt
Date: Mon Mar  9 12:13:16 2026
New Revision: 1932233

Log:
Populate 12.0.x migration guide with differences to date.

Modified:
   tomcat/site/trunk/docs/migration-12.0.html
   tomcat/site/trunk/xdocs/migration-12.0.xml

Modified: tomcat/site/trunk/docs/migration-12.0.html
==============================================================================
--- tomcat/site/trunk/docs/migration-12.0.html  Mon Mar  9 11:50:42 2026        
(r1932232)
+++ tomcat/site/trunk/docs/migration-12.0.html  Mon Mar  9 12:13:16 2026        
(r1932233)
@@ -31,51 +31,90 @@ versions of Apache Tomcat<sup>&reg;</sup
   
   <div class="subsection"><h4 id="Servlet_6.2">Servlet 6.2</h4><div 
class="text">
 
-    <p>TBD.</p>
+    <p>None.</p>
 
   </div></div>
 
   <div class="subsection"><h4 id="Pages_4.1">Pages 4.1</h4><div class="text">
 
-    <p>TBD.</p>
+    <p>None.</p>
 
   </div></div>
 
   <div class="subsection"><h4 id="Expression_Language_6.1">Expression Language 
6.1</h4><div class="text">
   
-    <p>TBD.</p>
+    <p>None.</p>
 
   </div></div>
 
   <div class="subsection"><h4 id="WebSocket_2.3">WebSocket 2.3</h4><div 
class="text">
 
-    <p>TBD.</p>
+    <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>TBD.</p>
+    <p>None.</p>
 
   </div></div>
 
   <div class="subsection"><h4 id="Annotations_3.1">Annotations 3.1</h4><div 
class="text">
   
-    <p>TBD.</p>
+    <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>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>TBD.</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>

Modified: tomcat/site/trunk/xdocs/migration-12.0.xml
==============================================================================
--- tomcat/site/trunk/xdocs/migration-12.0.xml  Mon Mar  9 11:50:42 2026        
(r1932232)
+++ tomcat/site/trunk/xdocs/migration-12.0.xml  Mon Mar  9 12:13:16 2026        
(r1932233)
@@ -44,51 +44,90 @@ versions of Apache Tomcat<sup>&#174;</su
   
   <subsection name="Servlet 6.2">
 
-    <p>TBD.</p>
+    <p>None.</p>
 
   </subsection>
 
   <subsection name="Pages 4.1">
 
-    <p>TBD.</p>
+    <p>None.</p>
 
   </subsection>
 
   <subsection name="Expression Language 6.1">
   
-    <p>TBD.</p>
+    <p>None.</p>
 
   </subsection>
 
   <subsection name="WebSocket 2.3">
 
-    <p>TBD.</p>
+    <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>
 
   </subsection>
 
   <subsection name="Authentication 3.2">
   
-    <p>TBD.</p>
+    <p>None.</p>
 
   </subsection>
 
   <subsection name="Annotations 3.1">
   
-    <p>TBD.</p>
+    <p>None.</p>
 
   </subsection>
 
   <subsection name="Internal APIs">
   
-    <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&apos;s
-    internals should review the JavaDoc for the relevant API.</p>
+    <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&apos;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>TBD.</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>
 
   </subsection>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to