blob: 45bf955dad71cb0b6b9b12e64f8637479b666cd0 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ChoreService (Apache HBase 3.0.0-SNAPSHOT API)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ChoreService (Apache HBase 3.0.0-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"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,"i14":10,"i15":10,"i16":10,"i17":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";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ChoreService.html">Use</a></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>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/hadoop/hbase/CellUtil.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/hadoop/hbase/ChoreService.ChoreServiceThreadFactory.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/hadoop/hbase/ChoreService.html" target="_top">Frames</a></li>
<li><a href="ChoreService.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&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 name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.hbase</div>
<h2 title="Class ChoreService" class="title">Class ChoreService</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hbase.ChoreService</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>@InterfaceAudience.Public
public class <a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.54">ChoreService</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">ChoreService is a service that can be used to schedule instances of <a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase"><code>ScheduledChore</code></a> to run
periodically while sharing threads. The ChoreService is backed by a
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent"><code>ScheduledThreadPoolExecutor</code></a> whose core pool size changes dynamically depending on the
number of <a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase"><code>ScheduledChore</code></a> scheduled. All of the threads in the core thread pool of the
underlying <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent"><code>ScheduledThreadPoolExecutor</code></a> are set to be daemon threads.
<p>
The ChoreService provides the ability to schedule, cancel, and trigger instances of
<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase"><code>ScheduledChore</code></a>. The ChoreService also provides the ability to check on the status of
scheduled chores. The number of threads used by the ChoreService changes based on the scheduling
load and whether or not the scheduled chores are executing on time. As more chores are scheduled,
there may be a need to increase the number of threads if it is noticed that chores are no longer
meeting their scheduled start times. On the other hand, as chores are cancelled, an attempt is
made to reduce the number of running threads to see if chores can still meet their start times
with a smaller thread pool.
<p>
When finished with a ChoreService it is good practice to call <a href="../../../../org/apache/hadoop/hbase/ChoreService.html#shutdown--"><code>shutdown()</code></a>.
Calling this method ensures that all scheduled chores are cancelled and cleaned up properly.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.ChoreServiceThreadFactory.html" title="class in org.apache.hadoop.hbase">ChoreService.ChoreServiceThreadFactory</a></span></code>
<div class="block">Custom ThreadFactory used with the ScheduledThreadPoolExecutor so that all the threads are
daemon threads, and thus, don't prevent the JVM from shutting down</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#choresMissingStartTime">choresMissingStartTime</a></span></code>
<div class="block">Maps chores to Booleans which indicate whether or not a chore has caused an increase in the
core pool size of the ScheduledThreadPoolExecutor.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#coreThreadPoolPrefix">coreThreadPoolPrefix</a></span></code>
<div class="block">The coreThreadPoolPrefix is the prefix that will be applied to all threads within the
ScheduledThreadPoolExecutor.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#LOG">LOG</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#MIN_CORE_POOL_SIZE">MIN_CORE_POOL_SIZE</a></span></code>
<div class="block">The minimum number of threads in the core pool of the underlying ScheduledThreadPoolExecutor</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledFuture.html?is-external=true" title="class or interface in java.util.concurrent">ScheduledFuture</a>&lt;?&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#scheduledChores">scheduledChores</a></span></code>
<div class="block">Maps chores to their futures.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ScheduledThreadPoolExecutor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#scheduler">scheduler</a></span></code>
<div class="block">This thread pool is used to schedule all of the Chores</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#ChoreService-java.lang.String-">ChoreService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;coreThreadPoolPrefix)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#ChoreService-java.lang.String-boolean-">ChoreService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;coreThreadPoolPrefix,
boolean&nbsp;jitter)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#ChoreService-java.lang.String-int-boolean-">ChoreService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;coreThreadPoolPrefix,
int&nbsp;corePoolSize,
boolean&nbsp;jitter)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<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="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#cancelAllChores-boolean-">cancelAllChores</a></span>(boolean&nbsp;mayInterruptIfRunning)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#cancelChore-org.apache.hadoop.hbase.ScheduledChore-">cancelChore</a></span>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</code>
<div class="block">Cancel any ongoing schedules that this chore has with the implementer of this interface.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#cancelChore-org.apache.hadoop.hbase.ScheduledChore-boolean-">cancelChore</a></span>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore,
boolean&nbsp;mayInterruptIfRunning)</code>
<div class="block">Cancel any ongoing schedules that this chore has with the implementer of this interface.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#getCorePoolSize--">getCorePoolSize</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#getNumberOfChoresMissingStartTime--">getNumberOfChoresMissingStartTime</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#getNumberOfScheduledChores--">getNumberOfScheduledChores</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#isChoreScheduled-org.apache.hadoop.hbase.ScheduledChore-">isChoreScheduled</a></span>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#isShutdown--">isShutdown</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#isTerminated--">isTerminated</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#onChoreMissedStartTime-org.apache.hadoop.hbase.ScheduledChore-">onChoreMissedStartTime</a></span>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</code>
<div class="block">A callback that tells the implementer of this interface that one of the scheduled chores is
missing its start time.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#printChoreDetails-java.lang.String-org.apache.hadoop.hbase.ScheduledChore-">printChoreDetails</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;header,
<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</code>
<div class="block">Prints a summary of important details about the chore.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#printChoreServiceDetails-java.lang.String-">printChoreServiceDetails</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;header)</code>
<div class="block">Prints a summary of important details about the service.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#requestCorePoolDecrease--">requestCorePoolDecrease</a></span>()</code>
<div class="block">Represents a request to decrease the number of core pool threads.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#requestCorePoolIncrease--">requestCorePoolIncrease</a></span>()</code>
<div class="block">Represents a request to increase the number of core pool threads.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#rescheduleChore-org.apache.hadoop.hbase.ScheduledChore-">rescheduleChore</a></span>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#scheduleChore-org.apache.hadoop.hbase.ScheduledChore-">scheduleChore</a></span>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</code>&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#shutdown--">shutdown</a></span>()</code>
<div class="block">shutdown the service.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ChoreService.html#triggerNow-org.apache.hadoop.hbase.ScheduledChore-">triggerNow</a></span>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</code>
<div class="block">This method tries to execute the chore immediately.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="LOG">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.55">LOG</a></pre>
</li>
</ul>
<a name="MIN_CORE_POOL_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MIN_CORE_POOL_SIZE</h4>
<pre>@InterfaceAudience.Private
public static final&nbsp;int <a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.61">MIN_CORE_POOL_SIZE</a></pre>
<div class="block">The minimum number of threads in the core pool of the underlying ScheduledThreadPoolExecutor</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.hadoop.hbase.ChoreService.MIN_CORE_POOL_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="scheduler">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>scheduler</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ScheduledThreadPoolExecutor</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.66">scheduler</a></pre>
<div class="block">This thread pool is used to schedule all of the Chores</div>
</li>
</ul>
<a name="scheduledChores">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>scheduledChores</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledFuture.html?is-external=true" title="class or interface in java.util.concurrent">ScheduledFuture</a>&lt;?&gt;&gt; <a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.71">scheduledChores</a></pre>
<div class="block">Maps chores to their futures. Futures are used to control a chore's schedule</div>
</li>
</ul>
<a name="choresMissingStartTime">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>choresMissingStartTime</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt; <a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.79">choresMissingStartTime</a></pre>
<div class="block">Maps chores to Booleans which indicate whether or not a chore has caused an increase in the
core pool size of the ScheduledThreadPoolExecutor. Each chore should only be allowed to
increase the core pool size by 1 (otherwise a single long running chore whose execution is
longer than its period would be able to spawn too many threads).</div>
</li>
</ul>
<a name="coreThreadPoolPrefix">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>coreThreadPoolPrefix</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.87">coreThreadPoolPrefix</a></pre>
<div class="block">The coreThreadPoolPrefix is the prefix that will be applied to all threads within the
ScheduledThreadPoolExecutor. The prefix is typically related to the Server that the service is
running on. The prefix is useful because it allows us to monitor how the thread pool of a
particular service changes over time VIA thread dumps.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ChoreService-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ChoreService</h4>
<pre>@InterfaceAudience.Private
public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.95">ChoreService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;coreThreadPoolPrefix)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>coreThreadPoolPrefix</code> - Prefix that will be applied to the Thread name of all threads
spawned by this service</dd>
</dl>
</li>
</ul>
<a name="ChoreService-java.lang.String-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ChoreService</h4>
<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.105">ChoreService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;coreThreadPoolPrefix,
boolean&nbsp;jitter)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>coreThreadPoolPrefix</code> - Prefix that will be applied to the Thread name of all threads
spawned by this service</dd>
<dd><code>jitter</code> - Should chore service add some jitter for all of the scheduled chores. When set
to true this will add -10% to 10% jitter.</dd>
</dl>
</li>
</ul>
<a name="ChoreService-java.lang.String-int-boolean-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ChoreService</h4>
<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.118">ChoreService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;coreThreadPoolPrefix,
int&nbsp;corePoolSize,
boolean&nbsp;jitter)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>coreThreadPoolPrefix</code> - Prefix that will be applied to the Thread name of all threads
spawned by this service</dd>
<dd><code>corePoolSize</code> - The initial size to set the core pool of the ScheduledThreadPoolExecutor
to during initialization. The default size is 1, but specifying a larger size may be
beneficial if you know that 1 thread will not be enough.</dd>
<dd><code>jitter</code> - Should chore service add some jitter for all of the scheduled chores. When set
to true this will add -10% to 10% jitter.</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="scheduleChore-org.apache.hadoop.hbase.ScheduledChore-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>scheduleChore</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.143">scheduleChore</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>chore</code> - Chore to be scheduled. If the chore is already scheduled with another ChoreService
instance, that schedule will be cancelled (i.e. a Chore can only ever be scheduled
with a single ChoreService instance).</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true when the chore was successfully scheduled. false when the scheduling failed
(typically occurs when a chore is scheduled during shutdown of service)</dd>
</dl>
</li>
</ul>
<a name="rescheduleChore-org.apache.hadoop.hbase.ScheduledChore-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rescheduleChore</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.183">rescheduleChore</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>chore</code> - The Chore to be rescheduled. If the chore is not scheduled with this ChoreService
yet then this call is equivalent to a call to scheduleChore.</dd>
</dl>
</li>
</ul>
<a name="cancelChore-org.apache.hadoop.hbase.ScheduledChore-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cancelChore</h4>
<pre>void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.202">cancelChore</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
<div class="block">Cancel any ongoing schedules that this chore has with the implementer of this interface.
<p/>
Call <a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html#cancel--"><code>ScheduledChore.cancel()</code></a> to cancel a <a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase"><code>ScheduledChore</code></a>, in
<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html#cancel--"><code>ScheduledChore.cancel()</code></a> method we will call this method to remove the
<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase"><code>ScheduledChore</code></a> from this <a href="../../../../org/apache/hadoop/hbase/ChoreService.html" title="class in org.apache.hadoop.hbase"><code>ChoreService</code></a>.</div>
</li>
</ul>
<a name="cancelChore-org.apache.hadoop.hbase.ScheduledChore-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cancelChore</h4>
<pre>void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.215">cancelChore</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore,
boolean&nbsp;mayInterruptIfRunning)</pre>
<div class="block">Cancel any ongoing schedules that this chore has with the implementer of this interface.
<p/>
Call <a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html#cancel-boolean-"><code>ScheduledChore.cancel(boolean)</code></a> to cancel a <a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase"><code>ScheduledChore</code></a>, in
<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html#cancel-boolean-"><code>ScheduledChore.cancel(boolean)</code></a> method we will call this method to remove the
<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase"><code>ScheduledChore</code></a> from this <a href="../../../../org/apache/hadoop/hbase/ChoreService.html" title="class in org.apache.hadoop.hbase"><code>ChoreService</code></a>.</div>
</li>
</ul>
<a name="isChoreScheduled-org.apache.hadoop.hbase.ScheduledChore-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isChoreScheduled</h4>
<pre>@InterfaceAudience.Private
public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.234">isChoreScheduled</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true when the chore is scheduled with the implementer of this interface</dd>
</dl>
</li>
</ul>
<a name="triggerNow-org.apache.hadoop.hbase.ScheduledChore-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>triggerNow</h4>
<pre>void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.245">triggerNow</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
<div class="block">This method tries to execute the chore immediately. If the chore is executing at the time of
this call, the chore will begin another execution as soon as the current execution finishes</div>
</li>
</ul>
<a name="getNumberOfScheduledChores--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumberOfScheduledChores</h4>
<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.253">getNumberOfScheduledChores</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>number of chores that this service currently has scheduled</dd>
</dl>
</li>
</ul>
<a name="getNumberOfChoresMissingStartTime--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumberOfChoresMissingStartTime</h4>
<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.261">getNumberOfChoresMissingStartTime</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>number of chores that this service currently has scheduled that are missing their
scheduled start time</dd>
</dl>
</li>
</ul>
<a name="getCorePoolSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCorePoolSize</h4>
<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.268">getCorePoolSize</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>number of threads in the core pool of the underlying ScheduledThreadPoolExecutor</dd>
</dl>
</li>
</ul>
<a name="requestCorePoolIncrease--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requestCorePoolIncrease</h4>
<pre>private&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.303">requestCorePoolIncrease</a>()</pre>
<div class="block">Represents a request to increase the number of core pool threads. Typically a request
originates from the fact that the current core pool size is not sufficient to service all of
the currently running Chores</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true when the request to increase the core pool size succeeds</dd>
</dl>
</li>
</ul>
<a name="requestCorePoolDecrease--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requestCorePoolDecrease</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.320">requestCorePoolDecrease</a>()</pre>
<div class="block">Represents a request to decrease the number of core pool threads. Typically a request
originates from the fact that the current core pool size is more than sufficient to service the
running Chores.</div>
</li>
</ul>
<a name="onChoreMissedStartTime-org.apache.hadoop.hbase.ScheduledChore-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onChoreMissedStartTime</h4>
<pre>void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.337">onChoreMissedStartTime</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
<div class="block">A callback that tells the implementer of this interface that one of the scheduled chores is
missing its start time. The implication of a chore missing its start time is that the service's
current means of scheduling may not be sufficient to handle the number of ongoing chores (the
other explanation is that the chore's execution time is greater than its scheduled period). The
service should try to increase its concurrency when this callback is received.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>chore</code> - The chore that missed its start time</dd>
</dl>
</li>
</ul>
<a name="shutdown--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shutdown</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.365">shutdown</a>()</pre>
<div class="block">shutdown the service. Any chores that are scheduled for execution will be cancelled. Any chores
in the middle of execution will be interrupted and shutdown. This service will be unusable
after this method has been called (i.e. future scheduling attempts will fail).
<p/>
Notice that, this will only clean the chore from this ChoreService but you could still schedule
the chore with other ChoreService.</div>
</li>
</ul>
<a name="isShutdown--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isShutdown</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.380">isShutdown</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true when the service is shutdown and thus cannot be used anymore</dd>
</dl>
</li>
</ul>
<a name="isTerminated--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isTerminated</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.387">isTerminated</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true when the service is shutdown and all threads have terminated</dd>
</dl>
</li>
</ul>
<a name="cancelAllChores-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cancelAllChores</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.391">cancelAllChores</a>(boolean&nbsp;mayInterruptIfRunning)</pre>
</li>
</ul>
<a name="printChoreDetails-java.lang.String-org.apache.hadoop.hbase.ScheduledChore-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printChoreDetails</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.405">printChoreDetails</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;header,
<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
<div class="block">Prints a summary of important details about the chore. Used for debugging purposes</div>
</li>
</ul>
<a name="printChoreServiceDetails-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>printChoreServiceDetails</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.423">printChoreServiceDetails</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;header)</pre>
<div class="block">Prints a summary of important details about the service. Used for debugging purposes</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ChoreService.html">Use</a></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>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/hadoop/hbase/CellUtil.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/hadoop/hbase/ChoreService.ChoreServiceThreadFactory.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/hadoop/hbase/ChoreService.html" target="_top">Frames</a></li>
<li><a href="ChoreService.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&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 name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>