Added: 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/startup/ContextConfig.DefaultWebXmlCacheEntry.html
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/startup/ContextConfig.DefaultWebXmlCacheEntry.html?rev=1924970&view=auto
==============================================================================
--- 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/startup/ContextConfig.DefaultWebXmlCacheEntry.html
 (added)
+++ 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/startup/ContextConfig.DefaultWebXmlCacheEntry.html
 Wed Apr  9 19:29:19 2025
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML>
+<html lang="en">
+<head>
+<!-- Generated by javadoc (23) -->
+<title>ContextConfig.DefaultWebXmlCacheEntry (Apache Tomcat 9.0.104 API 
Documentation)</title>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="description" content="declaration: package: 
org.apache.catalina.startup, class: ContextConfig, class: 
DefaultWebXmlCacheEntry">
+<meta name="generator" content="javadoc/ClassWriter">
+<link rel="stylesheet" type="text/css" 
href="../../../../resource-files/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" 
href="../../../../resource-files/stylesheet.css" title="Style">
+<script type="text/javascript" 
src="../../../../script-files/script.js"></script>
+<script type="text/javascript" 
src="../../../../script-files/jquery-3.7.1.min.js"></script>
+<script type="text/javascript" 
src="../../../../script-files/jquery-ui.min.js"></script>
+</head>
+<body class="class-declaration-page">
+<script type="text/javascript">const pathtoroot = "../../../../";
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="top-nav" id="navbar-top">
+<div class="nav-content">
+<div class="nav-menu-button"><button id="navbar-toggle-button" 
aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation 
links"><span class="nav-bar-toggle-icon">&nbsp;</span><span 
class="nav-bar-toggle-icon">&nbsp;</span><span 
class="nav-bar-toggle-icon">&nbsp;</span></button></div>
+<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation 
links">Skip navigation links</a></div>
+<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="nav-bar-cell1-rev">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="../../../../search.html">Search</a></li>
+<li><a href="../../../../help-doc.html#class">Help</a></li>
+</ul>
+<div class="about-language"><b>Apache Tomcat<sup>®</sup> 9.0.104</b></div>
+</div>
+</div>
+<div class="sub-nav">
+<div class="nav-content">
+<ol class="sub-nav-list">
+<li><a href="package-summary.html">org.apache.catalina.startup</a></li>
+<li><a href="ContextConfig.html">ContextConfig</a></li>
+<li><a href="ContextConfig.DefaultWebXmlCacheEntry.html" 
class="current-selection">DefaultWebXmlCacheEntry</a></li>
+</ol>
+<div class="nav-list-search">
+<input type="text" id="search-input" disabled placeholder="Search" 
aria-label="Search in documentation" autocomplete="off">
+<input type="reset" id="reset-search" disabled value="Reset">
+</div>
+</div>
+</div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<span class="skip-nav" id="skip-navbar-top"></span></nav>
+</header>
+<div class="main-grid">
+<nav role="navigation" class="toc" aria-label="Table of contents">
+<div class="toc-header">Contents&nbsp;
+<input type="text" class="filter-input" disabled placeholder="Filter" 
aria-label="Filter table of contents" autocomplete="off">
+<input type="reset" class="reset-filter" disabled value="Reset">
+</div>
+<button class="hide-sidebar"><span>Hide 
sidebar&nbsp;</span>&#10094;</button><button 
class="show-sidebar">&#10095;<span>&nbsp;Show sidebar</span></button>
+<ol class="toc-list">
+<li><a href="#" tabindex="0">Description</a></li>
+<li><a href="#method-summary" tabindex="0">Method Summary</a></li>
+<li><a href="#method-detail" tabindex="0">Method Details</a>
+<ol class="toc-list">
+<li><a href="#getWebXml()" tabindex="0">getWebXml()</a></li>
+<li><a href="#getGlobalTimeStamp()" tabindex="0">getGlobalTimeStamp()</a></li>
+<li><a href="#getHostTimeStamp()" tabindex="0">getHostTimeStamp()</a></li>
+</ol>
+</li>
+</ol>
+</nav>
+<main role="main">
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<h1 title="Class ContextConfig.DefaultWebXmlCacheEntry" class="title">Class 
ContextConfig.DefaultWebXmlCacheEntry</h1>
+</div>
+<div class="inheritance" title="Inheritance Tree"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" 
class="external-link">java.lang.Object</a>
+<div 
class="inheritance">org.apache.catalina.startup.ContextConfig.DefaultWebXmlCacheEntry</div>
+</div>
+<section class="class-description" id="class-description">
+<div class="horizontal-scroll">
+<dl class="notes">
+<dt>Enclosing class:</dt>
+<dd><code><a href="ContextConfig.html" title="class in 
org.apache.catalina.startup">ContextConfig</a></code></dd>
+</dl>
+<hr>
+<div class="type-signature"><span class="modifiers">protected static class 
</span><span class="element-name 
type-name-label">ContextConfig.DefaultWebXmlCacheEntry</span>
+<span class="extends-implements">extends <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" 
class="external-link">Object</a></span></div>
+<dl class="notes">
+<dt>Author:</dt>
+<dd>Craig R. McClanahan</dd>
+</dl>
+</div>
+</section>
+<section class="summary">
+<ul class="summary-list">
+<!-- ========== METHOD SUMMARY =========== -->
+<li>
+<section class="method-summary" id="method-summary">
+<h2>Method Summary</h2>
+<div id="method-summary-table">
+<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button 
id="method-summary-table-tab0" role="tab" aria-selected="true" 
aria-controls="method-summary-table.tabpanel" tabindex="0" 
onkeydown="switchTab(event)" onclick="show('method-summary-table', 
'method-summary-table', 3)" class="active-table-tab">All 
Methods</button><button id="method-summary-table-tab2" role="tab" 
aria-selected="false" aria-controls="method-summary-table.tabpanel" 
tabindex="-1" onkeydown="switchTab(event)" 
onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" 
class="table-tab">Instance Methods</button><button 
id="method-summary-table-tab4" role="tab" aria-selected="false" 
aria-controls="method-summary-table.tabpanel" tabindex="-1" 
onkeydown="switchTab(event)" onclick="show('method-summary-table', 
'method-summary-table-tab4', 3)" class="table-tab">Concrete 
Methods</button></div>
+<div id="method-summary-table.tabpanel" role="tabpanel" 
aria-labelledby="method-summary-table-tab0">
+<div class="summary-table three-column-summary">
+<div class="table-header col-first">Modifier and Type</div>
+<div class="table-header col-second">Method</div>
+<div class="table-header col-last">Description</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#getGlobalTimeStamp()" 
class="member-name-link">getGlobalTimeStamp</a>()</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#getHostTimeStamp()" 
class="member-name-link">getHostTimeStamp</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="../../tomcat/util/descriptor/web/WebXml.html" title="class in 
org.apache.tomcat.util.descriptor.web">WebXml</a></code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#getWebXml()" class="member-name-link">getWebXml</a>()</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+</div>
+</div>
+</div>
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from 
class&nbsp;java.lang.<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" class="external-link">Object</a></h3>
+<code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#clone()"
 title="class or interface in java.lang" class="external-link">clone</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)"
 title="class or interface in java.lang" class="external-link">equals</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#finalize()"
 title="class or interface in java.lang" class="external-link">finalize</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#getClass()"
 title="class or interface in java.lang" class="external-link">getClass</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#hashCode()"
 title="class or interface in java.lang" class="external-link">hashCode</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Objec
 t.html#notify()" title="class or interface in java.lang" 
