You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2023/06/09 07:47:37 UTC

svn commit: r1910321 [2/3] - in /tomcat/site/trunk/docs/tomcat-9.0-doc: annotationapi/jquery/ api/jquery/ api/org/apache/catalina/core/ api/org/apache/catalina/filters/ api/org/apache/catalina/util/ api/org/apache/catalina/valves/ api/org/apache/tomcat...

Added: tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/TimeBucketCounter.html
URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/TimeBucketCounter.html?rev=1910321&view=auto
==============================================================================
--- tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/TimeBucketCounter.html (added)
+++ tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/TimeBucketCounter.html Fri Jun  9 07:47:37 2023
@@ -0,0 +1,451 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>TimeBucketCounter (Apache Tomcat 9.0.76 API Documentation)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.6.1.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.min.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TimeBucketCounter (Apache Tomcat 9.0.76 API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+<div class="aboutLanguage"><b>Apache Tomcat 9.0.76</b></div>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.catalina.util</a></div>
+<h2 title="Class TimeBucketCounter" class="title">Class TimeBucketCounter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.catalina.util.TimeBucketCounter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">TimeBucketCounter</span>
+extends java.lang.Object</pre>
+<div class="block">This class maintains a thread safe hash map that has timestamp-based buckets followed by a string for a key, and a
+ counter for a value. each time the increment() method is called it adds the key if it does not exist, increments its
+ value and returns it. a maintenance thread cleans up keys that are prefixed by previous timestamp buckets.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section>
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int,java.util.concurrent.ScheduledExecutorService)">TimeBucketCounter</a></span>&#8203;(int&nbsp;bucketDuration,
+                 java.util.concurrent.ScheduledExecutorService&nbsp;executorService)</code></th>
+<td class="colLast">
+<div class="block">Creates a new TimeBucketCounter with the specified lifetime.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section>
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#destroy()">destroy</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Sets isRunning to false to terminate the maintenance thread.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getActualDuration()">getActualDuration</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The actual duration may differ from the configured duration because it is set to the next power of 2 value in
+ order to perform very fast bit shift arithmetic.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCurrentBucketPrefix()">getCurrentBucketPrefix</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Calculates the current time bucket prefix by shifting bits for fast division, e.g. shift 16 bits is the same as
+ dividing by 65,536 which is about 1:05m.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMillisUntilNextBucket()">getMillisUntilNextBucket</a></span>()</code></th>
+<td class="colLast">
+<div class="block">When we want to test a full bucket duration we need to sleep until the next bucket starts.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNumBits()">getNumBits</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRatio()">getRatio</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the ratio between the configured duration param and the actual duration which will be set to the next
+ power of 2.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#increment(java.lang.String)">increment</a></span>&#8203;(java.lang.String&nbsp;identifier)</code></th>
+<td class="colLast">
+<div class="block">Increments the counter for the passed identifier in the current time bucket and returns the new value.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section>
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(int,java.util.concurrent.ScheduledExecutorService)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TimeBucketCounter</h4>
+<pre>public&nbsp;TimeBucketCounter&#8203;(int&nbsp;bucketDuration,
+                         java.util.concurrent.ScheduledExecutorService&nbsp;executorService)</pre>
+<div class="block">Creates a new TimeBucketCounter with the specified lifetime.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bucketDuration</code> - duration in seconds, e.g. for 1 minute pass 60</dd>
+<dd><code>executorService</code> - the executor service which will be used to run the maintenance</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section>
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="increment(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>increment</h4>
+<pre class="methodSignature">public final&nbsp;int&nbsp;increment&#8203;(java.lang.String&nbsp;identifier)</pre>
+<div class="block">Increments the counter for the passed identifier in the current time bucket and returns the new value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - an identifier for which we want to maintain count, e.g. IP Address</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the count within the current time bucket</dd>
+</dl>
+</li>
+</ul>
+<a id="getCurrentBucketPrefix()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCurrentBucketPrefix</h4>
+<pre class="methodSignature">public final&nbsp;int&nbsp;getCurrentBucketPrefix()</pre>
+<div class="block">Calculates the current time bucket prefix by shifting bits for fast division, e.g. shift 16 bits is the same as
+ dividing by 65,536 which is about 1:05m.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The current bucket prefix.</dd>
+</dl>
+</li>
+</ul>
+<a id="getNumBits()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumBits</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getNumBits()</pre>
+</li>
+</ul>
+<a id="getActualDuration()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActualDuration</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getActualDuration()</pre>
+<div class="block">The actual duration may differ from the configured duration because it is set to the next power of 2 value in
+ order to perform very fast bit shift arithmetic.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the actual bucket duration in milliseconds</dd>
+</dl>
+</li>
+</ul>
+<a id="getRatio()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRatio</h4>
+<pre class="methodSignature">public&nbsp;double&nbsp;getRatio()</pre>
+<div class="block">Returns the ratio between the configured duration param and the actual duration which will be set to the next
+ power of 2. We then multiply the configured requests param by the same ratio in order to compensate for the added
+ time, if any.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the ratio, e.g. 1.092 if the actual duration is 65_536 for the configured duration of 60_000</dd>
+</dl>
+</li>
+</ul>
+<a id="getMillisUntilNextBucket()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMillisUntilNextBucket</h4>
+<pre class="methodSignature">public&nbsp;long&nbsp;getMillisUntilNextBucket()</pre>
+<div class="block">When we want to test a full bucket duration we need to sleep until the next bucket starts.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the number of milliseconds until the next bucket</dd>
+</dl>
+</li>
+</ul>
+<a id="destroy()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>destroy</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;destroy()</pre>
+<div class="block">Sets isRunning to false to terminate the maintenance thread.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+<div class="aboutLanguage"><b>Apache Tomcat 9.0.76</b></div>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2000-2023 Apache Software Foundation. All Rights Reserved.</small></p>
+</footer>
+</body>
+</html>

