blob: 6d7bdac5e84066d30bfbc7915bef701ef1d7d00d [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 (1.8.0_221) on Wed Jan 29 15:38:00 PST 2020 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>AbstractExecutionServiceController (Apache Twill 0.14.0 API)</title>
<meta name="date" content="2020-01-29">
<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="AbstractExecutionServiceController (Apache Twill 0.14.0 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":6,"i11":10,"i12":10,"i13":6,"i14":10,"i15":10,"i16":10,"i17":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/AbstractExecutionServiceController.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>Prev&nbsp;Class</li>
<li><a href="../../../../org/apache/twill/internal/AbstractTwillController.html" title="class in org.apache.twill.internal"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/twill/internal/AbstractExecutionServiceController.html" target="_top">Frames</a></li>
<li><a href="AbstractExecutionServiceController.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>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.twill.internal</div>
<h2 title="Class AbstractExecutionServiceController" class="title">Class AbstractExecutionServiceController</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.twill.internal.AbstractExecutionServiceController</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>com.google.common.util.concurrent.Service, <a href="../../../../org/apache/twill/api/ServiceController.html" title="interface in org.apache.twill.api">ServiceController</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../org/apache/twill/internal/AbstractZKServiceController.html" title="class in org.apache.twill.internal">AbstractZKServiceController</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">AbstractExecutionServiceController</span>
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>
implements <a href="../../../../org/apache/twill/api/ServiceController.html" title="interface in org.apache.twill.api">ServiceController</a>, com.google.common.util.concurrent.Service</pre>
<div class="block">An abstract base class for implementing <a href="../../../../org/apache/twill/api/ServiceController.html" title="interface in org.apache.twill.api"><code>ServiceController</code></a> that deal with Service state transition and
listener callback.</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>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.twill.api.ServiceController">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.twill.api.<a href="../../../../org/apache/twill/api/ServiceController.html" title="interface in org.apache.twill.api">ServiceController</a></h3>
<code><a href="../../../../org/apache/twill/api/ServiceController.TerminationStatus.html" title="enum in org.apache.twill.api">ServiceController.TerminationStatus</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.com.google.common.util.concurrent.Service">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;com.google.common.util.concurrent.Service</h3>
<code>com.google.common.util.concurrent.Service.Listener, com.google.common.util.concurrent.Service.State</code></li>
</ul>
</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="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/twill/internal/AbstractExecutionServiceController.html#AbstractExecutionServiceController-org.apache.twill.api.RunId-">AbstractExecutionServiceController</a></span>(<a href="../../../../org/apache/twill/api/RunId.html" title="interface in org.apache.twill.api">RunId</a>&nbsp;runId)</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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract 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>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/twill/internal/AbstractExecutionServiceController.html#addListener-com.google.common.util.concurrent.Service.Listener-java.util.concurrent.Executor-">addListener</a></span>(com.google.common.util.concurrent.Service.Listener&nbsp;listener,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent">Executor</a>&nbsp;executor)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/twill/internal/AbstractExecutionServiceController.html#awaitTerminated--">awaitTerminated</a></span>()</code>
<div class="block">Waits for termination of the remote service.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/twill/internal/AbstractExecutionServiceController.html#awaitTerminated-long-java.util.concurrent.TimeUnit-">awaitTerminated</a></span>(long&nbsp;timeout,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;timeoutUnit)</code>
<div class="block">Waits for termination of the remote service for no more than the given timeout limit.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent">Executor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/twill/internal/AbstractExecutionServiceController.html#executor-com.google.common.util.concurrent.Service.State-">executor</a></span>(com.google.common.util.concurrent.Service.State&nbsp;state)</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/twill/api/RunId.html" title="interface in org.apache.twill.api">RunId</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/twill/internal/AbstractExecutionServiceController.html#getRunId--">getRunId</a></span>()</code>
<div class="block">Returns the <a href="../../../../org/apache/twill/api/RunId.html" title="interface in org.apache.twill.api"><code>RunId</code></a> of the running application.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/twill/api/ServiceController.TerminationStatus.html" title="enum in org.apache.twill.api">ServiceController.TerminationStatus</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/twill/internal/AbstractExecutionServiceController.html#getTerminationStatus--">getTerminationStatus</a></span>()</code>
<div class="block">Gets the termination status of the application represented by this controller.</div>
</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/twill/internal/AbstractExecutionServiceController.html#isRunning--">isRunning</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/twill/internal/AbstractExecutionServiceController.html#onRunning-java.lang.Runnable-java.util.concurrent.Executor-">onRunning</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&nbsp;runnable,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent">Executor</a>&nbsp;executor)</code>
<div class="block">Attaches a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang"><code>Runnable</code></a> that will get executed when the service is running.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/twill/internal/AbstractExecutionServiceController.html#onTerminated-java.lang.Runnable-java.util.concurrent.Executor-">onTerminated</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&nbsp;runnable,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent">Executor</a>&nbsp;executor)</code>
<div class="block">Attaches a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang"><code>Runnable</code></a> that will get executed when the serivce is terminated.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/twill/internal/AbstractExecutionServiceController.html#setTerminationStatus-org.apache.twill.api.ServiceController.TerminationStatus-">setTerminationStatus</a></span>(<a href="../../../../org/apache/twill/api/ServiceController.TerminationStatus.html" title="enum in org.apache.twill.api">ServiceController.TerminationStatus</a>&nbsp;status)</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/twill/internal/AbstractExecutionServiceController.html#shutDown--">shutDown</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>com.google.common.util.concurrent.ListenableFuture&lt;com.google.common.util.concurrent.Service.State&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/twill/internal/AbstractExecutionServiceController.html#start--">start</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>com.google.common.util.concurrent.Service.State</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/twill/internal/AbstractExecutionServiceController.html#startAndWait--">startAndWait</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/twill/internal/AbstractExecutionServiceController.html#startUp--">startUp</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>com.google.common.util.concurrent.Service.State</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/twill/internal/AbstractExecutionServiceController.html#state--">state</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>com.google.common.util.concurrent.ListenableFuture&lt;com.google.common.util.concurrent.Service.State&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/twill/internal/AbstractExecutionServiceController.html#stop--">stop</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>com.google.common.util.concurrent.Service.State</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/twill/internal/AbstractExecutionServiceController.html#stopAndWait--">stopAndWait</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;? extends <a href="../../../../org/apache/twill/api/ServiceController.html" title="interface in org.apache.twill.api">ServiceController</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/twill/internal/AbstractExecutionServiceController.html#terminate--">terminate</a></span>()</code>
<div class="block">Requests to terminate the running service.</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>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.twill.api.ServiceController">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.twill.api.<a href="../../../../org/apache/twill/api/ServiceController.html" title="interface in org.apache.twill.api">ServiceController</a></h3>
<code><a href="../../../../org/apache/twill/api/ServiceController.html#kill--">kill</a>, <a href="../../../../org/apache/twill/api/ServiceController.html#sendCommand-org.apache.twill.api.Command-">sendCommand</a>, <a href="../../../../org/apache/twill/api/ServiceController.html#sendCommand-java.lang.String-org.apache.twill.api.Command-">sendCommand</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.com.google.common.util.concurrent.Service">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;com.google.common.util.concurrent.Service</h3>
<code>awaitRunning, awaitRunning, failureCause, startAsync, stopAsync</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="AbstractExecutionServiceController-org.apache.twill.api.RunId-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractExecutionServiceController</h4>
<pre>protected&nbsp;AbstractExecutionServiceController(<a href="../../../../org/apache/twill/api/RunId.html" title="interface in org.apache.twill.api">RunId</a>&nbsp;runId)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="startUp--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startUp</h4>
<pre>protected abstract&nbsp;void&nbsp;startUp()</pre>
</li>
</ul>
<a name="shutDown--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shutDown</h4>
<pre>protected abstract&nbsp;void&nbsp;shutDown()</pre>
</li>
</ul>
<a name="getRunId--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRunId</h4>
<pre>public final&nbsp;<a href="../../../../org/apache/twill/api/RunId.html" title="interface in org.apache.twill.api">RunId</a>&nbsp;getRunId()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/twill/api/ServiceController.html#getRunId--">ServiceController</a></code></span></div>
<div class="block">Returns the <a href="../../../../org/apache/twill/api/RunId.html" title="interface in org.apache.twill.api"><code>RunId</code></a> of the running application.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/twill/api/ServiceController.html#getRunId--">getRunId</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/twill/api/ServiceController.html" title="interface in org.apache.twill.api">ServiceController</a></code></dd>
</dl>
</li>
</ul>
<a name="terminate--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>terminate</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;? extends <a href="../../../../org/apache/twill/api/ServiceController.html" title="interface in org.apache.twill.api">ServiceController</a>&gt;&nbsp;terminate()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/twill/api/ServiceController.html#terminate--">ServiceController</a></code></span></div>
<div class="block">Requests to terminate the running service. The service will be given chance to shutdown gracefully.
This method returns immediately and caller can get the termination state through the future returned.
Calling this method multiple times is allowed and a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent"><code>Future</code></a> representing the termination state
will be returned.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/twill/api/ServiceController.html#terminate--">terminate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/twill/api/ServiceController.html" title="interface in org.apache.twill.api">ServiceController</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent"><code>Future</code></a> that represents the termination of the service. The future result will be
this <a href="../../../../org/apache/twill/api/ServiceController.html" title="interface in org.apache.twill.api"><code>ServiceController</code></a>. If the service terminated with a <a href="../../../../org/apache/twill/api/ServiceController.TerminationStatus.html#FAILED"><code>ServiceController.TerminationStatus.FAILED</code></a> status,
calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get--" title="class or interface in java.util.concurrent"><code>Future.get()</code></a> on the returning future will throw <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent"><code>ExecutionException</code></a>.</dd>
</dl>
</li>
</ul>
<a name="getTerminationStatus--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTerminationStatus</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Nullable.html?is-external=true" title="class or interface in javax.annotation">@Nullable</a>
public&nbsp;<a href="../../../../org/apache/twill/api/ServiceController.TerminationStatus.html" title="enum in org.apache.twill.api">ServiceController.TerminationStatus</a>&nbsp;getTerminationStatus()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/twill/api/ServiceController.html#getTerminationStatus--">ServiceController</a></code></span></div>
<div class="block">Gets the termination status of the application represented by this controller.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/twill/api/ServiceController.html#getTerminationStatus--">getTerminationStatus</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/twill/api/ServiceController.html" title="interface in org.apache.twill.api">ServiceController</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the termination status or <code>null</code> if the application is still running</dd>
</dl>
</li>
</ul>
<a name="onRunning-java.lang.Runnable-java.util.concurrent.Executor-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onRunning</h4>
<pre>public&nbsp;void&nbsp;onRunning(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&nbsp;runnable,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent">Executor</a>&nbsp;executor)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/twill/api/ServiceController.html#onRunning-java.lang.Runnable-java.util.concurrent.Executor-">ServiceController</a></code></span></div>
<div class="block">Attaches a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang"><code>Runnable</code></a> that will get executed when the service is running.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/twill/api/ServiceController.html#onRunning-java.lang.Runnable-java.util.concurrent.Executor-">onRunning</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/twill/api/ServiceController.html" title="interface in org.apache.twill.api">ServiceController</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable</code> - the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang"><code>Runnable</code></a> to be executed when the service is running.</dd>
<dd><code>executor</code> - the executor in which the runnable will be executed with.</dd>
</dl>
</li>
</ul>
<a name="onTerminated-java.lang.Runnable-java.util.concurrent.Executor-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onTerminated</h4>
<pre>public&nbsp;void&nbsp;onTerminated(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&nbsp;runnable,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent">Executor</a>&nbsp;executor)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/twill/api/ServiceController.html#onTerminated-java.lang.Runnable-java.util.concurrent.Executor-">ServiceController</a></code></span></div>
<div class="block">Attaches a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang"><code>Runnable</code></a> that will get executed when the serivce is terminated.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/twill/api/ServiceController.html#onTerminated-java.lang.Runnable-java.util.concurrent.Executor-">onTerminated</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/twill/api/ServiceController.html" title="interface in org.apache.twill.api">ServiceController</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable</code> - the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang"><code>Runnable</code></a> to be executed when the service is terminated.</dd>
<dd><code>executor</code> - the executor in which the runnable will be executed with.</dd>
</dl>
</li>
</ul>
<a name="awaitTerminated--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>awaitTerminated</h4>
<pre>public&nbsp;void&nbsp;awaitTerminated()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent">ExecutionException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/twill/api/ServiceController.html#awaitTerminated--">ServiceController</a></code></span></div>
<div class="block">Waits for termination of the remote service.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>awaitTerminated</code>&nbsp;in interface&nbsp;<code>com.google.common.util.concurrent.Service</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/twill/api/ServiceController.html#awaitTerminated--">awaitTerminated</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/twill/api/ServiceController.html" title="interface in org.apache.twill.api">ServiceController</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent">ExecutionException</a></code> - if the service terminated due to exception.</dd>
</dl>
</li>
</ul>
<a name="awaitTerminated-long-java.util.concurrent.TimeUnit-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>awaitTerminated</h4>
<pre>public&nbsp;void&nbsp;awaitTerminated(long&nbsp;timeout,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;timeoutUnit)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeoutException.html?is-external=true" title="class or interface in java.util.concurrent">TimeoutException</a>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent">ExecutionException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/twill/api/ServiceController.html#awaitTerminated-long-java.util.concurrent.TimeUnit-">ServiceController</a></code></span></div>
<div class="block">Waits for termination of the remote service for no more than the given timeout limit.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>awaitTerminated</code>&nbsp;in interface&nbsp;<code>com.google.common.util.concurrent.Service</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/twill/api/ServiceController.html#awaitTerminated-long-java.util.concurrent.TimeUnit-">awaitTerminated</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/twill/api/ServiceController.html" title="interface in org.apache.twill.api">ServiceController</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeout</code> - the maximum time to wait</dd>
<dd><code>timeoutUnit</code> - the time unit of the timeout</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeoutException.html?is-external=true" title="class or interface in java.util.concurrent">TimeoutException</a></code> - if the service is not terminated within the given time.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent">ExecutionException</a></code> - if the service terminated due to exception.</dd>
</dl>
</li>
</ul>
<a name="addListener-com.google.common.util.concurrent.Service.Listener-java.util.concurrent.Executor-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addListener</h4>
<pre>public final&nbsp;void&nbsp;addListener(com.google.common.util.concurrent.Service.Listener&nbsp;listener,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent">Executor</a>&nbsp;executor)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>addListener</code>&nbsp;in interface&nbsp;<code>com.google.common.util.concurrent.Service</code></dd>
</dl>
</li>
</ul>
<a name="start--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre>public final&nbsp;com.google.common.util.concurrent.ListenableFuture&lt;com.google.common.util.concurrent.Service.State&gt;&nbsp;start()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>start</code>&nbsp;in interface&nbsp;<code>com.google.common.util.concurrent.Service</code></dd>
</dl>
</li>
</ul>
<a name="startAndWait--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startAndWait</h4>
<pre>public final&nbsp;com.google.common.util.concurrent.Service.State&nbsp;startAndWait()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>startAndWait</code>&nbsp;in interface&nbsp;<code>com.google.common.util.concurrent.Service</code></dd>
</dl>
</li>
</ul>
<a name="isRunning--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRunning</h4>
<pre>public final&nbsp;boolean&nbsp;isRunning()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>isRunning</code>&nbsp;in interface&nbsp;<code>com.google.common.util.concurrent.Service</code></dd>
</dl>
</li>
</ul>
<a name="state--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>state</h4>
<pre>public final&nbsp;com.google.common.util.concurrent.Service.State&nbsp;state()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>state</code>&nbsp;in interface&nbsp;<code>com.google.common.util.concurrent.Service</code></dd>
</dl>
</li>
</ul>
<a name="stopAndWait--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stopAndWait</h4>
<pre>public final&nbsp;com.google.common.util.concurrent.Service.State&nbsp;stopAndWait()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>stopAndWait</code>&nbsp;in interface&nbsp;<code>com.google.common.util.concurrent.Service</code></dd>
</dl>
</li>
</ul>
<a name="stop--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre>public final&nbsp;com.google.common.util.concurrent.ListenableFuture&lt;com.google.common.util.concurrent.Service.State&gt;&nbsp;stop()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>stop</code>&nbsp;in interface&nbsp;<code>com.google.common.util.concurrent.Service</code></dd>
</dl>
</li>
</ul>
<a name="executor-com.google.common.util.concurrent.Service.State-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>executor</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent">Executor</a>&nbsp;executor(com.google.common.util.concurrent.Service.State&nbsp;state)</pre>
</li>
</ul>
<a name="setTerminationStatus-org.apache.twill.api.ServiceController.TerminationStatus-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setTerminationStatus</h4>
<pre>protected final&nbsp;void&nbsp;setTerminationStatus(<a href="../../../../org/apache/twill/api/ServiceController.TerminationStatus.html" title="enum in org.apache.twill.api">ServiceController.TerminationStatus</a>&nbsp;status)</pre>
</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/AbstractExecutionServiceController.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>Prev&nbsp;Class</li>
<li><a href="../../../../org/apache/twill/internal/AbstractTwillController.html" title="class in org.apache.twill.internal"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/twill/internal/AbstractExecutionServiceController.html" target="_top">Frames</a></li>
<li><a href="AbstractExecutionServiceController.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>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2013-2020 <a href="http://www.apache.org">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>