class="external-link">notify</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notifyAll()"
 title="class or interface in java.lang" class="external-link">notifyAll</a>, 
<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#toString()"
 title="class or interface in java.lang" class="external-link">toString</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait()"
 title="class or interface in java.lang" class="external-link">wait</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long)"
 title="class or interface in java.lang" class="external-link">wait</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long,int)"
 title="class or interface in java.lang" 
class="external-link">wait</a></code></div>
+</section>
+</li>
+</ul>
+</section>
+<section class="details">
+<ul class="details-list">
+<!-- ============ METHOD DETAIL ========== -->
+<li>
+<section class="method-details" id="method-detail">
+<h2>Method Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" id="getWebXml()">
+<h3>getWebXml</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type"><a href="../../tomcat/util/descriptor/web/WebXml.html" 
title="class in 
org.apache.tomcat.util.descriptor.web">WebXml</a></span>&nbsp;<span 
class="element-name">getWebXml</span>()</div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getGlobalTimeStamp()">
+<h3>getGlobalTimeStamp</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">long</span>&nbsp;<span 
class="element-name">getGlobalTimeStamp</span>()</div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getHostTimeStamp()">
+<h3>getHostTimeStamp</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">long</span>&nbsp;<span 
class="element-name">getHostTimeStamp</span>()</div>
+</div>
+</section>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</section>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<hr>
+<p class="legal-copy"><small>Copyright &#169; 2000-2025 Apache Software 
Foundation.               <br/>               Apache Tomcat, Tomcat, Apache, 
the Apache Tomcat logo and the Apache logo are either registered trademarks     
          or trademarks of the Apache Software Foundation.</small></p>
+</footer>
+</main>
+</div>
+</body>
+</html>

Added: 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/startup/ContextConfig.JavaClassCacheEntry.html
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/startup/ContextConfig.JavaClassCacheEntry.html?rev=1924970&view=auto
==============================================================================
--- 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/startup/ContextConfig.JavaClassCacheEntry.html
 (added)
+++ 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/startup/ContextConfig.JavaClassCacheEntry.html
 Wed Apr  9 19:29:19 2025
@@ -0,0 +1,236 @@
+<!DOCTYPE HTML>
+<html lang="en">
+<head>
+<!-- Generated by javadoc (23) -->
+<title>ContextConfig.JavaClassCacheEntry (Apache Tomcat 9.0.104 API 
Documentation)</title>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="description" content="declaration: package: 
org.apache.catalina.startup, class: ContextConfig, class: JavaClassCacheEntry">
+<meta name="generator" content="javadoc/ClassWriter">
+<link rel="stylesheet" type="text/css" 
href="../../../../resource-files/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" 
href="../../../../resource-files/stylesheet.css" title="Style">
+<script type="text/javascript" 
src="../../../../script-files/script.js"></script>
+<script type="text/javascript" 
src="../../../../script-files/jquery-3.7.1.min.js"></script>
+<script type="text/javascript" 
src="../../../../script-files/jquery-ui.min.js"></script>
+</head>
+<body class="class-declaration-page">
+<script type="text/javascript">const pathtoroot = "../../../../";
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="top-nav" id="navbar-top">
+<div class="nav-content">
+<div class="nav-menu-button"><button id="navbar-toggle-button" 
aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation 
links"><span class="nav-bar-toggle-icon">&nbsp;</span><span 
class="nav-bar-toggle-icon">&nbsp;</span><span 
class="nav-bar-toggle-icon">&nbsp;</span></button></div>
+<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation 
links">Skip navigation links</a></div>
+<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="nav-bar-cell1-rev">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="../../../../search.html">Search</a></li>
+<li><a href="../../../../help-doc.html#class">Help</a></li>
+</ul>
+<div class="about-language"><b>Apache Tomcat<sup>®</sup> 9.0.104</b></div>
+</div>
+</div>
+<div class="sub-nav">
+<div class="nav-content">
+<ol class="sub-nav-list">
+<li><a href="package-summary.html">org.apache.catalina.startup</a></li>
+<li><a href="ContextConfig.html">ContextConfig</a></li>
+<li><a href="ContextConfig.JavaClassCacheEntry.html" 
class="current-selection">JavaClassCacheEntry</a></li>
+</ol>
+<div class="nav-list-search">
+<input type="text" id="search-input" disabled placeholder="Search" 
aria-label="Search in documentation" autocomplete="off">
+<input type="reset" id="reset-search" disabled value="Reset">
+</div>
+</div>
+</div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<span class="skip-nav" id="skip-navbar-top"></span></nav>
+</header>
+<div class="main-grid">
+<nav role="navigation" class="toc" aria-label="Table of contents">
+<div class="toc-header">Contents&nbsp;
+<input type="text" class="filter-input" disabled placeholder="Filter" 
aria-label="Filter table of contents" autocomplete="off">
+<input type="reset" class="reset-filter" disabled value="Reset">
+</div>
+<button class="hide-sidebar"><span>Hide 
sidebar&nbsp;</span>&#10094;</button><button 
class="show-sidebar">&#10095;<span>&nbsp;Show sidebar</span></button>
+<ol class="toc-list">
+<li><a href="#" tabindex="0">Description</a></li>
+<li><a href="#field-summary" tabindex="0">Field Summary</a></li>
+<li><a href="#method-summary" tabindex="0">Method Summary</a></li>
+<li><a href="#field-detail" tabindex="0">Field Details</a>
+<ol class="toc-list">
+<li><a href="#superclassName" tabindex="0">superclassName</a></li>
+<li><a href="#interfaceNames" tabindex="0">interfaceNames</a></li>
+</ol>
+</li>
+<li><a href="#method-detail" tabindex="0">Method Details</a>
+<ol class="toc-list">
+<li><a href="#getSuperclassName()" tabindex="0">getSuperclassName()</a></li>
+<li><a href="#getInterfaceNames()" tabindex="0">getInterfaceNames()</a></li>
+<li><a href="#getSciSet()" tabindex="0">getSciSet()</a></li>
+<li><a href="#setSciSet(java.util.Set)" tabindex="0">setSciSet(Set)</a></li>
+</ol>
+</li>
+</ol>
+</nav>
+<main role="main">
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<h1 title="Class ContextConfig.JavaClassCacheEntry" class="title">Class 
ContextConfig.JavaClassCacheEntry</h1>
+</div>
+<div class="inheritance" title="Inheritance Tree"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" 
class="external-link">java.lang.Object</a>
+<div 
class="inheritance">org.apache.catalina.startup.ContextConfig.JavaClassCacheEntry</div>
+</div>
+<section class="class-description" id="class-description">
+<div class="horizontal-scroll">
+<dl class="notes">
+<dt>Enclosing class:</dt>
+<dd><code><a href="ContextConfig.html" title="class in 
org.apache.catalina.startup">ContextConfig</a></code></dd>
+</dl>
+<hr>
+<div class="type-signature"><span class="modifiers">protected static class 
</span><span class="element-name 
type-name-label">ContextConfig.JavaClassCacheEntry</span>
+<span class="extends-implements">extends <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" 
class="external-link">Object</a></span></div>
+<dl class="notes">
+<dt>Author:</dt>
+<dd>Craig R. McClanahan</dd>
+</dl>
+</div>
+</section>
+<section class="summary">
+<ul class="summary-list">
+<!-- =========== FIELD SUMMARY =========== -->
+<li>
+<section class="field-summary" id="field-summary">
+<h2>Field Summary</h2>
+<div class="caption"><span>Fields</span></div>
+<div class="summary-table three-column-summary">
+<div class="table-header col-first">Modifier and Type</div>
+<div class="table-header col-second">Field</div>
+<div class="table-header col-last">Description</div>
+<div class="col-first even-row-color"><code>final <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>[]</code></div>
+<div class="col-second even-row-color"><code><a href="#interfaceNames" 
class="member-name-link">interfaceNames</a></code></div>
+<div class="col-last even-row-color">&nbsp;</div>
+<div class="col-first odd-row-color"><code>final <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></code></div>
+<div class="col-second odd-row-color"><code><a href="#superclassName" 
class="member-name-link">superclassName</a></code></div>
+<div class="col-last odd-row-color">&nbsp;</div>
+</div>
+</section>
+</li>
+<!-- ========== METHOD SUMMARY =========== -->
+<li>
+<section class="method-summary" id="method-summary">
+<h2>Method Summary</h2>
+<div id="method-summary-table">
+<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button 
id="method-summary-table-tab0" role="tab" aria-selected="true" 
aria-controls="method-summary-table.tabpanel" tabindex="0" 
onkeydown="switchTab(event)" onclick="show('method-summary-table', 
'method-summary-table', 3)" class="active-table-tab">All 
Methods</button><button id="method-summary-table-tab2" role="tab" 
aria-selected="false" aria-controls="method-summary-table.tabpanel" 
tabindex="-1" onkeydown="switchTab(event)" 
onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" 
class="table-tab">Instance Methods</button><button 
id="method-summary-table-tab4" role="tab" aria-selected="false" 
aria-controls="method-summary-table.tabpanel" tabindex="-1" 
onkeydown="switchTab(event)" onclick="show('method-summary-table', 
'method-summary-table-tab4', 3)" class="table-tab">Concrete 
Methods</button></div>
+<div id="method-summary-table.tabpanel" role="tabpanel" 
aria-labelledby="method-summary-table-tab0">
+<div class="summary-table three-column-summary">
+<div class="table-header col-first">Modifier and Type</div>
+<div class="table-header col-second">Method</div>
+<div class="table-header col-last">Description</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>[]</code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#getInterfaceNames()" 
class="member-name-link">getInterfaceNames</a>()</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html";
 title="class or interface in java.util" 
