Fixed bug 13130
diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntRunner.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntRunner.java
index 1211725..dac4e8c 100644
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntRunner.java
+++ b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntRunner.java
@@ -24,6 +24,7 @@
protected Map userProperties;
protected int messageOutputLevel = 2; // Project.MSG_INFO
protected String buildLoggerClassName;
+ protected String arguments;
public AntRunner() {
buildListeners = new ArrayList(5);
@@ -58,6 +59,13 @@
}
/**
+ *
+ */
+public void setArguments(String arguments) {
+ this.arguments = arguments;
+}
+
+/**
* Sets the executionTargets in the order they need to run.
*
*/
@@ -124,6 +132,11 @@
Method setExecutionTargets = classInternalAntRunner.getMethod("setExecutionTargets", new Class[] {Vector.class});
setExecutionTargets.invoke(runner, new Object[] {targets});
}
+ // set extra arguments
+ if (arguments != null) {
+ Method setArguments = classInternalAntRunner.getMethod("setArguments", new Class[] {String.class});
+ setArguments.invoke(runner, new Object[] {arguments});
+ }
// run
Method run = classInternalAntRunner.getMethod("run", null);
run.invoke(runner, null);
diff --git a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InternalAntRunner.java b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InternalAntRunner.java
index fedf024..9e1463e 100644
--- a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InternalAntRunner.java
+++ b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InternalAntRunner.java
@@ -125,6 +125,9 @@
*/
protected String loggerClassname = null;
+ /** Extra arguments to be parsed as command line arguments. */
+ protected String extraArguments = null;
+
// properties
private static final String PROPERTY_ECLIPSE_RUNNING = "eclipse.running";
@@ -234,6 +237,8 @@
* Runs the build script.
*/
public void run() {
+ if (extraArguments != null)
+ processCommandLine(getArrayList(extraArguments));
Project project = new Project();
Throwable error = null;
PrintStream originalErr = System.err;
@@ -482,6 +487,13 @@
}
/**
+ *
+ */
+public void setArguments(String args) {
+ this.extraArguments = args;
+}
+
+/**
* Sets the execution targets.
*
*/
@@ -696,4 +708,17 @@
result.add(args[i]);
return result;
}
+
+/**
+ * Helper method to ensure an array is converted into an ArrayList.
+ */
+private ArrayList getArrayList(String args) {
+ ArrayList result = new ArrayList();
+ for (StringTokenizer tokens = new StringTokenizer(args, ","); tokens.hasMoreTokens();) {
+ String token = tokens.nextToken().trim();
+ if (!token.equals(""))
+ result.add(token);
+ }
+ return result;
+}
}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntLaunchWizard.java b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntLaunchWizard.java
index 83b2a4d..b9dd8d5 100644
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntLaunchWizard.java
+++ b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntLaunchWizard.java
Binary files differ