diff --git a/proposal/sandbox/dotnet/build.xml b/proposal/sandbox/dotnet/build.xml index 9bb0bd64a..6db1d04c7 100644 --- a/proposal/sandbox/dotnet/build.xml +++ b/proposal/sandbox/dotnet/build.xml @@ -71,6 +71,7 @@ printsummary="false" haltonfailure="false" failureproperty="tests.failed" + filtertrace="false" > diff --git a/proposal/sandbox/dotnet/src/etc/testcases/dotnetexec.xml b/proposal/sandbox/dotnet/src/etc/testcases/dotnetexec.xml index e421c5e80..2aaef4bcb 100644 --- a/proposal/sandbox/dotnet/src/etc/testcases/dotnetexec.xml +++ b/proposal/sandbox/dotnet/src/etc/testcases/dotnetexec.xml @@ -76,8 +76,9 @@ + targetType="exe"> + + No app ${testCSC.exe} created diff --git a/proposal/sandbox/dotnet/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/AbstractBuildTask.java b/proposal/sandbox/dotnet/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/AbstractBuildTask.java index ed70d3731..3db543979 100644 --- a/proposal/sandbox/dotnet/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/AbstractBuildTask.java +++ b/proposal/sandbox/dotnet/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/AbstractBuildTask.java @@ -202,13 +202,8 @@ public abstract class AbstractBuildTask extends Task { + " same time"); } - DotNetExecTask exec = new DotNetExecTask(); - if (vm != null) { - exec.setVm(vm); - } - exec.setProject(getProject()); - exec.setExecutable(getExecutable()); - exec.setTaskName(getTaskName()); + DotNetExecTask exec = DotNetExecTask.getTask(this, vm, + getExecutable(), null); String[] args = getPropertyArguments(properties); for (int i = 0; i < args.length; i++) { exec.createArg().setValue(args[i]); diff --git a/proposal/sandbox/dotnet/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/DotNetExecTask.java b/proposal/sandbox/dotnet/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/DotNetExecTask.java index 8339f80d5..e546cfd6e 100644 --- a/proposal/sandbox/dotnet/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/DotNetExecTask.java +++ b/proposal/sandbox/dotnet/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/DotNetExecTask.java @@ -18,8 +18,10 @@ package org.apache.tools.ant.taskdefs.optional.dotnet; import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.Task; import org.apache.tools.ant.taskdefs.ExecTask; import org.apache.tools.ant.taskdefs.condition.Os; +import org.apache.tools.ant.types.Environment; /** * Specialized that knows how to deal with Mono vs. Microsoft's @@ -115,4 +117,34 @@ public class DotNetExecTask extends ExecTask { protected final static boolean isMono(String vm) { return "mono".equals(vm) || "mint".equals(vm); } + + /** + * Creates an instance of this task based on a different tasks settings. + */ + public static DotNetExecTask getTask(Task t, String vm, + String executable, + Environment env) { + DotNetExecTask exec = new DotNetExecTask(); + if (vm != null) { + exec.setVm(vm); + } + exec.setProject(t.getProject()); + exec.setExecutable(executable); + exec.setTaskName(t.getTaskName()); + if (env != null) { + String[] environment = env.getVariables(); + if (environment != null) { + for (int i = 0; i < environment.length; i++) { + int idx = environment[i].indexOf("="); + Environment.Variable v = new Environment.Variable(); + v.setKey(environment[i].substring(0, idx)); + v.setValue(environment[i].substring(idx + 1)); + exec.addEnv(v); + } + } + } + + return exec; + } + } diff --git a/proposal/sandbox/dotnet/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/WixTask.java b/proposal/sandbox/dotnet/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/WixTask.java index 7969803d8..69a8feb97 100644 --- a/proposal/sandbox/dotnet/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/WixTask.java +++ b/proposal/sandbox/dotnet/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/WixTask.java @@ -211,13 +211,8 @@ public class WixTask extends Task { * potentially adding an /out parameter. */ private void run(String executable, List s, File target) { - DotNetExecTask exec = new DotNetExecTask(); - if (vm != null) { - exec.setVm(vm); - } - exec.setProject(getProject()); - exec.setExecutable(executable); - exec.setTaskName(getTaskName()); + DotNetExecTask exec = DotNetExecTask.getTask(this, vm, + executable, null); Iterator iter = s.iterator(); while (iter.hasNext()) { File f = (File) iter.next();