????
| Current Path : /opt/ant/manual/api/org/apache/tools/ant/taskdefs/ |
| Current File : //opt/ant/manual/api/org/apache/tools/ant/taskdefs/ExecuteWatchdog.html |
<!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 (version 1.7.0_03) on Tue May 22 06:24:52 CEST 2012 -->
<title>ExecuteWatchdog (Apache Ant API)</title>
<meta name="date" content="2012-05-22">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ExecuteWatchdog (Apache Ant API)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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="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/tools/ant/taskdefs/ExecuteStreamHandler.html" title="interface in org.apache.tools.ant.taskdefs"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/tools/ant/taskdefs/Exit.html" title="class in org.apache.tools.ant.taskdefs"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/tools/ant/taskdefs/ExecuteWatchdog.html" target="_top">Frames</a></li>
<li><a href="ExecuteWatchdog.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
<li>Nested | </li>
<li>Field | </li>
<li><a href="#constructor_summary">Constr</a> | </li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail: </li>
<li>Field | </li>
<li><a href="#constructor_detail">Constr</a> | </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.tools.ant.taskdefs</div>
<h2 title="Class ExecuteWatchdog" class="title">Class ExecuteWatchdog</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.tools.ant.taskdefs.ExecuteWatchdog</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../org/apache/tools/ant/util/TimeoutObserver.html" title="interface in org.apache.tools.ant.util">TimeoutObserver</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">ExecuteWatchdog</span>
extends java.lang.Object
implements <a href="../../../../../org/apache/tools/ant/util/TimeoutObserver.html" title="interface in org.apache.tools.ant.util">TimeoutObserver</a></pre>
<div class="block">Destroys a process running for too long.
For example:
<pre>
ExecuteWatchdog watchdog = new ExecuteWatchdog(30000);
Execute exec = new Execute(myloghandler, watchdog);
exec.setCommandLine(mycmdline);
int exitvalue = exec.execute();
if (Execute.isFailure(exitvalue) && watchdog.killedProcess()) {
// it was killed on purpose by the watchdog
}
</pre></div>
<dl><dt><span class="strong">Since:</span></dt>
<dd>Ant 1.2</dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/apache/tools/ant/taskdefs/Execute.html" title="class in org.apache.tools.ant.taskdefs"><code>Execute</code></a>,
<a href="../../../../../org/apache/tools/ant/util/Watchdog.html" title="class in org.apache.tools.ant.util"><code>Watchdog</code></a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../org/apache/tools/ant/taskdefs/ExecuteWatchdog.html#ExecuteWatchdog(int)">ExecuteWatchdog</a></strong>(int timeout)</code>
<div class="block"><strong>Deprecated.</strong>
<div class="block"><i>since 1.5.x.
Use constructor with a long type instead.
(1.4.x compatibility)</i></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../../org/apache/tools/ant/taskdefs/ExecuteWatchdog.html#ExecuteWatchdog(long)">ExecuteWatchdog</a></strong>(long timeout)</code>
<div class="block">Creates a new watchdog with a given timeout.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd"> </span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/tools/ant/taskdefs/ExecuteWatchdog.html#checkException()">checkException</a></strong>()</code>
<div class="block">This method will rethrow the exception that was possibly caught during
the run of the process.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/tools/ant/taskdefs/ExecuteWatchdog.html#cleanUp()">cleanUp</a></strong>()</code>
<div class="block">reset the monitor flag and the process.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/tools/ant/taskdefs/ExecuteWatchdog.html#isWatching()">isWatching</a></strong>()</code>
<div class="block">Indicates whether or not the watchdog is still monitoring the process.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/tools/ant/taskdefs/ExecuteWatchdog.html#killedProcess()">killedProcess</a></strong>()</code>
<div class="block">Indicates whether the last process run was killed on timeout or not.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/tools/ant/taskdefs/ExecuteWatchdog.html#start(java.lang.Process)">start</a></strong>(java.lang.Process process)</code>
<div class="block">Watches the given process and terminates it, if it runs for too long.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/tools/ant/taskdefs/ExecuteWatchdog.html#stop()">stop</a></strong>()</code>
<div class="block">Stops the watcher.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/tools/ant/taskdefs/ExecuteWatchdog.html#timeoutOccured(org.apache.tools.ant.util.Watchdog)">timeoutOccured</a></strong>(<a href="../../../../../org/apache/tools/ant/util/Watchdog.html" title="class in org.apache.tools.ant.util">Watchdog</a> w)</code>
<div class="block">Called after watchdog has finished.</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 java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</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="ExecuteWatchdog(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ExecuteWatchdog</h4>
<pre>public ExecuteWatchdog(long timeout)</pre>
<div class="block">Creates a new watchdog with a given timeout.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>timeout</code> - the timeout for the process in milliseconds.
It must be greater than 0.</dd></dl>
</li>
</ul>
<a name="ExecuteWatchdog(int)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ExecuteWatchdog</h4>
<pre>public ExecuteWatchdog(int timeout)</pre>
<div class="block"><span class="strong">Deprecated.</span> <i>since 1.5.x.
Use constructor with a long type instead.
(1.4.x compatibility)</i></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>timeout</code> - the timeout value to use in milliseconds.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/apache/tools/ant/taskdefs/ExecuteWatchdog.html#ExecuteWatchdog(long)"><code>ExecuteWatchdog(long)</code></a></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="start(java.lang.Process)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre>public void start(java.lang.Process process)</pre>
<div class="block">Watches the given process and terminates it, if it runs for too long.
All information from the previous run are reset.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>process</code> - the process to monitor. It cannot be <tt>null</tt></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if a process is still being monitored.</dd></dl>
</li>
</ul>
<a name="stop()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre>public void stop()</pre>
<div class="block">Stops the watcher. It will notify all threads possibly waiting
on this object.</div>
</li>
</ul>
<a name="timeoutOccured(org.apache.tools.ant.util.Watchdog)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>timeoutOccured</h4>
<pre>public void timeoutOccured(<a href="../../../../../org/apache/tools/ant/util/Watchdog.html" title="class in org.apache.tools.ant.util">Watchdog</a> w)</pre>
<div class="block">Called after watchdog has finished.
This can be called in the watchdog thread</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/tools/ant/util/TimeoutObserver.html#timeoutOccured(org.apache.tools.ant.util.Watchdog)">timeoutOccured</a></code> in interface <code><a href="../../../../../org/apache/tools/ant/util/TimeoutObserver.html" title="interface in org.apache.tools.ant.util">TimeoutObserver</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>w</code> - the watchdog</dd></dl>
</li>
</ul>
<a name="cleanUp()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cleanUp</h4>
<pre>protected void cleanUp()</pre>
<div class="block">reset the monitor flag and the process.</div>
</li>
</ul>
<a name="checkException()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkException</h4>
<pre>public void checkException()
throws <a href="../../../../../org/apache/tools/ant/BuildException.html" title="class in org.apache.tools.ant">BuildException</a></pre>
<div class="block">This method will rethrow the exception that was possibly caught during
the run of the process. It will only remains valid once the process has
been terminated either by 'error', timeout or manual intervention.
Information will be discarded once a new process is ran.</div>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/tools/ant/BuildException.html" title="class in org.apache.tools.ant">BuildException</a></code> - a wrapped exception over the one that was
silently swallowed and stored during the process run.</dd></dl>
</li>
</ul>
<a name="isWatching()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isWatching</h4>
<pre>public boolean isWatching()</pre>
<div class="block">Indicates whether or not the watchdog is still monitoring the process.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd><tt>true</tt> if the process is still running, otherwise
<tt>false</tt>.</dd></dl>
</li>
</ul>
<a name="killedProcess()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>killedProcess</h4>
<pre>public boolean killedProcess()</pre>
<div class="block">Indicates whether the last process run was killed on timeout or not.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd><tt>true</tt> if the process was killed otherwise
<tt>false</tt>.</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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="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/tools/ant/taskdefs/ExecuteStreamHandler.html" title="interface in org.apache.tools.ant.taskdefs"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/tools/ant/taskdefs/Exit.html" title="class in org.apache.tools.ant.taskdefs"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/tools/ant/taskdefs/ExecuteWatchdog.html" target="_top">Frames</a></li>
<li><a href="ExecuteWatchdog.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
<li>Nested | </li>
<li>Field | </li>
<li><a href="#constructor_summary">Constr</a> | </li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail: </li>
<li>Field | </li>
<li><a href="#constructor_detail">Constr</a> | </li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>