From 602fbeb19d1897a7873aa131bb3218381d6a2407 Mon Sep 17 00:00:00 2001 From: Stephane Bailliez Date: Sun, 27 Jan 2002 14:06:39 +0000 Subject: [PATCH] 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 --- .../optional/junit/ClientElement.java | 4 ++-- .../optional/junit/FormatterElement.java | 21 +++++++++++++++---- .../optional/junit/ServerElement.java | 11 +++++----- .../taskdefs/optional/junit/TestElement.java | 2 +- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ClientElement.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ClientElement.java index ea9853c2d..da4bd1cc2 100644 --- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ClientElement.java +++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ClientElement.java @@ -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); } /** diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/FormatterElement.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/FormatterElement.java index 09ca0fb35..80a5798a5 100644 --- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/FormatterElement.java +++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/FormatterElement.java @@ -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; } diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ServerElement.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ServerElement.java index 11478e31e..3e83ba41a 100644 --- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ServerElement.java +++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ServerElement.java @@ -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); } } diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/TestElement.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/TestElement.java index 9b37ade6f..252a8ace8 100644 --- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/TestElement.java +++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/TestElement.java @@ -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