changeset 7:418ba4cfc553 tip

USASR-644: preserve dependencies in replaced target
author smith@nwoca.org
date Wed, 12 Oct 2011 18:12:17 -0400
parents c989b9aa8820
children
files src/org/ssdt_ohio/tools/ant/ReplaceTargetTask.java
diffstat 1 files changed, 11 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/org/ssdt_ohio/tools/ant/ReplaceTargetTask.java	Wed Oct 12 12:59:32 2011 -0400
+++ b/src/org/ssdt_ohio/tools/ant/ReplaceTargetTask.java	Wed Oct 12 18:12:17 2011 -0400
@@ -1,5 +1,6 @@
 package org.ssdt_ohio.tools.ant;
 
+import java.util.Enumeration;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.Target;
@@ -24,15 +25,24 @@
         if (t == null) {
             log(target + " to be replaced does not exist", Project.MSG_VERBOSE);
         } else {
+
             Target withTarget = (Target) getProject().getTargets().get(with);
             if (withTarget == null) {
                 log(with + " replacement target does not exist", Project.MSG_ERR);
             } else {
                 Target newTarget = new Target(withTarget);
+                for (Enumeration en = t.getDependencies(); en.hasMoreElements();) {
+                    String dep = (String) en.nextElement();
+                    if (!newTarget.dependsOn(dep)) {
+                        newTarget.addDependency(dep);
+                    }
+                }
                 newTarget.setName(target);
+
                 getProject().addOrReplaceTarget(newTarget);
-                
+
                 log(target + " target replaced by " + with, Project.MSG_INFO);
+
             }
         }
     }