Browse Source

Allow subclasses of <junit> to plug in command lines of their own.

Submitted by:	Mariano Benitez <mariano at fuegolabs dot com>


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@276129 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 21 years ago
parent
commit
b4c31671f5
2 changed files with 30 additions and 20 deletions
  1. +27
    -17
      src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
  2. +3
    -3
      src/main/org/apache/tools/ant/types/CommandlineJava.java

+ 27
- 17
src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java View File

@@ -123,7 +123,7 @@ import junit.framework.TestResult;
*/ */
public class JUnitTask extends Task { public class JUnitTask extends Task {


private CommandlineJava commandline = new CommandlineJava();
private CommandlineJava commandline;
private Vector tests = new Vector(); private Vector tests = new Vector();
private Vector batchTests = new Vector(); private Vector batchTests = new Vector();
private Vector formatters = new Vector(); private Vector formatters = new Vector();
@@ -338,7 +338,7 @@ public class JUnitTask extends Task {
* @since Ant 1.2 * @since Ant 1.2
*/ */
public void setMaxmemory(String max) { public void setMaxmemory(String max) {
commandline.setMaxmemory(max);
getCommandline().setMaxmemory(max);
} }


/** /**
@@ -352,7 +352,7 @@ public class JUnitTask extends Task {
* @since Ant 1.2 * @since Ant 1.2
*/ */
public void setJvm(String value) { public void setJvm(String value) {
commandline.setVm(value);
getCommandline().setVm(value);
} }


/** /**
@@ -365,7 +365,7 @@ public class JUnitTask extends Task {
* @since Ant 1.2 * @since Ant 1.2
*/ */
public Commandline.Argument createJvmarg() { public Commandline.Argument createJvmarg() {
return commandline.createVmArgument();
return getCommandline().createVmArgument();
} }


/** /**
@@ -390,7 +390,7 @@ public class JUnitTask extends Task {
*/ */
public void addSysproperty(Environment.Variable sysp) { public void addSysproperty(Environment.Variable sysp) {


commandline.addSysproperty(sysp);
getCommandline().addSysproperty(sysp);
} }


/** /**
@@ -405,7 +405,7 @@ public class JUnitTask extends Task {
// see bugzilla report 21684 // see bugzilla report 21684
String testString = sysp.getContent(); String testString = sysp.getContent();
getProject().log("sysproperty added : " + testString, Project.MSG_DEBUG); getProject().log("sysproperty added : " + testString, Project.MSG_DEBUG);
commandline.addSysproperty(sysp);
getCommandline().addSysproperty(sysp);
} }


/** /**
@@ -419,7 +419,7 @@ public class JUnitTask extends Task {
* @since Ant 1.6 * @since Ant 1.6
*/ */
public void addSyspropertyset(PropertySet sysp) { public void addSyspropertyset(PropertySet sysp) {
commandline.addSyspropertyset(sysp);
getCommandline().addSyspropertyset(sysp);
} }


/** /**
@@ -429,7 +429,7 @@ public class JUnitTask extends Task {
* @since Ant 1.2 * @since Ant 1.2
*/ */
public Path createClasspath() { public Path createClasspath() {
return commandline.createClasspath(getProject()).createPath();
return getCommandline().createClasspath(getProject()).createPath();
} }


/** /**
@@ -438,7 +438,7 @@ public class JUnitTask extends Task {
* @since Ant 1.6 * @since Ant 1.6
*/ */
public Path createBootclasspath() { public Path createBootclasspath() {
return commandline.createBootclasspath(getProject()).createPath();
return getCommandline().createBootclasspath(getProject()).createPath();
} }


/** /**
@@ -532,10 +532,10 @@ public class JUnitTask extends Task {
* @param asserts assertion set * @param asserts assertion set
*/ */
public void addAssertions(Assertions asserts) { public void addAssertions(Assertions asserts) {
if (commandline.getAssertions() != null) {
if (getCommandline().getAssertions() != null) {
throw new BuildException("Only one assertion declaration is allowed"); throw new BuildException("Only one assertion declaration is allowed");
} }
commandline.setAssertions(asserts);
getCommandline().setAssertions(asserts);
} }


/** /**
@@ -560,7 +560,7 @@ public class JUnitTask extends Task {
* @since Ant 1.7 * @since Ant 1.7
*/ */
public void setCloneVm(boolean cloneVm) { public void setCloneVm(boolean cloneVm) {
commandline.setCloneVm(cloneVm);
getCommandline().setCloneVm(cloneVm);
} }


/** /**
@@ -570,7 +570,7 @@ public class JUnitTask extends Task {
* @since Ant 1.2 * @since Ant 1.2
*/ */
public JUnitTask() throws Exception { public JUnitTask() throws Exception {
commandline
getCommandline()
.setClassname("org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner"); .setClassname("org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner");
} }


@@ -688,7 +688,7 @@ public class JUnitTask extends Task {
log("Permissions ignored when running in forked mode!", Project.MSG_WARN); log("Permissions ignored when running in forked mode!", Project.MSG_WARN);
} }


CommandlineJava cmd = (CommandlineJava) commandline.clone();
CommandlineJava cmd = (CommandlineJava) getCommandline().clone();


cmd.setClassname("org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner"); cmd.setClassname("org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner");
cmd.createArgument().setValue(test.getName()); cmd.createArgument().setValue(test.getName());
@@ -916,13 +916,13 @@ public class JUnitTask extends Task {
+ "the same VM.", Project.MSG_WARN); + "the same VM.", Project.MSG_WARN);
} }


