Merged fix for 21917 from HEAD.
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 7c16d16..86f1a5f 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
@@ -131,7 +131,9 @@
*/
public void setArguments(String[] arguments) {
this.arguments = arguments;
-} * Sets the targets and execution order.
+}
+
+/** Sets the targets and execution order.
*
* @param executionTargets which targets should be run and in which order
*/
@@ -324,12 +326,4 @@
}
}
-/**
- * Sets the arguments to be passed to the script (e.g. -Dos=win32 -Dws=win32 -verbose).
- *
- * @param arguments the arguments to be passed to the script
- */
-public void setArguments(String[] arguments) {
- this.arguments = arguments;
-}
}
\ No newline at end of file
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 e6d21c7..20b5f9f 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
@@ -130,7 +130,7 @@
protected String loggerClassname = null;
/** Extra arguments to be parsed as command line arguments. */
- protected String extraArguments = null;
+ protected String[] extraArguments = null;
// properties
private static final String PROPERTY_ECLIPSE_RUNNING = "eclipse.running"; //$NON-NLS-1$
@@ -256,8 +256,8 @@
}
createMonitorBuildListener(project);
fireBuildStarted(project);
- if (extraArguments != null && !extraArguments.trim().equals("")) //$NON-NLS-1$
- project.log(Policy.bind("label.arguments", extraArguments)); //$NON-NLS-1$
+ if (extraArguments != null)
+ printArguments(project);
if (targets != null && !targets.isEmpty())
project.executeTargets(targets);
else
@@ -277,7 +277,12 @@
}
}
-protected void createMonitorBuildListener(Project project) {
+protected void printArguments(Project project) {
+ StringBuffer sb = new StringBuffer();
+ for (int i = 0; i < extraArguments.length; i++)
+ sb.append(extraArguments[i]);
+ project.log(Policy.bind("label.arguments", sb.toString())); //$NON-NLS-1$
+}protected void createMonitorBuildListener(Project project) {
if (monitor == null)
return;
Vector chosenTargets = targets;
@@ -508,7 +513,7 @@
/**
*
*/
-public void setArguments(String args) {
+public void setArguments(String[] args) {
this.extraArguments = args;
}
@@ -729,42 +734,7 @@
return result;
}
-/**
- * Helper method to ensure an array is converted into an ArrayList.
- */
-private ArrayList getArrayList(String args) {
- StringBuffer sb = new StringBuffer();
- boolean waitingForQuote = false;
- ArrayList result = new ArrayList();
- for (StringTokenizer tokens = new StringTokenizer(args, ", \"", true); tokens.hasMoreTokens();) { //$NON-NLS-1$
- String token = tokens.nextToken();
- if (waitingForQuote) {
- if (token.equals("\"")) { //$NON-NLS-1$
- result.add(sb.toString());
- sb.setLength(0);
- waitingForQuote = false;
- } else
- sb.append(token);
- } else {
- if (token.equals("\"")) { //$NON-NLS-1$
- // test if we have something like -Dproperty="value"
- if (result.size() > 0) {
- int index = result.size() - 1;
- String last = (String) result.get(index);
- if (last.charAt(last.length()-1) == '=') {
- result.remove(index);
- sb.append(last);
- }
- }
- waitingForQuote = true;
- } else {
- if (!(token.equals(",") || token.equals(" "))) //$NON-NLS-1$ //$NON-NLS-2$
- result.add(token);
- }
- }
- }
- return result;
-}
+
/**
* Sets the build progress monitor.