class="external-link">Set</a><wbr>&lt;<a 
href="../../../../../servletapi/javax/servlet/ServletContainerInitializer.html" 
title="class or interface in javax.servlet" 
class="external-link">ServletContainerInitializer</a>&gt;</code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#getSciSet()" class="member-name-link">getSciSet</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#getSuperclassName()" 
class="member-name-link">getSuperclassName</a>()</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#setSciSet(java.util.Set)" class="member-name-link">setSciSet</a><wbr>(<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html";
 title="class or interface in java.util" class="external-link">Set</a>&lt;<a 
href="../../../../../servletapi/javax/servlet/ServletContainerInitializer.html" 
title="class or interface in javax.servlet" 
class="external-link">ServletContainerInitializer</a>&gt;&nbsp;sciSet)</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+</div>
+</div>
+</div>
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from 
class&nbsp;java.lang.<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" class="external-link">Object</a></h3>
+<code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#clone()"
 title="class or interface in java.lang" class="external-link">clone</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)"
 title="class or interface in java.lang" class="external-link">equals</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#finalize()"
 title="class or interface in java.lang" class="external-link">finalize</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#getClass()"
 title="class or interface in java.lang" class="external-link">getClass</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#hashCode()"
 title="class or interface in java.lang" class="external-link">hashCode</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Objec
 t.html#notify()" title="class or interface in java.lang" 
class="external-link">notify</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notifyAll()"
 title="class or interface in java.lang" class="external-link">notifyAll</a>, 
<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#toString()"
 title="class or interface in java.lang" class="external-link">toString</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait()"
 title="class or interface in java.lang" class="external-link">wait</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long)"
 title="class or interface in java.lang" class="external-link">wait</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long,int)"
 title="class or interface in java.lang" 
class="external-link">wait</a></code></div>
+</section>
+</li>
+</ul>
+</section>
+<section class="details">
+<ul class="details-list">
+<!-- ============ FIELD DETAIL =========== -->
+<li>
+<section class="field-details" id="field-detail">
+<h2>Field Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" id="superclassName">
+<h3>superclassName</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public 
final</span>&nbsp;<span class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></span>&nbsp;<span 
class="element-name">superclassName</span></div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="interfaceNames">
+<h3>interfaceNames</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public 
final</span>&nbsp;<span class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>[]</span>&nbsp;<span 
class="element-name">interfaceNames</span></div>
+</div>
+</section>
+</li>
+</ul>
+</section>
+</li>
+<!-- ============ METHOD DETAIL ========== -->
+<li>
+<section class="method-details" id="method-detail">
+<h2>Method Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" id="getSuperclassName()">
+<h3>getSuperclassName</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></span>&nbsp;<span 
class="element-name">getSuperclassName</span>()</div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getInterfaceNames()">
+<h3>getInterfaceNames</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>[]</span>&nbsp;<span 
class="element-name">getInterfaceNames</span>()</div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getSciSet()">
+<h3>getSciSet</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html";
 title="class or interface in java.util" class="external-link">Set</a>&lt;<a 
href="../../../../../servletapi/javax/servlet/ServletContainerInitializer.html" 
title="class or interface in javax.servlet" 
class="external-link">ServletContainerInitializer</a>&gt;</span>&nbsp;<span 
class="element-name">getSciSet</span>()</div>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="setSciSet(java.util.Set)">
+<h3>setSciSet</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span 
class="element-name">setSciSet</span><wbr><span class="parameters">(<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html";
 title="class or interface in java.util" class="external-link">Set</a>&lt;<a 
href="../../../../../servletapi/javax/servlet/ServletContainerInitializer.html" 
title="class or interface in javax.servlet" 
class="external-link">ServletContainerInitializer</a>&gt;&nbsp;sciSet)</span></div>
+</div>
+</section>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</section>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<hr>
+<p class="legal-copy"><small>Copyright &#169; 2000-2025 Apache Software 
Foundation.               <br/>               Apache Tomcat, Tomcat, Apache, 
the Apache Tomcat logo and the Apache logo are either registered trademarks     
          or trademarks of the Apache Software Foundation.</small></p>
+</footer>
+</main>
+</div>
+</body>
+</html>

Added: 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/ExactRateLimiter.html
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/ExactRateLimiter.html?rev=1924970&view=auto
==============================================================================
--- 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/ExactRateLimiter.html
 (added)
+++ 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/ExactRateLimiter.html
 Wed Apr  9 19:29:19 2025