if (commandline.getBootclasspath() != null) {
if (getCommandline().getBootclasspath() != null) {
log("bootclasspath is ignored if running in the same VM.", log("bootclasspath is ignored if running in the same VM.",
Project.MSG_WARN); Project.MSG_WARN);
} }


CommandlineJava.SysProperties sysProperties = CommandlineJava.SysProperties sysProperties =
commandline.getSystemProperties();
getCommandline().getSystemProperties();
if (sysProperties != null) { if (sysProperties != null) {
sysProperties.setSystem(); sysProperties.setSystem();
} }
@@ -1154,7 +1154,7 @@ public class JUnitTask extends Task {
* @since Ant 1.6 * @since Ant 1.6
*/ */
private void createClassLoader() { private void createClassLoader() {
Path userClasspath = commandline.getClasspath();
Path userClasspath = getCommandline().getClasspath();
if (userClasspath != null) { if (userClasspath != null) {
if (reloading || classLoader == null) { if (reloading || classLoader == null) {
Path classpath = (Path) userClasspath.clone(); Path classpath = (Path) userClasspath.clone();
@@ -1176,4 +1176,14 @@ public class JUnitTask extends Task {
} }
} }
} }

/**
* @since Ant 1.7
*/
protected CommandlineJava getCommandline() {
if (commandline == null) {
commandline = new CommandlineJava();
}
return commandline;
}
} }

+ 3
- 3
src/main/org/apache/tools/ant/types/CommandlineJava.java View File

@@ -463,7 +463,7 @@ public class CommandlineJava implements Cloneable {
* Get the VM command parameters, including memory settings * Get the VM command parameters, including memory settings
* @return * @return
*/ */
private Commandline getActualVMCommand() {
protected Commandline getActualVMCommand() {
Commandline actualVMCommand = (Commandline) vmCommand.clone(); Commandline actualVMCommand = (Commandline) vmCommand.clone();
if (maxMemory != null) { if (maxMemory != null) {
if (vmVersion.startsWith("1.1")) { if (vmVersion.startsWith("1.1")) {
@@ -604,7 +604,7 @@ public class CommandlineJava implements Cloneable {
* *
* @since Ant 1.6 * @since Ant 1.6
*/ */
private boolean haveClasspath() {
protected boolean haveClasspath() {
Path fullClasspath = classpath != null Path fullClasspath = classpath != null
? classpath.concatSystemClasspath("ignore") : null; ? classpath.concatSystemClasspath("ignore") : null;
return fullClasspath != null return fullClasspath != null
@@ -621,7 +621,7 @@ public class CommandlineJava implements Cloneable {
* *
* @since Ant 1.6 * @since Ant 1.6
*/ */
private boolean haveBootclasspath(boolean log) {
protected boolean haveBootclasspath(boolean log) {
if (bootclasspath != null if (bootclasspath != null
&& bootclasspath.toString().trim().length() > 0) { && bootclasspath.toString().trim().length() > 0) {




Loading…
Cancel
Save