Added: tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/valves/JsonAccessLogValve.CharElement.html
URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/valves/JsonAccessLogValve.CharElement.html?rev=1910321&view=auto
==============================================================================
--- tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/valves/JsonAccessLogValve.CharElement.html (added)
+++ tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/valves/JsonAccessLogValve.CharElement.html Fri Jun  9 07:47:37 2023
@@ -0,0 +1,329 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>JsonAccessLogValve.CharElement (Apache Tomcat 9.0.76 API Documentation)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.6.1.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.min.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="JsonAccessLogValve.CharElement (Apache Tomcat 9.0.76 API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+<div class="aboutLanguage"><b>Apache Tomcat 9.0.76</b></div>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.catalina.valves</a></div>
+<h2 title="Class JsonAccessLogValve.CharElement" class="title">Class JsonAccessLogValve.CharElement</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.catalina.valves.JsonAccessLogValve.CharElement</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="AbstractAccessLogValve.AccessLogElement.html" title="interface in org.apache.catalina.valves">AbstractAccessLogValve.AccessLogElement</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="JsonAccessLogValve.html" title="class in org.apache.catalina.valves">JsonAccessLogValve</a></dd>
+</dl>
+<hr>
+<pre>protected static class <span class="typeNameLabel">JsonAccessLogValve.CharElement</span>
+extends java.lang.Object
+implements <a href="AbstractAccessLogValve.AccessLogElement.html" title="interface in org.apache.catalina.valves">AbstractAccessLogValve.AccessLogElement</a></pre>
+<div class="block">write any char</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section>
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(char)">CharElement</a></span>&#8203;(char&nbsp;ch)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section>
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addElement(java.io.CharArrayWriter,java.util.Date,org.apache.catalina.connector.Request,org.apache.catalina.connector.Response,long)">addElement</a></span>&#8203;(java.io.CharArrayWriter&nbsp;buf,
+          java.util.Date&nbsp;date,
+          <a href="../connector/Request.html" title="class in org.apache.catalina.connector">Request</a>&nbsp;request,
+          <a href="../connector/Response.html" title="class in org.apache.catalina.connector">Response</a>&nbsp;response,
+          long&nbsp;time)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section>
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(char)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CharElement</h4>
+<pre>public&nbsp;CharElement&#8203;(char&nbsp;ch)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section>
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="addElement(java.io.CharArrayWriter,java.util.Date,org.apache.catalina.connector.Request,org.apache.catalina.connector.Response,long)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>addElement</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;addElement&#8203;(java.io.CharArrayWriter&nbsp;buf,
+                       java.util.Date&nbsp;date,
+                       <a href="../connector/Request.html" title="class in org.apache.catalina.connector">Request</a>&nbsp;request,
+                       <a href="../connector/Response.html" title="class in org.apache.catalina.connector">Response</a>&nbsp;response,
+                       long&nbsp;time)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="AbstractAccessLogValve.AccessLogElement.html#addElement(java.io.CharArrayWriter,java.util.Date,org.apache.catalina.connector.Request,org.apache.catalina.connector.Response,long)">addElement</a></code>&nbsp;in interface&nbsp;<code><a href="AbstractAccessLogValve.AccessLogElement.html" title="interface in org.apache.catalina.valves">AbstractAccessLogValve.AccessLogElement</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+<div class="aboutLanguage"><b>Apache Tomcat 9.0.76</b></div>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2000-2023 Apache Software Foundation. All Rights Reserved.</small></p>
+</footer>
+</body>
+</html>