@@ -0,0 +1,230 @@
+<!DOCTYPE HTML>
+<html lang="en">
+<head>
+<!-- Generated by javadoc (23) -->
+<title>ExactRateLimiter (Apache Tomcat 9.0.104 API Documentation)</title>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="description" content="declaration: package: 
org.apache.catalina.util, class: ExactRateLimiter">
+<meta name="generator" content="javadoc/ClassWriter">
+<link rel="stylesheet" type="text/css" 
href="../../../../resource-files/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" 
href="../../../../resource-files/stylesheet.css" title="Style">
+<script type="text/javascript" 
src="../../../../script-files/script.js"></script>
+<script type="text/javascript" 
src="../../../../script-files/jquery-3.7.1.min.js"></script>
+<script type="text/javascript" 
src="../../../../script-files/jquery-ui.min.js"></script>
+</head>
+<body class="class-declaration-page">
+<script type="text/javascript">const pathtoroot = "../../../../";
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="top-nav" id="navbar-top">
+<div class="nav-content">
+<div class="nav-menu-button"><button id="navbar-toggle-button" 
aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation 
links"><span class="nav-bar-toggle-icon">&nbsp;</span><span 
class="nav-bar-toggle-icon">&nbsp;</span><span 
class="nav-bar-toggle-icon">&nbsp;</span></button></div>
+<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation 
links">Skip navigation links</a></div>
+<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="nav-bar-cell1-rev">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="../../../../search.html">Search</a></li>
+<li><a href="../../../../help-doc.html#class">Help</a></li>
+</ul>
+<div class="about-language"><b>Apache Tomcat<sup>®</sup> 9.0.104</b></div>
+</div>
+</div>
+<div class="sub-nav">
+<div class="nav-content">
+<ol class="sub-nav-list">
+<li><a href="package-summary.html">org.apache.catalina.util</a></li>
+<li><a href="ExactRateLimiter.html" 
class="current-selection">ExactRateLimiter</a></li>
+</ol>
+<div class="nav-list-search">
+<input type="text" id="search-input" disabled placeholder="Search" 
aria-label="Search in documentation" autocomplete="off">
+<input type="reset" id="reset-search" disabled value="Reset">
+</div>
+</div>
+</div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<span class="skip-nav" id="skip-navbar-top"></span></nav>
+</header>
+<div class="main-grid">
+<nav role="navigation" class="toc" aria-label="Table of contents">
+<div class="toc-header">Contents&nbsp;
+<input type="text" class="filter-input" disabled placeholder="Filter" 
aria-label="Filter table of contents" autocomplete="off">
+<input type="reset" class="reset-filter" disabled value="Reset">
+</div>
+<button class="hide-sidebar"><span>Hide 
sidebar&nbsp;</span>&#10094;</button><button 
class="show-sidebar">&#10095;<span>&nbsp;Show sidebar</span></button>
+<ol class="toc-list">
+<li><a href="#" tabindex="0">Description</a></li>
+<li><a href="#constructor-summary" tabindex="0">Constructor Summary</a></li>
+<li><a href="#method-summary" tabindex="0">Method Summary</a></li>
+<li><a href="#constructor-detail" tabindex="0">Constructor Details</a>
+<ol class="toc-list">
+<li><a href="#%3Cinit%3E()" tabindex="0">ExactRateLimiter()</a></li>
+</ol>
+</li>
+<li><a href="#method-detail" tabindex="0">Method Details</a>
+<ol class="toc-list">
+<li><a href="#getDefaultPolicyName()" 
tabindex="0">getDefaultPolicyName()</a></li>
+<li><a 
href="#newCounterInstance(int,java.util.concurrent.ScheduledExecutorService)" 
tabindex="0">newCounterInstance(int, ScheduledExecutorService)</a></li>
+</ol>
+</li>
+</ol>
+</nav>
+<main role="main">
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<h1 title="Class ExactRateLimiter" class="title">Class ExactRateLimiter</h1>
+</div>
+<div class="inheritance" title="Inheritance Tree"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" 
class="external-link">java.lang.Object</a>
+<div class="inheritance"><a href="RateLimiterBase.html" title="class in 
org.apache.catalina.util">org.apache.catalina.util.RateLimiterBase</a>
+<div class="inheritance">org.apache.catalina.util.ExactRateLimiter</div>
+</div>
+</div>
+<section class="class-description" id="class-description">
+<div class="horizontal-scroll">
+<dl class="notes">
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="RateLimiter.html" title="interface in 
org.apache.catalina.util">RateLimiter</a></code></dd>
+</dl>
+<hr>
+<div class="type-signature"><span class="modifiers">public class </span><span 
class="element-name type-name-label">ExactRateLimiter</span>
+<span class="extends-implements">extends <a href="RateLimiterBase.html" 
title="class in org.apache.catalina.util">RateLimiterBase</a></span></div>
+<div class="block">A RateLimiter that compromises efficiency for accuracy in 
order to provide exact rate limiting.</div>
+</div>
+</section>
+<section class="summary">
+<ul class="summary-list">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<li>
+<section class="constructor-summary" id="constructor-summary">
+<h2>Constructor Summary</h2>
+<div class="caption"><span>Constructors</span></div>
+<div class="summary-table two-column-summary">
+<div class="table-header col-first">Constructor</div>
+<div class="table-header col-last">Description</div>
+<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" 
class="member-name-link">ExactRateLimiter</a>()</code></div>
+<div class="col-last even-row-color">&nbsp;</div>
+</div>
+</section>
+</li>
+<!-- ========== METHOD SUMMARY =========== -->
+<li>
+<section class="method-summary" id="method-summary">
+<h2>Method Summary</h2>
+<div id="method-summary-table">
+<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button 
id="method-summary-table-tab0" role="tab" aria-selected="true" 
aria-controls="method-summary-table.tabpanel" tabindex="0" 
onkeydown="switchTab(event)" onclick="show('method-summary-table', 
'method-summary-table', 3)" class="active-table-tab">All 
Methods</button><button id="method-summary-table-tab2" role="tab" 
aria-selected="false" aria-controls="method-summary-table.tabpanel" 
tabindex="-1" onkeydown="switchTab(event)" 
onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" 
class="table-tab">Instance Methods</button><button 
id="method-summary-table-tab4" role="tab" aria-selected="false" 
aria-controls="method-summary-table.tabpanel" tabindex="-1" 
onkeydown="switchTab(event)" onclick="show('method-summary-table', 
'method-summary-table-tab4', 3)" class="table-tab">Concrete 
Methods</button></div>
+<div id="method-summary-table.tabpanel" role="tabpanel" 
aria-labelledby="method-summary-table-tab0">
+<div class="summary-table three-column-summary">
+<div class="table-header col-first">Modifier and Type</div>
+<div class="table-header col-second">Method</div>
+<div class="table-header col-last">Description</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>protected <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#getDefaultPolicyName()" 
class="member-name-link">getDefaultPolicyName</a>()</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">If policy name has not been specified, the first call of <a 
href="RateLimiterBase.html#getPolicyName()"><code>RateLimiterBase.getPolicyName()</code></a>
 returns an auto-generated policy
+ name using the default policy name as prefix and followed by auto-increase 
index.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>protected <a 
href="TimeBucketCounterBase.html" title="class in 
org.apache.catalina.util">TimeBucketCounterBase</a></code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#newCounterInstance(int,java.util.concurrent.ScheduledExecutorService)" 
class="member-name-link">newCounterInstance</a><wbr>(int&nbsp;duration,
+ <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/ScheduledExecutorService.html";
 title="class or interface in java.util.concurrent" 
class="external-link">ScheduledExecutorService</a>&nbsp;executorService)</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Instantiate an instance of <a 
href="TimeBucketCounterBase.html" title="class in 
org.apache.catalina.util"><code>TimeBucketCounterBase</code></a> for specific 
time bucket size.</div>
+</div>
+</div>
+</div>
+</div>
+<div class="inherited-list">
+<h3 
id="methods-inherited-from-class-org.apache.catalina.util.RateLimiterBase">Methods
 inherited from class&nbsp;org.apache.catalina.util.<a 
href="RateLimiterBase.html" title="class in 
org.apache.catalina.util">RateLimiterBase</a></h3>
+<code><a href="RateLimiterBase.html#destroy()">destroy</a>, <a 
href="RateLimiterBase.html#getBucketCounter()">getBucketCounter</a>, <a 
href="RateLimiterBase.html#getDuration()">getDuration</a>, <a 
href="RateLimiterBase.html#getPolicyName()">getPolicyName</a>, <a 
href="RateLimiterBase.html#getRequests()">getRequests</a>, <a 
href="RateLimiterBase.html#increment(java.lang.String)">increment</a>, <a 
href="RateLimiterBase.html#setDuration(int)">setDuration</a>, <a 
href="RateLimiterBase.html#setFilterConfig(javax.servlet.FilterConfig)">setFilterConfig</a>,
 <a 
