Browse Source

Fix early initialization problems.

I was using elements before they were configured.


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270948 13f79535-47bb-0310-9956-ffa450edef68
master
Stephane Bailliez 23 years ago
parent
commit
602fbeb19d
4 changed files with 26 additions and 12 deletions
  1. +2
    -2
      proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ClientElement.java
  2. +17
    -4
      proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/FormatterElement.java
  3. +6
    -5
      proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ServerElement.java
  4. +1
    -1
      proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/TestElement.java

+ 2
- 2
proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ClientElement.java View File

@@ -127,7 +127,7 @@ public final class ClientElement extends ProjectComponent {
// must appended to classpath to avoid conflicts. // must appended to classpath to avoid conflicts.
JUnitHelper.addClasspathEntry(createClasspath(), "/junit/framework/TestCase.class"); JUnitHelper.addClasspathEntry(createClasspath(), "/junit/framework/TestCase.class");
JUnitHelper.addClasspathEntry(createClasspath(), "/org/apache/tools/ant/Task.class"); JUnitHelper.addClasspathEntry(createClasspath(), "/org/apache/tools/ant/Task.class");
JUnitHelper.addClasspathEntry(createClasspath(), "/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.class");
JUnitHelper.addClasspathEntry(createClasspath(), "/org/apache/tools/ant/taskdefs/optional/junit/remote/TestRunner.class");
} }


protected void doExecute() throws BuildException { protected void doExecute() throws BuildException {
@@ -161,7 +161,7 @@ public final class ClientElement extends ProjectComponent {
TestCollector te = (TestCollector) testCollectors.elementAt(i); TestCollector te = (TestCollector) testCollectors.elementAt(i);
tests[i] = te.collectTests(); tests[i] = te.collectTests();
} }
return Enumerations.fromCompound(tests);
return new CompoundEnumeration(tests);
} }


/** /**


+ 17
- 4
proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/FormatterElement.java View File

@@ -54,6 +54,7 @@
package org.apache.tools.ant.taskdefs.optional.junit; package org.apache.tools.ant.taskdefs.optional.junit;


import java.io.OutputStream; import java.io.OutputStream;
import java.io.File;
import java.util.Properties; import java.util.Properties;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import java.util.Vector; import java.util.Vector;
@@ -62,6 +63,7 @@ import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.taskdefs.optional.junit.formatter.BriefFormatter; import org.apache.tools.ant.taskdefs.optional.junit.formatter.BriefFormatter;
import org.apache.tools.ant.taskdefs.optional.junit.formatter.Formatter; import org.apache.tools.ant.taskdefs.optional.junit.formatter.Formatter;
import org.apache.tools.ant.taskdefs.optional.junit.formatter.XMLFormatter; import org.apache.tools.ant.taskdefs.optional.junit.formatter.XMLFormatter;
import org.apache.tools.ant.taskdefs.optional.junit.formatter.PlainFormatter;
import org.apache.tools.ant.types.EnumeratedAttribute; import org.apache.tools.ant.types.EnumeratedAttribute;


/** /**
@@ -92,7 +94,7 @@ public class FormatterElement {
private Vector filters = new Vector(); private Vector filters = new Vector();


/** the parameters set for configuration purposes */ /** the parameters set for configuration purposes */
private Properties params = new Properties();
private Vector params = new Vector();


/** /**
* set an existing type of formatter. * set an existing type of formatter.
@@ -139,7 +141,7 @@ public class FormatterElement {
* Add a parameter that can be used for configuration. * Add a parameter that can be used for configuration.
*/ */
public void addParam(Parameter param) { public void addParam(Parameter param) {
params.setProperty(param.getName(), param.getValue());
params.addElement(param);
} }


/** /**
@@ -174,9 +176,16 @@ public class FormatterElement {
FilterElement fe = (FilterElement) filters.elementAt(i); FilterElement fe = (FilterElement) filters.elementAt(i);
f = fe.createFilterFormatter(f); f = fe.createFilterFormatter(f);
} }

// create properties from parameters
Properties props = new Properties();
for (int i = 0; i < params.size(); i++){
Parameter param = (Parameter)params.elementAt(i);
props.put(param.getName(), param.getValue());
}
// it is assumed here that the filters are chaining til the // it is assumed here that the filters are chaining til the
// wrapped formatter. // wrapped formatter.
f.init(params);
f.init(props);
return f; return f;
} }


@@ -186,7 +195,7 @@ public class FormatterElement {
*/ */
public final static class TypeAttribute extends EnumeratedAttribute { public final static class TypeAttribute extends EnumeratedAttribute {
private final static String[] VALUES = {"plain", "xml", "brief"}; private final static String[] VALUES = {"plain", "xml", "brief"};
private final static String[] CLASSNAMES = {"xxx", XMLFormatter.class.getName(), BriefFormatter.class.getName()};
private final static String[] CLASSNAMES = {PlainFormatter.class.getName(), XMLFormatter.class.getName(), BriefFormatter.class.getName()};


public String[] getValues() { public String[] getValues() {
return VALUES; return VALUES;
@@ -206,6 +215,10 @@ public class FormatterElement {
this.name = name; this.name = name;
} }


public void setLocation(File file) {
setValue(file.getAbsolutePath());
}

public void setValue(String value) { public void setValue(String value) {
this.value = value; this.value = value;
} }


+ 6
- 5
proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ServerElement.java View File

@@ -76,7 +76,7 @@ import org.apache.tools.ant.taskdefs.optional.junit.remote.Server;
public final class ServerElement extends ProjectComponent { public final class ServerElement extends ProjectComponent {


/** formatters that write the tests results */ /** formatters that write the tests results */
private Vector formatters = new Vector();
private Vector formatterElements = new Vector();


/** port to run the server on. Default to 6666 */ /** port to run the server on. Default to 6666 */
private int port = 6666; private int port = 6666;
@@ -99,9 +99,11 @@ public final class ServerElement extends ProjectComponent {
public void execute() throws BuildException { public void execute() throws BuildException {
// configure the server... // configure the server...
Server server = new Server(port); Server server = new Server(port);
Enumeration listeners = formatters.elements();
Enumeration listeners = formatterElements.elements();
while (listeners.hasMoreElements()) { while (listeners.hasMoreElements()) {
server.addListener((TestRunListener) listeners.nextElement());
FormatterElement fe = (FormatterElement)listeners.nextElement();
Formatter formatter = fe.createFormatter();
server.addListener( formatter );
} }
// and run it. It will stop once a client has finished. // and run it. It will stop once a client has finished.
server.start(); server.start();
@@ -125,7 +127,6 @@ public final class ServerElement extends ProjectComponent {


/** add a new formatter element */ /** add a new formatter element */
public void addFormatter(FormatterElement fe) { public void addFormatter(FormatterElement fe) {
Formatter f = fe.createFormatter();
formatters.addElement(f);
formatterElements.addElement(fe);
} }
} }

+ 1
- 1
proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/TestElement.java View File

@@ -70,7 +70,7 @@ public class TestElement implements TestCollector {
//@fixme, a path is needed for a test. //@fixme, a path is needed for a test.


public Enumeration collectTests() { public Enumeration collectTests() {
return Enumerations.fromArray(new String[]{name});
return new ArrayEnumeration(new String[]{name});
} }


// Ant bean setters // Ant bean setters


Loading…
Cancel
Save