<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<title>Uptodate Task</title>
<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
</head>

<body>

<h2><a name="uptodate">Uptodate</a></h2>
<h3>Description</h3>
<p>Sets a property if a target file or set of target files is more up-to-date
than a source file or set of source files. A single source file is specified
using the <code>srcfile</code> attribute. A set of source files is specified
using the nested <code>&lt;srcfiles&gt;</code>
elements. These are <a href="../CoreTypes/fileset.html">FileSet</a>s,
whereas multiple target files are specified using a nested
<a href="../CoreTypes/mapper.html"><code>&lt;mapper&gt;</code></a> element.</p>
<p>By default, the value of the property is set to <code>true</code> if
the timestamp of the target file(s) is more recent than the timestamp of
the corresponding source file(s). You can set the value to something other
than the default by specifying the <code>value</code> attribute.</p>
<p>If a <code>&lt;srcfiles&gt;</code> element is used, without also specifying
a <code>&lt;mapper&gt;</code> element, the default behavior is to use a
<a href="../CoreTypes/mapper.html#merge-mapper">merge mapper</a>, with the
<code>to</code> attribute set to the value of the
<code>targetfile</code> attribute.</p>
<p>Normally, this task is used to set properties that are useful to avoid
target execution depending on the relative age of the specified files.</p>
<h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0">
  <tr>
    <td valign="top"><b>Attribute</b></td>
    <td valign="top"><b>Description</b></td>
    <td align="center" valign="top"><b>Required</b></td>
  </tr>
  <tr>
    <td valign="top">property</td>
    <td valign="top">The name of the property to set.</td>
    <td valign="top" align="center">Yes</td>
  </tr>
  <tr>
    <td valign="top">value</td>
    <td valign="top">The value to set the property to.</td>
    <td valign="top" align="center">No; defaults to <code>true</code>.</td>
  </tr>
  <tr>
    <td valign="top">srcfile</td>
    <td valign="top">The file to check against the target file(s).</td>
    <td valign="top" align="center">Yes, unless a nested
      <code>&lt;srcfiles&gt;</code> element is present.</td>
  </tr>
  <tr>
    <td valign="top">targetfile</td>
    <td valign="top">The file for which we want to determine the status.</td>
    <td valign="top" align="center">Yes, unless a nested
      <code>&lt;mapper&gt;</code> element is present.</td>
  </tr>
</table>

<h3>Parameters specified as nested elements</h3>
<h4><a name="srcfiles">srcfiles</a></h4>
<p>The nested <code>&lt;srcfiles&gt;</code> element allows you to specify a
set of files to check against the target file(s).</p>

<p><strong>Note:</strong> You can specify either the <code>srcfile</code>
attribute or nested <code>&lt;srcfiles&gt;</code> elements, but not both.

<h4><a name="mapper">mapper</a></h4>
<p>The nested <code>&lt;mapper&gt;</code> element allows you to specify
a set of target files to check for being up-to-date with respect to a
set of source files.</p>

<h3>Examples</h3>
<pre>  &lt;uptodate property=&quot;xmlBuild.notRequired&quot; targetfile=&quot;${deploy}\xmlClasses.jar&quot; &gt;
    &lt;srcfiles dir= &quot;${src}/xml&quot; includes=&quot;**/*.dtd&quot;/&gt;
  &lt;/uptodate&gt;</pre>
<p>sets the property <code>xmlBuild.notRequired</code> to <code>true</code>
if the <code>${deploy}/xmlClasses.jar</code> file is more up-to-date than
any of the DTD files in the <code>${src}/xml</code> directory.</p>
<p>This can be written as:</p>
<pre>  &lt;uptodate property=&quot;xmlBuild.notRequired&quot;&gt;
    &lt;srcfiles dir= &quot;${src}/xml&quot; includes=&quot;**/*.dtd&quot;/&gt;
    &lt;mapper type=&quot;merge&quot; to=&quot;${deploy}\xmlClasses.jar&quot;/&gt;
  &lt;/uptodate&gt;</pre>
as well.

The <code>xmlBuild.notRequired</code> property can then be used in a
<code>&lt;target&gt;</code> tag's <code>unless</code> attribute to
conditionally run that target. For example, running the following target:</p>
<pre>
&lt;target name=&quot;xmlBuild&quot; depends=&quot;chkXmlBuild&quot; unless=&quot;xmlBuild.notRequired&quot;&gt;
  ...
&lt;/target&gt;
</pre>
will first run the <code>chkXmlBuild</code> target, which contains
the <code>&lt;uptodate&gt;</code> task that determines whether
<code>xmlBuild.notRequired</code> gets set. The property named in
the <code>unless</code> attribute is then checked for being set/not set.
If it did get set (ie., the jar file is up-to-date),
then the <code>xmlBuild</code> target won't be run.
</p>

<p> The following example shows a single source file being checked
against a single target file:</p>
<pre>  &lt;uptodate property=&quot;isUpToDate&quot;
            srcfile=&quot;/usr/local/bin/testit&quot;
            targetfile=&quot;${build}/.flagfile&quot;/&gt;
</pre>
<p>sets the property <code>isUpToDate</code> to <code>true</code>
if <code>/usr/local/bin/testit</code> is newer than
<code>${build}/.flagfile</code>.</p>
</p>

<hr>
<p align="center">Copyright &copy; 2000-2002 Apache Software Foundation.
All rights Reserved.</p>

</body>
</html>