href="RateLimiterBase.html#setPolicyName(java.lang.String)">setPolicyName</a>, 
<a href="RateLimiterBase.html#setRequests(int)">setRequests</a></code></div>
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from 
class&nbsp;java.lang.<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" class="external-link">Object</a></h3>
+<code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#clone()"
 title="class or interface in java.lang" class="external-link">clone</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)"
 title="class or interface in java.lang" class="external-link">equals</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#finalize()"
 title="class or interface in java.lang" class="external-link">finalize</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#getClass()"
 title="class or interface in java.lang" class="external-link">getClass</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#hashCode()"
 title="class or interface in java.lang" class="external-link">hashCode</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Objec
 t.html#notify()" title="class or interface in java.lang" 
class="external-link">notify</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notifyAll()"
 title="class or interface in java.lang" class="external-link">notifyAll</a>, 
<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#toString()"
 title="class or interface in java.lang" class="external-link">toString</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait()"
 title="class or interface in java.lang" class="external-link">wait</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long)"
 title="class or interface in java.lang" class="external-link">wait</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long,int)"
 title="class or interface in java.lang" 
class="external-link">wait</a></code></div>
+<div class="inherited-list">
+<h3 
id="methods-inherited-from-class-org.apache.catalina.util.RateLimiter">Methods 
inherited from interface&nbsp;org.apache.catalina.util.<a 
href="RateLimiter.html" title="interface in 
org.apache.catalina.util">RateLimiter</a></h3>
+<code><a href="RateLimiter.html#getPolicy()">getPolicy</a>, <a 
href="RateLimiter.html#getQuota(int)">getQuota</a></code></div>
+</section>
+</li>
+</ul>
+</section>
+<section class="details">
+<ul class="details-list">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<li>
+<section class="constructor-details" id="constructor-detail">
+<h2>Constructor Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" id="&lt;init&gt;()">
+<h3>ExactRateLimiter</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="element-name">ExactRateLimiter</span>()</div>
+</div>
+</section>
+</li>
+</ul>
+</section>
+</li>
+<!-- ============ METHOD DETAIL ========== -->
+<li>
+<section class="method-details" id="method-detail">
+<h2>Method Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" id="getDefaultPolicyName()">
+<h3>getDefaultPolicyName</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span 
class="modifiers">protected</span>&nbsp;<span class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></span>&nbsp;<span 
class="element-name">getDefaultPolicyName</span>()</div>
+<div class="block"><span class="description-from-type-label">Description 
copied from class:&nbsp;<code><a 
href="RateLimiterBase.html#getDefaultPolicyName()">RateLimiterBase</a></code></span></div>
+<div class="block">If policy name has not been specified, the first call of <a 
href="RateLimiterBase.html#getPolicyName()"><code>RateLimiterBase.getPolicyName()</code></a>
 returns an auto-generated policy
+ name using the default policy name as prefix and followed by auto-increase 
index.</div>
+<dl class="notes">
+<dt>Specified by:</dt>
+<dd><code><a 
href="RateLimiterBase.html#getDefaultPolicyName()">getDefaultPolicyName</a></code>&nbsp;in
 class&nbsp;<code><a href="RateLimiterBase.html" title="class in 
org.apache.catalina.util">RateLimiterBase</a></code></dd>
+<dt>Returns:</dt>
+<dd>default policy name, as a prefix of auto-generated policy name.</dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" 
id="newCounterInstance(int,java.util.concurrent.ScheduledExecutorService)">
+<h3>newCounterInstance</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span 
class="modifiers">protected</span>&nbsp;<span class="return-type"><a 
href="TimeBucketCounterBase.html" title="class in 
org.apache.catalina.util">TimeBucketCounterBase</a></span>&nbsp;<span 
class="element-name">newCounterInstance</span><wbr><span 
class="parameters">(int&nbsp;duration,
+ <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/ScheduledExecutorService.html";
 title="class or interface in java.util.concurrent" 
class="external-link">ScheduledExecutorService</a>&nbsp;executorService)</span></div>
+<div class="block"><span class="description-from-type-label">Description 
copied from class:&nbsp;<code><a 
href="RateLimiterBase.html#newCounterInstance(int,java.util.concurrent.ScheduledExecutorService)">RateLimiterBase</a></code></span></div>
+<div class="block">Instantiate an instance of <a 
href="TimeBucketCounterBase.html" title="class in 
org.apache.catalina.util"><code>TimeBucketCounterBase</code></a> for specific 
time bucket size. Concrete classes
+ determine its counter policy by returning different implementation 
instances.</div>
+<dl class="notes">
+<dt>Specified by:</dt>
+<dd><code><a 
href="RateLimiterBase.html#newCounterInstance(int,java.util.concurrent.ScheduledExecutorService)">newCounterInstance</a></code>&nbsp;in
 class&nbsp;<code><a href="RateLimiterBase.html" title="class in 
org.apache.catalina.util">RateLimiterBase</a></code></dd>
+<dt>Parameters:</dt>
+<dd><code>duration</code> - size of each time bucket in seconds</dd>
+<dd><code>executorService</code> - the executor</dd>
+<dt>Returns:</dt>
+<dd>counter instance of <a href="TimeBucketCounterBase.html" title="class in 
org.apache.catalina.util"><code>TimeBucketCounterBase</code></a></dd>
+</dl>
+</div>
+</section>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</section>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<hr>
+<p class="legal-copy"><small>Copyright &#169; 2000-2025 Apache Software 
Foundation.               <br/>               Apache Tomcat, Tomcat, Apache, 
the Apache Tomcat logo and the Apache logo are either registered trademarks     
          or trademarks of the Apache Software Foundation.</small></p>
+</footer>
+</main>
+</div>
+</body>
+</html>

Added: 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/RateLimiterBase.html
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/RateLimiterBase.html?rev=1924970&view=auto
==============================================================================
--- 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/RateLimiterBase.html
 (added)
+++ 
tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/RateLimiterBase.html
 Wed Apr  9 19:29:19 2025
