# HG changeset patch # User smith@nwoca.org # Date 1318457537 14400 # Node ID 418ba4cfc553fcd89e260f974fb1e2f3b3fa3d93 # Parent c989b9aa8820a71ba01580798d945f4e2e55c07d USASR-644: preserve dependencies in replaced target diff -r c989b9aa8820 -r 418ba4cfc553 src/org/ssdt_ohio/tools/ant/ReplaceTargetTask.java --- 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); + } } }