Added: tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/tomcat/util/compat/Jre21Compat.html
URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/tomcat/util/compat/Jre21Compat.html?rev=1910321&view=auto
==============================================================================
--- tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/tomcat/util/compat/Jre21Compat.html (added)
+++ tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/tomcat/util/compat/Jre21Compat.html Fri Jun  9 07:47:37 2023
@@ -0,0 +1,704 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>Jre21Compat (Apache Tomcat 9.0.76 API Documentation)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.6.1.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.min.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Jre21Compat (Apache Tomcat 9.0.76 API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+<div class="aboutLanguage"><b>Apache Tomcat 9.0.76</b></div>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tomcat.util.compat</a></div>
+<h2 title="Class Jre21Compat" class="title">Class Jre21Compat</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="JreCompat.html" title="class in org.apache.tomcat.util.compat">org.apache.tomcat.util.compat.JreCompat</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="Jre19Compat.html" title="class in org.apache.tomcat.util.compat">org.apache.tomcat.util.compat.Jre19Compat</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tomcat.util.compat.Jre21Compat</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">Jre21Compat</span>
+extends <a href="Jre19Compat.html" title="class in org.apache.tomcat.util.compat">Jre19Compat</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section>
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tomcat.util.compat.JreCompat">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.tomcat.util.compat.<a href="JreCompat.html" title="class in org.apache.tomcat.util.compat">JreCompat</a></h3>
+<code><a href="JreCompat.html#getApplicationProtocolMethod">getApplicationProtocolMethod</a>, <a href="JreCompat.html#setApplicationProtocolsMethod">setApplicationProtocolsMethod</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section>
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Jre21Compat</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section>
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addBootModulePath(java.util.Deque)">addBootModulePath</a></span>&#8203;(java.util.Deque&lt;java.net.URL&gt;&nbsp;classPathUrlsToProcess)</code></th>
+<td class="colLast">
+<div class="block">Obtains the URLs for all the JARs on the module path when the JVM starts
+ and adds them to the provided Deque.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#canAccess(java.lang.Object,java.lang.reflect.AccessibleObject)">canAccess</a></span>&#8203;(java.lang.Object&nbsp;base,
+         java.lang.reflect.AccessibleObject&nbsp;accessibleObject)</code></th>
+<td class="colLast">
+<div class="block">Is the accessibleObject accessible (as a result of appropriate module
+ exports) on the provided instance?</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.lang.Object</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createVirtualThreadBuilder(java.lang.String)">createVirtualThreadBuilder</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Create a thread builder for virtual threads using the given name to name the threads.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#disableCachingForJarUrlConnections()">disableCachingForJarUrlConnections</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Disables caching for JAR URL connections.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getModuleName(java.lang.Class)">getModuleName</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">What is the module of the given class?</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>java.net.SocketAddress</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUnixDomainSocketAddress(java.lang.String)">getUnixDomainSocketAddress</a></span>&#8203;(java.lang.String&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Return Unix domain socket address for given path.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isExported(java.lang.Class)">isExported</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Is the given class in an exported package?</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isInstanceOfInaccessibleObjectException(java.lang.Throwable)">isInstanceOfInaccessibleObjectException</a></span>&#8203;(java.lang.Throwable&nbsp;t)</code></th>
+<td class="colLast">
+<div class="block">Test if the provided exception is an instance of
+ java.lang.reflect.InaccessibleObjectException.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#jarFileIsMultiRelease(java.util.jar.JarFile)">jarFileIsMultiRelease</a></span>&#8203;(java.util.jar.JarFile&nbsp;jarFile)</code></th>
+<td class="colLast">
+<div class="block">Is this JarFile a multi-release JAR file.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>java.util.jar.JarFile</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#jarFileNewInstance(java.io.File)">jarFileNewInstance</a></span>&#8203;(java.io.File&nbsp;f)</code></th>
+<td class="colLast">
+<div class="block">Creates a new JarFile instance.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#jarFileRuntimeMajorVersion()">jarFileRuntimeMajorVersion</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>java.nio.channels.ServerSocketChannel</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#openUnixDomainServerSocketChannel()">openUnixDomainServerSocketChannel</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create server socket channel using the Unix domain socket ProtocolFamily.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>java.nio.channels.SocketChannel</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#openUnixDomainSocketChannel()">openUnixDomainSocketChannel</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create socket channel using the Unix domain socket ProtocolFamily.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#threadBuilderStart(java.lang.Object,java.lang.Runnable)">threadBuilderStart</a></span>&#8203;(java.lang.Object&nbsp;threadBuilder,
+                  java.lang.Runnable&nbsp;command)</code></th>
+<td class="colLast">
+<div class="block">Create a thread with the given thread builder and use it to execute the given runnable.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tomcat.util.compat.Jre19Compat">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.tomcat.util.compat.<a href="Jre19Compat.html" title="class in org.apache.tomcat.util.compat">Jre19Compat</a></h3>
+<code><a href="Jre19Compat.html#getExecutor(java.lang.Thread)">getExecutor</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tomcat.util.compat.JreCompat">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.tomcat.util.compat.<a href="JreCompat.html" title="class in org.apache.tomcat.util.compat">JreCompat</a></h3>
+<code><a href="JreCompat.html#getApplicationProtocol(javax.net.ssl.SSLEngine)">getApplicationProtocol</a>, <a href="JreCompat.html#getInstance()">getInstance</a>, <a href="JreCompat.html#isAlpnSupported()">isAlpnSupported</a>, <a href="JreCompat.html#isGraalAvailable()">isGraalAvailable</a>, <a href="JreCompat.html#isJre11Available()">isJre11Available</a>, <a href="JreCompat.html#isJre16Available()">isJre16Available</a>, <a href="JreCompat.html#isJre19Available()">isJre19Available</a>, <a href="JreCompat.html#isJre21Available()">isJre21Available</a>, <a href="JreCompat.html#isJre9Available()">isJre9Available</a>, <a href="JreCompat.html#jarFileNewInstance(java.lang.String)">jarFileNewInstance</a>, <a href="JreCompat.html#setApplicationProtocols(javax.net.ssl.SSLParameters,java.lang.String%5B%5D)">setApplicationProtocols</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section>
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Jre21Compat</h4>
+<pre>public&nbsp;Jre21Compat()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section>
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="createVirtualThreadBuilder(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createVirtualThreadBuilder</h4>
+<pre class="methodSignature">public&nbsp;java.lang.Object&nbsp;createVirtualThreadBuilder&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="JreCompat.html#createVirtualThreadBuilder(java.lang.String)">JreCompat</a></code></span></div>
+<div class="block">Create a thread builder for virtual threads using the given name to name the threads.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="JreCompat.html#createVirtualThreadBuilder(java.lang.String)">createVirtualThreadBuilder</a></code>&nbsp;in class&nbsp;<code><a href="JreCompat.html" title="class in org.apache.tomcat.util.compat">JreCompat</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The base name for the threads</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The thread buidler for virtual threads</dd>
+</dl>
+</li>
+</ul>
+<a id="threadBuilderStart(java.lang.Object,java.lang.Runnable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>threadBuilderStart</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;threadBuilderStart&#8203;(java.lang.Object&nbsp;threadBuilder,
+                               java.lang.Runnable&nbsp;command)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="JreCompat.html#threadBuilderStart(java.lang.Object,java.lang.Runnable)">JreCompat</a></code></span></div>
+<div class="block">Create a thread with the given thread builder and use it to execute the given runnable.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="JreCompat.html#threadBuilderStart(java.lang.Object,java.lang.Runnable)">threadBuilderStart</a></code>&nbsp;in class&nbsp;<code><a href="JreCompat.html" title="class in org.apache.tomcat.util.compat">JreCompat</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>threadBuilder</code> - The thread builder to use to create a thread</dd>
+<dd><code>command</code> - The command to run</dd>
+</dl>
+</li>
+</ul>
+<a id="getUnixDomainSocketAddress(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUnixDomainSocketAddress</h4>
+<pre class="methodSignature">public&nbsp;java.net.SocketAddress&nbsp;getUnixDomainSocketAddress&#8203;(java.lang.String&nbsp;path)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="JreCompat.html#getUnixDomainSocketAddress(java.lang.String)">JreCompat</a></code></span></div>
+<div class="block">Return Unix domain socket address for given path.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="JreCompat.html#getUnixDomainSocketAddress(java.lang.String)">getUnixDomainSocketAddress</a></code>&nbsp;in class&nbsp;<code><a href="JreCompat.html" title="class in org.apache.tomcat.util.compat">JreCompat</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>path</code> - The path</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the socket address</dd>
+</dl>
+</li>
+</ul>
+<a id="openUnixDomainServerSocketChannel()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>openUnixDomainServerSocketChannel</h4>
+<pre class="methodSignature">public&nbsp;java.nio.channels.ServerSocketChannel&nbsp;openUnixDomainServerSocketChannel()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="JreCompat.html#openUnixDomainServerSocketChannel()">JreCompat</a></code></span></div>
+<div class="block">Create server socket channel using the Unix domain socket ProtocolFamily.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="JreCompat.html#openUnixDomainServerSocketChannel()">openUnixDomainServerSocketChannel</a></code>&nbsp;in class&nbsp;<code><a href="JreCompat.html" title="class in org.apache.tomcat.util.compat">JreCompat</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the server socket channel</dd>
+</dl>
+</li>
+</ul>
+<a id="openUnixDomainSocketChannel()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>openUnixDomainSocketChannel</h4>
+<pre class="methodSignature">public&nbsp;java.nio.channels.SocketChannel&nbsp;openUnixDomainSocketChannel()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="JreCompat.html#openUnixDomainSocketChannel()">JreCompat</a></code></span></div>
+<div class="block">Create socket channel using the Unix domain socket ProtocolFamily.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="JreCompat.html#openUnixDomainSocketChannel()">openUnixDomainSocketChannel</a></code>&nbsp;in class&nbsp;<code><a href="JreCompat.html" title="class in org.apache.tomcat.util.compat">JreCompat</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the socket channel</dd>
+</dl>
+</li>
+</ul>
+<a id="isInstanceOfInaccessibleObjectException(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isInstanceOfInaccessibleObjectException</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isInstanceOfInaccessibleObjectException&#8203;(java.lang.Throwable&nbsp;t)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="JreCompat.html#isInstanceOfInaccessibleObjectException(java.lang.Throwable)">JreCompat</a></code></span></div>
+<div class="block">Test if the provided exception is an instance of
+ java.lang.reflect.InaccessibleObjectException.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="JreCompat.html#isInstanceOfInaccessibleObjectException(java.lang.Throwable)">isInstanceOfInaccessibleObjectException</a></code>&nbsp;in class&nbsp;<code><a href="JreCompat.html" title="class in org.apache.tomcat.util.compat">JreCompat</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>t</code> - The exception to test</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the exception is an instance of
+         InaccessibleObjectException, otherwise <code>false</code></dd>
+</dl>
+</li>
+</ul>
+<a id="disableCachingForJarUrlConnections()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>disableCachingForJarUrlConnections</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;disableCachingForJarUrlConnections()
+                                        throws java.io.IOException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="JreCompat.html#disableCachingForJarUrlConnections()">JreCompat</a></code></span></div>
+<div class="block">Disables caching for JAR URL connections. For Java 8 and earlier, this also disables
+ caching for ALL URL connections.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="JreCompat.html#disableCachingForJarUrlConnections()">disableCachingForJarUrlConnections</a></code>&nbsp;in class&nbsp;<code><a href="JreCompat.html" title="class in org.apache.tomcat.util.compat">JreCompat</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - If a dummy JAR URLConnection can not be created</dd>
+</dl>
+</li>
+</ul>
+<a id="addBootModulePath(java.util.Deque)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addBootModulePath</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;addBootModulePath&#8203;(java.util.Deque&lt;java.net.URL&gt;&nbsp;classPathUrlsToProcess)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="JreCompat.html#addBootModulePath(java.util.Deque)">JreCompat</a></code></span></div>
+<div class="block">Obtains the URLs for all the JARs on the module path when the JVM starts
+ and adds them to the provided Deque.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="JreCompat.html#addBootModulePath(java.util.Deque)">addBootModulePath</a></code>&nbsp;in class&nbsp;<code><a href="JreCompat.html" title="class in org.apache.tomcat.util.compat">JreCompat</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>classPathUrlsToProcess</code> - The Deque to which the modules should be
+                                  added</dd>
+</dl>
+</li>
+</ul>
+<a id="jarFileNewInstance(java.io.File)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>jarFileNewInstance</h4>
+<pre class="methodSignature">public&nbsp;java.util.jar.JarFile&nbsp;jarFileNewInstance&#8203;(java.io.File&nbsp;f)
+                                         throws java.io.IOException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="JreCompat.html#jarFileNewInstance(java.io.File)">JreCompat</a></code></span></div>
+<div class="block">Creates a new JarFile instance. When running on Java 9 and later, the
+ JarFile will be multi-release JAR aware.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="JreCompat.html#jarFileNewInstance(java.io.File)">jarFileNewInstance</a></code>&nbsp;in class&nbsp;<code><a href="JreCompat.html" title="class in org.apache.tomcat.util.compat">JreCompat</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>f</code> - The JAR file to open</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A JarFile instance based on the provided file</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - If an I/O error occurs creating the JarFile instance</dd>
+</dl>
+</li>
+</ul>
+<a id="jarFileIsMultiRelease(java.util.jar.JarFile)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>jarFileIsMultiRelease</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;jarFileIsMultiRelease&#8203;(java.util.jar.JarFile&nbsp;jarFile)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="JreCompat.html#jarFileIsMultiRelease(java.util.jar.JarFile)">JreCompat</a></code></span></div>
+<div class="block">Is this JarFile a multi-release JAR file.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="JreCompat.html#jarFileIsMultiRelease(java.util.jar.JarFile)">jarFileIsMultiRelease</a></code>&nbsp;in class&nbsp;<code><a href="JreCompat.html" title="class in org.apache.tomcat.util.compat">JreCompat</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>jarFile</code> - The JarFile to test</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> If it is a multi-release JAR file and is configured
+         to behave as such.</dd>
+</dl>
+</li>
+</ul>
+<a id="jarFileRuntimeMajorVersion()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>jarFileRuntimeMajorVersion</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;jarFileRuntimeMajorVersion()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="JreCompat.html#jarFileRuntimeMajorVersion()">jarFileRuntimeMajorVersion</a></code>&nbsp;in class&nbsp;<code><a href="JreCompat.html" title="class in org.apache.tomcat.util.compat">JreCompat</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="canAccess(java.lang.Object,java.lang.reflect.AccessibleObject)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>canAccess</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;canAccess&#8203;(java.lang.Object&nbsp;base,
+                         java.lang.reflect.AccessibleObject&nbsp;accessibleObject)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="JreCompat.html#canAccess(java.lang.Object,java.lang.reflect.AccessibleObject)">JreCompat</a></code></span></div>
+<div class="block">Is the accessibleObject accessible (as a result of appropriate module
+ exports) on the provided instance?</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="JreCompat.html#canAccess(java.lang.Object,java.lang.reflect.AccessibleObject)">canAccess</a></code>&nbsp;in class&nbsp;<code><a href="JreCompat.html" title="class in org.apache.tomcat.util.compat">JreCompat</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>base</code> - The specific instance to be tested.</dd>
+<dd><code>accessibleObject</code> - The method/field/constructor to be tested.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>{code true} if the AccessibleObject can be accessed otherwise
+         {code false}</dd>
+</dl>
+</li>
+</ul>
+<a id="isExported(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isExported</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isExported&#8203;(java.lang.Class&lt;?&gt;&nbsp;type)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="JreCompat.html#isExported(java.lang.Class)">JreCompat</a></code></span></div>
+<div class="block">Is the given class in an exported package?</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="JreCompat.html#isExported(java.lang.Class)">isExported</a></code>&nbsp;in class&nbsp;<code><a href="JreCompat.html" title="class in org.apache.tomcat.util.compat">JreCompat</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - The class to test</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Always <code>true</code> for Java 8. <code>true</code> if the enclosing
+         package is exported for Java 9+</dd>
+</dl>
+</li>
+</ul>
+<a id="getModuleName(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getModuleName</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getModuleName&#8203;(java.lang.Class&lt;?&gt;&nbsp;type)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="JreCompat.html#getModuleName(java.lang.Class)">JreCompat</a></code></span></div>
+<div class="block">What is the module of the given class?</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="JreCompat.html#getModuleName(java.lang.Class)">getModuleName</a></code>&nbsp;in class&nbsp;<code><a href="JreCompat.html" title="class in org.apache.tomcat.util.compat">JreCompat</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - The class to test</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Always <code>true</code> for Java 8. <code>true</code> if the enclosing
+         package is exported for Java 9+</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+<div class="aboutLanguage"><b>Apache Tomcat 9.0.76</b></div>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2000-2023 Apache Software Foundation. All Rights Reserved.</small></p>
+</footer>
+</body>
+</html>

