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.
JUnitHelper.addClasspathEntry(createClasspath(), "/junit/framework/TestCase.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 {
@@ -161,7 +161,7 @@ public final class ClientElement extends ProjectComponent {
TestCollector te = (TestCollector) testCollectors.elementAt(i);
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;

import java.io.OutputStream;
import java.io.File;
import java.util.Properties;
import java.util.StringTokenizer;
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.Formatter;
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;

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

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

/**
* set an existing type of formatter.
@@ -139,7 +141,7 @@ public class FormatterElement {
* Add a parameter that can be used for configuration.
*/
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);
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
// wrapped formatter.
f.init(params);
f.init(props);
return f;
}

@@ -186,7 +195,7 @@ public class FormatterElement {
*/
public final static class TypeAttribute extends EnumeratedAttribute {
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() {
return VALUES;
@@ -206,6 +215,10 @@ public class FormatterElement {
this.name = name;
}

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

public void setValue(String 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 {

/** 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 */
private int port = 6666;
@@ -99,9 +99,11 @@ public final class ServerElement extends ProjectComponent {
public void execute() throws BuildException {
// configure the server...
Server server = new Server(port);
Enumeration listeners = formatters.elements();
Enumeration listeners = formatterElements.elements();
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.
server.start();
@@ -125,7 +127,6 @@ public final class ServerElement extends ProjectComponent {

/** add a new formatter element */
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.

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

// Ant bean setters


Loading…
Cancel
Save