@@ -0,0 +1,429 @@
+<!DOCTYPE HTML>
+<html lang="en">
+<head>
+<!-- Generated by javadoc (23) -->
+<title>RateLimiterBase (Apache Tomcat 9.0.104 API Documentation)</title>
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="description" content="declaration: package: 
org.apache.catalina.util, class: RateLimiterBase">
+<meta name="generator" content="javadoc/ClassWriter">
+<link rel="stylesheet" type="text/css" 
href="../../../../resource-files/jquery-ui.min.css" title="Style">
+<link rel="stylesheet" type="text/css" 
href="../../../../resource-files/stylesheet.css" title="Style">
+<script type="text/javascript" 
src="../../../../script-files/script.js"></script>
+<script type="text/javascript" 
src="../../../../script-files/jquery-3.7.1.min.js"></script>
+<script type="text/javascript" 
src="../../../../script-files/jquery-ui.min.js"></script>
+</head>
+<body class="class-declaration-page">
+<script type="text/javascript">const pathtoroot = "../../../../";
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="top-nav" id="navbar-top">
+<div class="nav-content">
+<div class="nav-menu-button"><button id="navbar-toggle-button" 
aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation 
links"><span class="nav-bar-toggle-icon">&nbsp;</span><span 
class="nav-bar-toggle-icon">&nbsp;</span><span 
class="nav-bar-toggle-icon">&nbsp;</span></button></div>
+<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation 
links">Skip navigation links</a></div>
+<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="nav-bar-cell1-rev">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="../../../../search.html">Search</a></li>
+<li><a href="../../../../help-doc.html#class">Help</a></li>
+</ul>
+<div class="about-language"><b>Apache Tomcat<sup>®</sup> 9.0.104</b></div>
+</div>
+</div>
+<div class="sub-nav">
+<div class="nav-content">
+<ol class="sub-nav-list">
+<li><a href="package-summary.html">org.apache.catalina.util</a></li>
+<li><a href="RateLimiterBase.html" 
class="current-selection">RateLimiterBase</a></li>
+</ol>
+<div class="nav-list-search">
+<input type="text" id="search-input" disabled placeholder="Search" 
aria-label="Search in documentation" autocomplete="off">
+<input type="reset" id="reset-search" disabled value="Reset">
+</div>
+</div>
+</div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<span class="skip-nav" id="skip-navbar-top"></span></nav>
+</header>
+<div class="main-grid">
+<nav role="navigation" class="toc" aria-label="Table of contents">
+<div class="toc-header">Contents&nbsp;
+<input type="text" class="filter-input" disabled placeholder="Filter" 
aria-label="Filter table of contents" autocomplete="off">
+<input type="reset" class="reset-filter" disabled value="Reset">
+</div>
+<button class="hide-sidebar"><span>Hide 
sidebar&nbsp;</span>&#10094;</button><button 
class="show-sidebar">&#10095;<span>&nbsp;Show sidebar</span></button>
+<ol class="toc-list">
+<li><a href="#" tabindex="0">Description</a></li>
+<li><a href="#constructor-summary" tabindex="0">Constructor Summary</a></li>
+<li><a href="#method-summary" tabindex="0">Method Summary</a></li>
+<li><a href="#constructor-detail" tabindex="0">Constructor Details</a>
+<ol class="toc-list">
+<li><a href="#%3Cinit%3E()" tabindex="0">RateLimiterBase()</a></li>
+</ol>
+</li>
+<li><a href="#method-detail" tabindex="0">Method Details</a>
+<ol class="toc-list">
+<li><a href="#getDefaultPolicyName()" 
tabindex="0">getDefaultPolicyName()</a></li>
+<li><a href="#getPolicyName()" tabindex="0">getPolicyName()</a></li>
+<li><a href="#setPolicyName(java.lang.String)" 
tabindex="0">setPolicyName(String)</a></li>
+<li><a href="#getDuration()" tabindex="0">getDuration()</a></li>
+<li><a href="#setDuration(int)" tabindex="0">setDuration(int)</a></li>
+<li><a href="#getRequests()" tabindex="0">getRequests()</a></li>
+<li><a href="#setRequests(int)" tabindex="0">setRequests(int)</a></li>
+<li><a href="#increment(java.lang.String)" 
tabindex="0">increment(String)</a></li>
+<li><a href="#destroy()" tabindex="0">destroy()</a></li>
+<li><a 
href="#newCounterInstance(int,java.util.concurrent.ScheduledExecutorService)" 
tabindex="0">newCounterInstance(int, ScheduledExecutorService)</a></li>
+<li><a href="#setFilterConfig(javax.servlet.FilterConfig)" 
tabindex="0">setFilterConfig(FilterConfig)</a></li>
+<li><a href="#getBucketCounter()" tabindex="0">getBucketCounter()</a></li>
+</ol>
+</li>
+</ol>
+</nav>
+<main role="main">
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<h1 title="Class RateLimiterBase" class="title">Class RateLimiterBase</h1>
+</div>
+<div class="inheritance" title="Inheritance Tree"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" 
class="external-link">java.lang.Object</a>
+<div class="inheritance">org.apache.catalina.util.RateLimiterBase</div>
+</div>
+<section class="class-description" id="class-description">
+<div class="horizontal-scroll">
+<dl class="notes">
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="RateLimiter.html" title="interface in 
org.apache.catalina.util">RateLimiter</a></code></dd>
+</dl>
+<dl class="notes">
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="ExactRateLimiter.html" title="class in 
org.apache.catalina.util">ExactRateLimiter</a></code>, <code><a 
href="FastRateLimiter.html" title="class in 
org.apache.catalina.util">FastRateLimiter</a></code></dd>
+</dl>
+<hr>
+<div class="type-signature"><span class="modifiers">public abstract class 
</span><span class="element-name type-name-label">RateLimiterBase</span>
+<span class="extends-implements">extends <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" class="external-link">Object</a>
+implements <a href="RateLimiter.html" title="interface in 
org.apache.catalina.util">RateLimiter</a></span></div>
+<div class="block">Base implementation of <a href="RateLimiter.html" 
title="interface in org.apache.catalina.util"><code>RateLimiter</code></a>, 
provides runtime data maintenance mechanism monitor.</div>
+</div>
+</section>
+<section class="summary">
+<ul class="summary-list">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<li>
+<section class="constructor-summary" id="constructor-summary">
+<h2>Constructor Summary</h2>
+<div class="caption"><span>Constructors</span></div>
+<div class="summary-table two-column-summary">
+<div class="table-header col-first">Constructor</div>
+<div class="table-header col-last">Description</div>
+<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" 
class="member-name-link">RateLimiterBase</a>()</code></div>
+<div class="col-last even-row-color">&nbsp;</div>
+</div>
+</section>
+</li>
+<!-- ========== METHOD SUMMARY =========== -->
+<li>
+<section class="method-summary" id="method-summary">
+<h2>Method Summary</h2>
+<div id="method-summary-table">
+<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button 
id="method-summary-table-tab0" role="tab" aria-selected="true" 
aria-controls="method-summary-table.tabpanel" tabindex="0" 
onkeydown="switchTab(event)" onclick="show('method-summary-table', 
'method-summary-table', 3)" class="active-table-tab">All 
Methods</button><button id="method-summary-table-tab2" role="tab" 
aria-selected="false" aria-controls="method-summary-table.tabpanel" 
tabindex="-1" onkeydown="switchTab(event)" 
onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" 
class="table-tab">Instance Methods</button><button 
id="method-summary-table-tab3" role="tab" aria-selected="false" 
aria-controls="method-summary-table.tabpanel" tabindex="-1" 
onkeydown="switchTab(event)" onclick="show('method-summary-table', 
'method-summary-table-tab3', 3)" class="table-tab">Abstract 
Methods</button><button id="method-summary-table-tab4" role="tab" 
aria-selected="false" aria-controls="method-summary-table.
 tabpanel" tabindex="-1" onkeydown="switchTab(event)" 
onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" 
class="table-tab">Concrete Methods</button></div>
+<div id="method-summary-table.tabpanel" role="tabpanel" 
aria-labelledby="method-summary-table-tab0">
+<div class="summary-table three-column-summary">
+<div class="table-header col-first">Modifier and Type</div>
+<div class="table-header col-second">Method</div>
+<div class="table-header col-last">Description</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a href="#destroy()" 
class="member-name-link">destroy</a>()</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Cleanup no longer needed resources.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="TimeBucketCounterBase.html" title="class in 
org.apache.catalina.util">TimeBucketCounterBase</a></code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#getBucketCounter()" 
class="member-name-link">getBucketCounter</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Returns the internal instance of <a 
href="TimeBucketCounterBase.html" title="class in 
org.apache.catalina.util"><code>TimeBucketCounterBase</code></a>.</div>
+</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab3"><code>protected abstract 
<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab3"><code><a 
href="#getDefaultPolicyName()" 
class="member-name-link">getDefaultPolicyName</a>()</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab3">
+<div class="block">If policy name has not been specified, the first call of <a 
href="#getPolicyName()"><code>getPolicyName()</code></a> returns an 
auto-generated policy
+ name using the default policy name as prefix and followed by auto-increase 
index.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#getDuration()" class="member-name-link">getDuration</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#getPolicyName()" 
class="member-name-link">getPolicyName</a>()</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#getRequests()" class="member-name-link">getRequests</a>()</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#increment(java.lang.String)" 
class="member-name-link">increment</a><wbr>(<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>&nbsp;identifier)</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Increments the number of requests by the given identifier 
in the current time window.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab3"><code>protected abstract 
<a href="TimeBucketCounterBase.html" title="class in 
org.apache.catalina.util">TimeBucketCounterBase</a></code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab3"><code><a 
href="#newCounterInstance(int,java.util.concurrent.ScheduledExecutorService)" 
class="member-name-link">newCounterInstance</a><wbr>(int&nbsp;duration,
+ <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/ScheduledExecutorService.html";
 title="class or interface in java.util.concurrent" 
class="external-link">ScheduledExecutorService</a>&nbsp;utilityExecutor)</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab3">
+<div class="block">Instantiate an instance of <a 
href="TimeBucketCounterBase.html" title="class in 
org.apache.catalina.util"><code>TimeBucketCounterBase</code></a> for specific 
time bucket size.</div>
+</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#setDuration(int)" 
class="member-name-link">setDuration</a><wbr>(int&nbsp;duration)</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Sets the configured duration value in seconds.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#setFilterConfig(javax.servlet.FilterConfig)" 
class="member-name-link">setFilterConfig</a><wbr>(<a 
href="../../../../../servletapi/javax/servlet/FilterConfig.html" title="class 
or interface in javax.servlet" 
class="external-link">FilterConfig</a>&nbsp;filterConfig)</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Pass the FilterConfig to configure the filter.</div>
+</div>
+<div class="col-first even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#setPolicyName(java.lang.String)" 
class="member-name-link">setPolicyName</a><wbr>(<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>&nbsp;name)</code></div>
+<div class="col-last even-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Sets the policy name, otherwise an auto-generated name is 
used.</div>
+</div>
+<div class="col-first odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
+<div class="col-second odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4"><code><a 
href="#setRequests(int)" 
class="member-name-link">setRequests</a><wbr>(int&nbsp;requests)</code></div>
+<div class="col-last odd-row-color method-summary-table 
method-summary-table-tab2 method-summary-table-tab4">
+<div class="block">Sets the configured number of requests allowed per time 
window.</div>
+</div>
+</div>
+</div>
+</div>
+<div class="inherited-list">
+<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from 
class&nbsp;java.lang.<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" class="external-link">Object</a></h3>
+<code><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#clone()"
 title="class or interface in java.lang" class="external-link">clone</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)"
 title="class or interface in java.lang" class="external-link">equals</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#finalize()"
 title="class or interface in java.lang" class="external-link">finalize</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#getClass()"
 title="class or interface in java.lang" class="external-link">getClass</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#hashCode()"
 title="class or interface in java.lang" class="external-link">hashCode</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Objec
 t.html#notify()" title="class or interface in java.lang" 
class="external-link">notify</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notifyAll()"
 title="class or interface in java.lang" class="external-link">notifyAll</a>, 
<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#toString()"
 title="class or interface in java.lang" class="external-link">toString</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait()"
 title="class or interface in java.lang" class="external-link">wait</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long)"
 title="class or interface in java.lang" class="external-link">wait</a>, <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long,int)"
 title="class or interface in java.lang" 
class="external-link">wait</a></code></div>
+<div class="inherited-list">
+<h3 
id="methods-inherited-from-class-org.apache.catalina.util.RateLimiter">Methods 
inherited from interface&nbsp;org.apache.catalina.util.<a 
href="RateLimiter.html" title="interface in 
org.apache.catalina.util">RateLimiter</a></h3>
+<code><a href="RateLimiter.html#getPolicy()">getPolicy</a>, <a 
href="RateLimiter.html#getQuota(int)">getQuota</a></code></div>
+</section>
+</li>
+</ul>
+</section>
+<section class="details">
+<ul class="details-list">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<li>
+<section class="constructor-details" id="constructor-detail">
+<h2>Constructor Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" id="&lt;init&gt;()">
+<h3>RateLimiterBase</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="element-name">RateLimiterBase</span>()</div>
+</div>
+</section>
+</li>
+</ul>
+</section>
+</li>
+<!-- ============ METHOD DETAIL ========== -->
+<li>
+<section class="method-details" id="method-detail">
+<h2>Method Details</h2>
+<ul class="member-list">
+<li>
+<section class="detail" id="getDefaultPolicyName()">
+<h3>getDefaultPolicyName</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">protected 
abstract</span>&nbsp;<span class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></span>&nbsp;<span 
class="element-name">getDefaultPolicyName</span>()</div>
+<div class="block">If policy name has not been specified, the first call of <a 
href="#getPolicyName()"><code>getPolicyName()</code></a> returns an 
auto-generated policy
+ name using the default policy name as prefix and followed by auto-increase 
index.</div>
+<dl class="notes">
+<dt>Returns:</dt>
+<dd>default policy name, as a prefix of auto-generated policy name.</dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getPolicyName()">
+<h3>getPolicyName</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a></span>&nbsp;<span 
class="element-name">getPolicyName</span>()</div>
+<dl class="notes">
+<dt>Specified by:</dt>
+<dd><code><a 
href="RateLimiter.html#getPolicyName()">getPolicyName</a></code>&nbsp;in 
interface&nbsp;<code><a href="RateLimiter.html" title="interface in 
org.apache.catalina.util">RateLimiter</a></code></dd>
+<dt>Returns:</dt>
+<dd>name of RateLimit policy</dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="setPolicyName(java.lang.String)">
+<h3>setPolicyName</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span 
class="element-name">setPolicyName</span><wbr><span class="parameters">(<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>&nbsp;name)</span></div>
+<div class="block"><span class="description-from-type-label">Description 
copied from interface:&nbsp;<code><a 
href="RateLimiter.html#setPolicyName(java.lang.String)">RateLimiter</a></code></span></div>
+<div class="block">Sets the policy name, otherwise an auto-generated name is 
used.</div>
+<dl class="notes">
+<dt>Specified by:</dt>
+<dd><code><a 
href="RateLimiter.html#setPolicyName(java.lang.String)">setPolicyName</a></code>&nbsp;in
 interface&nbsp;<code><a href="RateLimiter.html" title="interface in 