Added: tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/tomcat/util/http/parser/Priority.html
URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/tomcat/util/http/parser/Priority.html?rev=1910321&view=auto
==============================================================================
--- tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/tomcat/util/http/parser/Priority.html (added)
+++ tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/tomcat/util/http/parser/Priority.html Fri Jun  9 07:47:37 2023
@@ -0,0 +1,440 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>Priority (Apache Tomcat 9.0.76 API Documentation)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.6.1.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.min.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Priority (Apache Tomcat 9.0.76 API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+<div class="aboutLanguage"><b>Apache Tomcat 9.0.76</b></div>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tomcat.util.http.parser</a></div>
+<h2 title="Class Priority" class="title">Class Priority</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tomcat.util.http.parser.Priority</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">Priority</span>
+extends java.lang.Object</pre>
+<div class="block">HTTP priority header parser as per RFC 9218.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section>
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_INCREMENTAL">DEFAULT_INCREMENTAL</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_URGENCY">DEFAULT_URGENCY</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section>
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Priority</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section>
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIncremental()">getIncremental</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUrgency()">getUrgency</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="Priority.html" title="class in org.apache.tomcat.util.http.parser">Priority</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parsePriority(java.io.Reader)">parsePriority</a></span>&#8203;(java.io.Reader&nbsp;input)</code></th>
+<td class="colLast">
+<div class="block">Parsers an HTTP header as a Priority header as defined by RFC 9218.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setIncremental(boolean)">setIncremental</a></span>&#8203;(boolean&nbsp;incremental)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setUrgency(int)">setUrgency</a></span>&#8203;(int&nbsp;urgency)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section>
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="DEFAULT_URGENCY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DEFAULT_URGENCY</h4>
+<pre>public static final&nbsp;int DEFAULT_URGENCY</pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.tomcat.util.http.parser.Priority.DEFAULT_URGENCY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="DEFAULT_INCREMENTAL">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DEFAULT_INCREMENTAL</h4>
+<pre>public static final&nbsp;boolean DEFAULT_INCREMENTAL</pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.tomcat.util.http.parser.Priority.DEFAULT_INCREMENTAL">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section>
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Priority</h4>
+<pre>public&nbsp;Priority()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section>
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getUrgency()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUrgency</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getUrgency()</pre>
+</li>
+</ul>
+<a id="setUrgency(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUrgency</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setUrgency&#8203;(int&nbsp;urgency)</pre>
+</li>
+</ul>
+<a id="getIncremental()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIncremental</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;getIncremental()</pre>
+</li>
+</ul>
+<a id="setIncremental(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIncremental</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setIncremental&#8203;(boolean&nbsp;incremental)</pre>
+</li>
+</ul>
+<a id="parsePriority(java.io.Reader)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parsePriority</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Priority.html" title="class in org.apache.tomcat.util.http.parser">Priority</a>&nbsp;parsePriority&#8203;(java.io.Reader&nbsp;input)
+                              throws java.io.IOException</pre>
+<div class="block">Parsers an HTTP header as a Priority header as defined by RFC 9218.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>input</code> - The header to parse</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The resulting priority</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - If an I/O error occurs while reading the input</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+<div class="aboutLanguage"><b>Apache Tomcat 9.0.76</b></div>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2000-2023 Apache Software Foundation. All Rights Reserved.</small></p>
+</footer>
+</body>
+</html>

Added: tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/tomcat/util/http/parser/StructuredField.html
URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/tomcat/util/http/parser/StructuredField.html?rev=1910321&view=auto
==============================================================================
--- tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/tomcat/util/http/parser/StructuredField.html (added)
+++ tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/tomcat/util/http/parser/StructuredField.html Fri Jun  9 07:47:37 2023
@@ -0,0 +1,229 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>StructuredField (Apache Tomcat 9.0.76 API Documentation)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.6.1.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.min.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="StructuredField (Apache Tomcat 9.0.76 API Documentation)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+<div class="aboutLanguage"><b>Apache Tomcat 9.0.76</b></div>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tomcat.util.http.parser</a></div>
+<h2 title="Class StructuredField" class="title">Class StructuredField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tomcat.util.http.parser.StructuredField</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">StructuredField</span>
+extends java.lang.Object</pre>
+<div class="block">Parsing of structured fields as per RFC 8941.
+ <p>
+ The parsing implementation is complete but not all elements are currently exposed via getters. Additional getters
+ will be added as required as the use of structured fields expands.
+ <p>
+ The serialization of structured fields has not been implemented.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section>
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+<div class="aboutLanguage"><b>Apache Tomcat 9.0.76</b></div>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2000-2023 Apache Software Foundation. All Rights Reserved.</small></p>
+</footer>
+</body>
+</html>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org