Basically, I've added the capability for <uptodate> to have a nested <sequential> task that only gets executed if the targets are out of date. At present I have to create a whole other <target> to do the dependency check so that the primary target and have an unless="blah.uptodate".

This would make my ant script have fewer 'unnecessary' targets & seems like a good idea. (To me, anyway).

- Paul
Index: docs/manual/CoreTasks/uptodate.html
===================================================================
RCS file: /home/cvspublic/ant/docs/manual/CoreTasks/uptodate.html,v
retrieving revision 1.11
diff -u -r1.11 uptodate.html
--- docs/manual/CoreTasks/uptodate.html 1 Jun 2002 12:26:33 -0000       1.11
+++ docs/manual/CoreTasks/uptodate.html 19 Sep 2003 20:11:48 -0000
@@ -37,7 +37,8 @@
   <tr>
     <td valign="top">property</td>
     <td valign="top">The name of the property to set.</td>
-    <td valign="top" align="center">Yes</td>
+    <td valign="top" align="center">Yes, unless a nested 
+      <code>&lt;sequential&gt;</code> is present.</td>
   </tr>
   <tr>
     <td valign="top">value</td>
@@ -70,6 +71,10 @@
 <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>
+
+<h4><a name="sequential">sequential</a></h4>
+<p>The nested <code>&lt;sequential&gt;</code> element allows you to specify a
+set of tasks to run when the source files are out of date.</p>
 
 <h3>Examples</h3>
 <pre>  &lt;uptodate property=&quot;xmlBuild.notRequired&quot; 
targetfile=&quot;${deploy}\xmlClasses.jar&quot; &gt;
Index: src/main/org/apache/tools/ant/taskdefs/UpToDate.java
===================================================================
RCS file: 
/home/cvspublic/ant/src/main/org/apache/tools/ant/taskdefs/UpToDate.java,v
retrieving revision 1.32
diff -u -r1.32 UpToDate.java
--- src/main/org/apache/tools/ant/taskdefs/UpToDate.java        13 Aug 2003 
14:46:15 -0000      1.32
+++ src/main/org/apache/tools/ant/taskdefs/UpToDate.java        19 Sep 2003 
20:12:07 -0000
@@ -91,6 +91,7 @@
     private File _sourceFile;
     private File _targetFile;
     private Vector sourceFileSets = new Vector();
+    private Sequential _sequential = null;
 
     protected Mapper mapperElement = null;
 
@@ -218,14 +219,21 @@
         return upToDate;
     }
 
+    public void addSequential( Sequential s ) {
+        if( _sequential != null ) {
+            throw new BuildException( "Only one nested <sequential> 
permitted", getLocation() );
+        }
+        
+        _sequential = s;
+    }
 
     /**
      * Sets property to true if target file(s) have a more recent timestamp
      * than (each of) the corresponding source file(s).
      */
     public void execute() throws BuildException {
-        if (_property == null) {
-            throw new BuildException("property attribute is required.",
+        if (_property == null && _sequential == null) {
+            throw new BuildException("property attribute or nested 
<sequential> required.",
                                      getLocation());
         }
         boolean upToDate = eval();
@@ -237,6 +245,11 @@
             } else {
                 log("All target files are up-to-date.",
                     Project.MSG_VERBOSE);
+            }
+        }
+        else {
+            if (_sequential != null) {
+                _sequential.perform();
             }
         }
     }

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to