org.apache.catalina.util">RateLimiter</a></code></dd>
+<dt>Parameters:</dt>
+<dd><code>name</code> - of rate limit policy</dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getDuration()">
+<h3>getDuration</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">int</span>&nbsp;<span 
class="element-name">getDuration</span>()</div>
+<dl class="notes">
+<dt>Specified by:</dt>
+<dd><code><a 
href="RateLimiter.html#getDuration()">getDuration</a></code>&nbsp;in 
interface&nbsp;<code><a href="RateLimiter.html" title="interface in 
org.apache.catalina.util">RateLimiter</a></code></dd>
+<dt>Returns:</dt>
+<dd>the actual duration of a time window in seconds</dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="setDuration(int)">
+<h3>setDuration</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span 
class="element-name">setDuration</span><wbr><span 
class="parameters">(int&nbsp;duration)</span></div>
+<div class="block"><span class="description-from-type-label">Description 
copied from interface:&nbsp;<code><a 
href="RateLimiter.html#setDuration(int)">RateLimiter</a></code></span></div>
+<div class="block">Sets the configured duration value in seconds.</div>
+<dl class="notes">
+<dt>Specified by:</dt>
+<dd><code><a 
href="RateLimiter.html#setDuration(int)">setDuration</a></code>&nbsp;in 
interface&nbsp;<code><a href="RateLimiter.html" title="interface in 
org.apache.catalina.util">RateLimiter</a></code></dd>
+<dt>Parameters:</dt>
+<dd><code>duration</code> - The duration of the time window in seconds</dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getRequests()">
+<h3>getRequests</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">int</span>&nbsp;<span 
class="element-name">getRequests</span>()</div>
+<dl class="notes">
+<dt>Specified by:</dt>
+<dd><code><a 
href="RateLimiter.html#getRequests()">getRequests</a></code>&nbsp;in 
interface&nbsp;<code><a href="RateLimiter.html" title="interface in 
org.apache.catalina.util">RateLimiter</a></code></dd>
+<dt>Returns:</dt>
+<dd>the maximum number of requests allowed per time window</dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="setRequests(int)">
+<h3>setRequests</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span 
class="element-name">setRequests</span><wbr><span 
class="parameters">(int&nbsp;requests)</span></div>
+<div class="block"><span class="description-from-type-label">Description 
copied from interface:&nbsp;<code><a 
href="RateLimiter.html#setRequests(int)">RateLimiter</a></code></span></div>
+<div class="block">Sets the configured number of requests allowed per time 
window.</div>
+<dl class="notes">
+<dt>Specified by:</dt>
+<dd><code><a 
href="RateLimiter.html#setRequests(int)">setRequests</a></code>&nbsp;in 
interface&nbsp;<code><a href="RateLimiter.html" title="interface in 
org.apache.catalina.util">RateLimiter</a></code></dd>
+<dt>Parameters:</dt>
+<dd><code>requests</code> - The number of requests per time window</dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="increment(java.lang.String)">
+<h3>increment</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">int</span>&nbsp;<span 
class="element-name">increment</span><wbr><span class="parameters">(<a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html";
 title="class or interface in java.lang" 
class="external-link">String</a>&nbsp;identifier)</span></div>
+<div class="block"><span class="description-from-type-label">Description 
copied from interface:&nbsp;<code><a 
href="RateLimiter.html#increment(java.lang.String)">RateLimiter</a></code></span></div>
+<div class="block">Increments the number of requests by the given identifier 
in the current time window.</div>
+<dl class="notes">
+<dt>Specified by:</dt>
+<dd><code><a 
href="RateLimiter.html#increment(java.lang.String)">increment</a></code>&nbsp;in
 interface&nbsp;<code><a href="RateLimiter.html" title="interface in 
org.apache.catalina.util">RateLimiter</a></code></dd>
+<dt>Parameters:</dt>
+<dd><code>identifier</code> - the identifier for which the number of 
associated requests should be incremented</dd>
+<dt>Returns:</dt>
+<dd>the new value after incrementing</dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="destroy()">
+<h3>destroy</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span 
class="element-name">destroy</span>()</div>
+<div class="block"><span class="description-from-type-label">Description 
copied from interface:&nbsp;<code><a 
href="RateLimiter.html#destroy()">RateLimiter</a></code></span></div>
+<div class="block">Cleanup no longer needed resources.</div>
+<dl class="notes">
+<dt>Specified by:</dt>
+<dd><code><a href="RateLimiter.html#destroy()">destroy</a></code>&nbsp;in 
interface&nbsp;<code><a href="RateLimiter.html" title="interface in 
org.apache.catalina.util">RateLimiter</a></code></dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" 
id="newCounterInstance(int,java.util.concurrent.ScheduledExecutorService)">
+<h3>newCounterInstance</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">protected 
abstract</span>&nbsp;<span class="return-type"><a 
href="TimeBucketCounterBase.html" title="class in 
org.apache.catalina.util">TimeBucketCounterBase</a></span>&nbsp;<span 
class="element-name">newCounterInstance</span><wbr><span 
class="parameters">(int&nbsp;duration,
+ <a 
href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/ScheduledExecutorService.html";
 title="class or interface in java.util.concurrent" 
class="external-link">ScheduledExecutorService</a>&nbsp;utilityExecutor)</span></div>
+<div class="block">Instantiate an instance of <a 
href="TimeBucketCounterBase.html" title="class in 
org.apache.catalina.util"><code>TimeBucketCounterBase</code></a> for specific 
time bucket size. Concrete classes
+ determine its counter policy by returning different implementation 
instances.</div>
+<dl class="notes">
+<dt>Parameters:</dt>
+<dd><code>duration</code> - size of each time bucket in seconds</dd>
+<dd><code>utilityExecutor</code> - the executor</dd>
+<dt>Returns:</dt>
+<dd>counter instance of <a href="TimeBucketCounterBase.html" title="class in 
org.apache.catalina.util"><code>TimeBucketCounterBase</code></a></dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="setFilterConfig(javax.servlet.FilterConfig)">
+<h3>setFilterConfig</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span 
class="element-name">setFilterConfig</span><wbr><span class="parameters">(<a 
href="../../../../../servletapi/javax/servlet/FilterConfig.html" title="class 
or interface in javax.servlet" 
class="external-link">FilterConfig</a>&nbsp;filterConfig)</span></div>
+<div class="block"><span class="description-from-type-label">Description 
copied from interface:&nbsp;<code><a 
href="RateLimiter.html#setFilterConfig(javax.servlet.FilterConfig)">RateLimiter</a></code></span></div>
+<div class="block">Pass the FilterConfig to configure the filter.</div>
+<dl class="notes">
+<dt>Specified by:</dt>
+<dd><code><a 
href="RateLimiter.html#setFilterConfig(javax.servlet.FilterConfig)">setFilterConfig</a></code>&nbsp;in
 interface&nbsp;<code><a href="RateLimiter.html" title="interface in 
org.apache.catalina.util">RateLimiter</a></code></dd>
+<dt>Parameters:</dt>
+<dd><code>filterConfig</code> - The FilterConfig used to configure the 
associated filter</dd>
+</dl>
+</div>
+</section>
+</li>
+<li>
+<section class="detail" id="getBucketCounter()">
+<h3>getBucketCounter</h3>
+<div class="horizontal-scroll">
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type"><a href="TimeBucketCounterBase.html" title="class in 
org.apache.catalina.util">TimeBucketCounterBase</a></span>&nbsp;<span 
class="element-name">getBucketCounter</span>()</div>
+<div class="block">Returns the internal instance of <a 
href="TimeBucketCounterBase.html" title="class in 
org.apache.catalina.util"><code>TimeBucketCounterBase</code></a>.</div>
+<dl class="notes">
+<dt>Returns:</dt>
+<dd>instance of <a href="TimeBucketCounterBase.html" title="class in 
org.apache.catalina.util"><code>TimeBucketCounterBase</code></a></dd>
+</dl>
+</div>
+</section>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</section>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<hr>
+<p class="legal-copy"><small>Copyright &#169; 2000-2025 Apache Software 
Foundation.               <br/>               Apache Tomcat, Tomcat, Apache, 
the Apache Tomcat logo and the Apache logo are either registered trademarks     
          or trademarks of the Apache Software Foundation.</small></p>
+</footer>
+</main>
+</div>
+</body>
+</html>



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

Reply via email to