diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ClasspathTestCollector.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ClasspathTestCollector.java
index 547c2faa7..e2855293b 100644
--- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ClasspathTestCollector.java
+++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ClasspathTestCollector.java
@@ -53,20 +53,18 @@
*/
package org.apache.tools.ant.taskdefs.optional.junit;
+import java.io.File;
import java.util.Enumeration;
-import java.util.Vector;
import java.util.Hashtable;
-import java.util.zip.ZipFile;
-import java.util.zip.ZipEntry;
-import java.io.File;
+import java.util.Vector;
import junit.runner.TestCollector;
-import org.apache.tools.ant.types.PatternSet;
-import org.apache.tools.ant.types.Path;
-import org.apache.tools.ant.ProjectComponent;
import org.apache.tools.ant.DirectoryScanner;
import org.apache.tools.ant.Project;
+import org.apache.tools.ant.ProjectComponent;
+import org.apache.tools.ant.types.Path;
+import org.apache.tools.ant.types.PatternSet;
/**
* A rough implementation of a test collector that will collect tests
@@ -78,7 +76,7 @@ import org.apache.tools.ant.Project;
public class ClasspathTestCollector extends ProjectComponent
implements TestCollector {
- private final static int SUFFIX_LENGTH= ".class".length();
+ private final static int SUFFIX_LENGTH = ".class".length();
private PatternSet patterns = new PatternSet();
@@ -90,21 +88,21 @@ public class ClasspathTestCollector extends ProjectComponent
// override last one in case there are duplicates.
// ie mimic classpath behavior.
String[] paths = path.list();
- for (int i = paths.length; i >= 0; i--){
+ for (int i = paths.length; i >= 0; i--) {
File f = new File(paths[i]);
Vector included = null;
- if ( f.isDirectory() ){
+ if (f.isDirectory()) {
included = gatherFromDirectory(f);
- } else if ( f.getName().endsWith(".zip")
- || f.getName().endsWith(".jar") ) {
+ } else if (f.getName().endsWith(".zip")
+ || f.getName().endsWith(".jar")) {
included = gatherFromArchive(f);
} else {
continue;
}
// add tests to the already collected one
final int includedCount = included.size();
- for (int j = 0; j < includedCount; j++){
- String testname = (String)included.elementAt(i);
+ for (int j = 0; j < includedCount; j++) {
+ String testname = (String) included.elementAt(i);
collected.put(testname, "");
}
}
@@ -112,7 +110,7 @@ public class ClasspathTestCollector extends ProjectComponent
}
- protected Vector gatherFromDirectory(File dir){
+ protected Vector gatherFromDirectory(File dir) {
Project project = getProject();
DirectoryScanner ds = new DirectoryScanner();
ds.setBasedir(dir);
@@ -123,7 +121,7 @@ public class ClasspathTestCollector extends ProjectComponent
return testClassNameFromFile(included);
}
- protected Vector gatherFromArchive(File zip){
+ protected Vector gatherFromArchive(File zip) {
ZipScanner zs = new ZipScanner();
zs.setBasedir(zip);
zs.setIncludes(patterns.getIncludePatterns(project));
@@ -133,11 +131,11 @@ public class ClasspathTestCollector extends ProjectComponent
return testClassNameFromFile(included);
}
- protected Vector testClassNameFromFile(String[] classFileNames){
+ protected Vector testClassNameFromFile(String[] classFileNames) {
Vector tests = new Vector(classFileNames.length);
- for (int i = 0; i < classFileNames.length; i++){
+ for (int i = 0; i < classFileNames.length; i++) {
String file = classFileNames[i];
- if ( isTestClass(file) ){
+ if (isTestClass(file)) {
String classname = classNameFromFile(file);
tests.addElement(classname);
}
@@ -146,30 +144,30 @@ public class ClasspathTestCollector extends ProjectComponent
}
protected boolean isTestClass(String classFileName) {
- return classFileName.endsWith(".class");
- }
-
- protected String classNameFromFile(String classFileName) {
- // convert /a/b.class to a.b
- String s= classFileName.substring(0, classFileName.length()-SUFFIX_LENGTH);
- String s2= s.replace(File.separatorChar, '.');
- if ( s2.startsWith(".") ){
- s2 = s2.substring(1);
+ return classFileName.endsWith(".class");
+ }
+
+ protected String classNameFromFile(String classFileName) {
+ // convert /a/b.class to a.b
+ String s = classFileName.substring(0, classFileName.length() - SUFFIX_LENGTH);
+ String s2 = s.replace(File.separatorChar, '.');
+ if (s2.startsWith(".")) {
+ s2 = s2.substring(1);
}
- return s2;
- }
+ return s2;
+ }
// Ant bean accessors
- public void setPath(Path path){
+ public void setPath(Path path) {
this.path = path;
}
- public PatternSet.NameEntry createInclude(){
+ public PatternSet.NameEntry createInclude() {
return patterns.createInclude();
}
- public PatternSet.NameEntry createExclude(){
+ public PatternSet.NameEntry createExclude() {
return patterns.createExclude();
}
diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/FilterElement.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/FilterElement.java
index 770013836..7074f437e 100644
--- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/FilterElement.java
+++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/FilterElement.java
@@ -105,7 +105,7 @@ public class FilterElement {
try {
Class clazz = Class.forName(classname);
if (!FilterFormatter.class.isAssignableFrom(clazz)) {
- throw new BuildException( clazz + " must be a FilterFormatter.");
+ throw new BuildException(clazz + " must be a FilterFormatter.");
}
Constructor ctor = clazz.getConstructor(new Class[]{Formatter.class});
return (Formatter) ctor.newInstance(new Object[]{f});
diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitHelper.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitHelper.java
index c68ed32fe..3d3a5fc56 100644
--- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitHelper.java
+++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitHelper.java
@@ -53,14 +53,13 @@
*/
package org.apache.tools.ant.taskdefs.optional.junit;
-import java.lang.reflect.Method;
import java.io.File;
+import java.lang.reflect.Method;
import java.net.URL;
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.apache.tools.ant.Project;
import org.apache.tools.ant.types.Path;
/**
@@ -78,12 +77,12 @@ public final class JUnitHelper {
* name(classname)
* @return an array with the elements in the order name, classname.
*/
- public static String[] parseTestString(String testname){
+ public static String[] parseTestString(String testname) {
int p1 = testname.indexOf('(');
int p2 = testname.indexOf(')', p1);
return new String[]{
testname.substring(0, p1),
- testname.substring(p1 + 1, p2) };
+ testname.substring(p1 + 1, p2)};
}
/**
@@ -110,10 +109,10 @@ public final class JUnitHelper {
public static Test getTest(Class clazz) {
try {
Object obj = clazz.newInstance();
- if (obj instanceof TestSuite){
- return (TestSuite) obj;
+ if (obj instanceof TestSuite) {
+ return (TestSuite) obj;
}
- } catch (Exception e){
+ } catch (Exception e) {
}
try {
// check if there is a suite method
@@ -125,7 +124,7 @@ public final class JUnitHelper {
// this will generate warnings if the class is no suitable Test
try {
return new TestSuite(clazz);
- } catch (Exception e){
+ } catch (Exception e) {
}
return null;
}
@@ -141,7 +140,7 @@ public final class JUnitHelper {
* @return the file or directory containing the resource or
* null if it does not know how to handle it.
*/
- public static File getResourceEntry(String resource){
+ public static File getResourceEntry(String resource) {
URL url = JUnitHelper.class.getResource(resource);
if (url != null) {
// can't find the resource...
@@ -169,7 +168,7 @@ public final class JUnitHelper {
* @param resource the resource to look for.
* @see #getResourceEntry(String)
*/
- public static void addClasspathEntry(Path path, String resource){
+ public static void addClasspathEntry(Path path, String resource) {
File f = getResourceEntry(resource);
if (f != null) {
path.createPathElement().setLocation(f);
diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
index ccf7d16ff..6fd0ffe9a 100644
--- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
+++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
@@ -58,18 +58,18 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
+import java.util.Enumeration;
import java.util.Properties;
import java.util.Vector;
-import java.util.Enumeration;
import junit.runner.TestCollector;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
-import org.apache.tools.ant.taskdefs.optional.junit.formatter.Formatter;
import org.apache.tools.ant.taskdefs.Execute;
import org.apache.tools.ant.taskdefs.LogStreamHandler;
+import org.apache.tools.ant.taskdefs.optional.junit.formatter.Formatter;
import org.apache.tools.ant.types.Commandline;
import org.apache.tools.ant.types.CommandlineJava;
import org.apache.tools.ant.types.Path;
@@ -136,8 +136,8 @@ public class JUnitTask extends Task {
// get all test classes to run...
StringBuffer buf = new StringBuffer(10240);
Enumeration classnames = collectTests();
- while ( classnames.hasMoreElements() ){
- String classname = (String)classnames.nextElement();
+ while (classnames.hasMoreElements()) {
+ String classname = (String) classnames.nextElement();
buf.append(classname).append(" ");
}
props.setProperty("classnames", buf.toString());
@@ -170,10 +170,10 @@ public class JUnitTask extends Task {
/**
* @return all collected tests specified with test elements.
*/
- protected Enumeration collectTests(){
+ protected Enumeration collectTests() {
Enumeration[] tests = new Enumeration[testCollectors.size()];
- for (int i = 0; i < testCollectors.size(); i++){
- TestCollector te = (TestCollector)testCollectors.elementAt(i);
+ for (int i = 0; i < testCollectors.size(); i++) {
+ TestCollector te = (TestCollector) testCollectors.elementAt(i);
tests[i] = te.collectTests();
}
return Enumerations.fromCompound(tests);
diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/KeepAliveOutputStream.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/KeepAliveOutputStream.java
index 185f62674..5776931eb 100644
--- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/KeepAliveOutputStream.java
+++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/KeepAliveOutputStream.java
@@ -54,8 +54,8 @@
package org.apache.tools.ant.taskdefs.optional.junit;
import java.io.FilterOutputStream;
-import java.io.OutputStream;
import java.io.IOException;
+import java.io.OutputStream;
/**
* Class that can be used to wrap System.out and System.err
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 178c5e490..9b37ade6f 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,12 +70,12 @@ public class TestElement implements TestCollector {
//@fixme, a path is needed for a test.
public Enumeration collectTests() {
- return Enumerations.fromArray( new String[]{ name } );
+ return Enumerations.fromArray(new String[]{name});
}
// Ant bean setters
- public String setName(String value){
+ public void setName(String value) {
this.name = value;
}
}
diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/WatchdogTest.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/WatchdogTest.java
index e3a19ef91..7ae0666a3 100644
--- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/WatchdogTest.java
+++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/WatchdogTest.java
@@ -69,7 +69,7 @@ import junit.framework.TestResult;
public class WatchdogTest extends TestDecorator {
/** the time out delay in msecs */
- protected long timeOut;
+ private long timeOut;
/**
* Create a new watchdog.
diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ZipScanner.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ZipScanner.java
index 8d1836b18..c7fc98067 100644
--- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ZipScanner.java
+++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ZipScanner.java
@@ -55,14 +55,12 @@ package org.apache.tools.ant.taskdefs.optional.junit;
import java.io.File;
import java.io.IOException;
-import java.util.Vector;
import java.util.Enumeration;
-import java.util.zip.ZipFile;
+import java.util.Vector;
import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
import org.apache.tools.ant.DirectoryScanner;
-import org.apache.tools.ant.FileScanner;
-import org.apache.tools.ant.BuildException;
/**
* Provide a way to scan entries in a zip file. Note that it extends
@@ -93,10 +91,10 @@ public class ZipScanner extends DirectoryScanner {
* normalize a set of paths so that it uses / otherwise matching will
* fail beautifully since archives use / to denote a path.
*/
- protected void normalize(String[] files){
- if (files != null){
- for (int i = 0; i < files.length; i++){
- files[i] = files[i].replace('\\','/');
+ protected void normalize(String[] files) {
+ if (files != null) {
+ for (int i = 0; i < files.length; i++) {
+ files[i] = files[i].replace('\\', '/');
}
}
}
@@ -113,11 +111,11 @@ public class ZipScanner extends DirectoryScanner {
}
if (!basedir.exists()) {
throw new IllegalStateException("zipfile " + basedir
- + " does not exist");
+ + " does not exist");
}
if (basedir.isDirectory()) {
throw new IllegalStateException("zipfile " + basedir
- + " is not a file");
+ + " is not a file");
}
if (includes == null) {
@@ -129,12 +127,12 @@ public class ZipScanner extends DirectoryScanner {
excludes = new String[0];
}
- filesIncluded = new Vector();
+ filesIncluded = new Vector();
filesNotIncluded = new Vector();
- filesExcluded = new Vector();
- dirsIncluded = new Vector();
- dirsNotIncluded = new Vector();
- dirsExcluded = new Vector();
+ filesExcluded = new Vector();
+ dirsIncluded = new Vector();
+ dirsNotIncluded = new Vector();
+ dirsExcluded = new Vector();
if (isIncluded("")) {
if (!isExcluded("")) {
@@ -152,13 +150,13 @@ public class ZipScanner extends DirectoryScanner {
ZipFile zip = null;
try {
zip = new ZipFile(file);
- } catch (IOException e){
+ } catch (IOException e) {
throw new IllegalStateException(e.getMessage());
}
Enumeration entries = zip.entries();
- while ( entries.hasMoreElements() ) {
- ZipEntry entry = (ZipEntry)entries.nextElement();
+ while (entries.hasMoreElements()) {
+ ZipEntry entry = (ZipEntry) entries.nextElement();
String name = entry.getName();
// @fixme do we need to strip out entries that starts
// with . or ./ ?
diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/BaseFormatter.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/BaseFormatter.java
index 8498a9bff..2b1b4c889 100644
--- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/BaseFormatter.java
+++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/BaseFormatter.java
@@ -67,23 +67,22 @@ import java.util.Properties;
*/
public abstract class BaseFormatter implements Formatter {
- protected OutputStream out;
+ /** writer to output the data to */
+ private PrintWriter writer;
- protected PrintWriter writer;
+ /** number of errors */
+ private int errorCount;
- protected int errorCount;
+ /** number of failures */
+ private int failureCount;
- protected int failureCount;
-
- protected int runCount;
-
- protected Properties props;
+ /** number of runs (success + failure + error) */
+ private int runCount;
public void setOutput(OutputStream value) {
- out = value;
try {
- writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(out, "UTF8")), true);
- } catch (IOException e){
+ writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(value, "UTF8")), true);
+ } catch (IOException e) {
// should not happen
throw new IllegalStateException(e.getMessage());
}
@@ -139,22 +138,33 @@ public abstract class BaseFormatter implements Formatter {
close();
}
- /** helper method to flush and close all streams */
+ /**
+ * @return the writer used to print data.
+ */
+ protected final PrintWriter getWriter() {
+ return writer;
+ }
+
+ /** @return the number of errors */
+ protected final int getErrorCount() {
+ return errorCount;
+ }
+
+ /** @return the number of failures */
+ protected final int getFailureCount() {
+ return failureCount;
+ }
+
+ /** @return the number of runs */
+ protected final int getRunCount() {
+ return runCount;
+ }
+
+ /** helper method to flush and close the stream */
protected void close() {
- try {
- if (writer != null) {
- writer.flush();
- writer = null;
- }
- } finally {
- // make sure we're not closing System.out or System.err...
- if (out != null && out != System.err && out != System.out) {
- try {
- out.close();
- out = null;
- } catch (IOException e) {
- }
- }
+ if (writer != null) {
+ writer.flush();
+ writer.close();
}
}
}
diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/BriefFormatter.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/BriefFormatter.java
index 054c6e6f9..a7e69ae49 100644
--- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/BriefFormatter.java
+++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/BriefFormatter.java
@@ -53,6 +53,8 @@
*/
package org.apache.tools.ant.taskdefs.optional.junit.formatter;
+import java.io.PrintWriter;
+
/**
* Display additional messages from a SummaryFormatter
@@ -63,6 +65,7 @@ package org.apache.tools.ant.taskdefs.optional.junit.formatter;
public class BriefFormatter extends SummaryFormatter {
public void onTestFailed(int status, String testname, String trace) {
+ PrintWriter writer = getWriter();
writer.print("TestCase: ");
writer.print(testname);
if (status == STATUS_ERROR) {
diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/FilterFormatter.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/FilterFormatter.java
index eb4a6913a..ce1ecb331 100644
--- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/FilterFormatter.java
+++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/FilterFormatter.java
@@ -65,7 +65,7 @@ public abstract class FilterFormatter implements Formatter {
protected Formatter formatter;
- protected FilterFormatter(Formatter value){
+ protected FilterFormatter(Formatter value) {
formatter = value;
}
diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/FilterStackFormatter.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/FilterStackFormatter.java
index 66ee79f31..729d6dbe2 100644
--- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/FilterStackFormatter.java
+++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/FilterStackFormatter.java
@@ -53,10 +53,6 @@
*/
package org.apache.tools.ant.taskdefs.optional.junit.formatter;
-import java.io.StringWriter;
-import java.io.PrintWriter;
-import java.io.StringReader;
-import java.io.BufferedReader;
import java.util.StringTokenizer;
import org.apache.tools.ant.util.StringUtils;
@@ -83,32 +79,32 @@ import org.apache.tools.ant.util.StringUtils;
public class FilterStackFormatter extends FilterFormatter {
/** the set of matches to look for in a stack trace */
- private final static String[] DEFAULT_TRACE_FILTERS = new String[] {
- "junit.framework.TestCase",
- "junit.framework.TestResult",
- "junit.framework.TestSuite",
- "junit.framework.Assert.", // don't filter AssertionFailure
- "junit.swingui.TestRunner",
- "junit.awtui.TestRunner",
- "junit.textui.TestRunner",
- "java.lang.reflect.Method.invoke(",
- "org.apache.tools.ant."
- };
+ private final static String[] DEFAULT_TRACE_FILTERS = new String[]{
+ "junit.framework.TestCase",
+ "junit.framework.TestResult",
+ "junit.framework.TestSuite",
+ "junit.framework.Assert.", // don't filter AssertionFailure
+ "junit.swingui.TestRunner",
+ "junit.awtui.TestRunner",
+ "junit.textui.TestRunner",
+ "java.lang.reflect.Method.invoke(",
+ "org.apache.tools.ant."
+ };
/**
* Creates a new FilterStackFormatter
* @param formatter the formatter to be filtered.
*/
- public FilterStackFormatter(Formatter formatter){
+ public FilterStackFormatter(Formatter formatter) {
super(formatter);
}
public void onTestFailed(int status, String testname, String trace) {
- StringTokenizer st = new StringTokenizer(trace,"\r\n");
+ StringTokenizer st = new StringTokenizer(trace, "\r\n");
StringBuffer buf = new StringBuffer(trace.length());
- while ( st.hasMoreTokens() ){
+ while (st.hasMoreTokens()) {
String line = st.nextToken();
- if ( accept(line) ){
+ if (accept(line)) {
buf.append(line).append(StringUtils.LINE_SEP);
}
}
@@ -120,7 +116,7 @@ public class FilterStackFormatter extends FilterFormatter {
* @param the line to be check for acceptance.
* @return true if the line is accepted, false if not.
*/
- protected boolean accept(String line){
+ protected boolean accept(String line) {
for (int i = 0; i < DEFAULT_TRACE_FILTERS.length; i++) {
if (line.indexOf(DEFAULT_TRACE_FILTERS[i]) > 0) {
return false;
diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/Formatter.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/Formatter.java
index 1a62dbfe1..5a86a7eaa 100644
--- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/Formatter.java
+++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/Formatter.java
@@ -65,16 +65,16 @@ public interface Formatter extends TestRunListener {
/**
* Sets the stream the formatter is supposed to write its results to.
*/
- public void setOutput( OutputStream out );
+ public void setOutput(OutputStream out);
/**
* This is what the test has written to System.out
*/
- public void setSystemOutput( String out );
+ public void setSystemOutput(String out);
/**
* This is what the test has written to System.err
*/
- public void setSystemError( String err );
+ public void setSystemError(String err);
}
diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/SummaryFormatter.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/SummaryFormatter.java
index 3bf26e8e6..872013f0f 100644
--- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/SummaryFormatter.java
+++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/SummaryFormatter.java
@@ -53,8 +53,8 @@
*/
package org.apache.tools.ant.taskdefs.optional.junit.formatter;
+import java.io.PrintWriter;
import java.text.MessageFormat;
-import java.util.ResourceBundle;
/**
* Display a summary message at the end of a testsuite stating
@@ -64,19 +64,20 @@ import java.util.ResourceBundle;
*/
public class SummaryFormatter extends BaseFormatter {
- protected MessageFormat mf = new MessageFormat(
+ protected final MessageFormat mf = new MessageFormat(
"Tests run: {0, number, integer}" +
", Failures: {1, number, integer}" +
", Errors: {2, number, integer}" +
", Time elapsed: {3, number, integer} sec");
protected void finished(long elapsedtime) {
+ PrintWriter writer = getWriter();
writer.print("Testsuite: ");
writer.println();
String line = mf.format(new Object[]{
- new Integer(runCount),
- new Integer(failureCount),
- new Integer(errorCount),
+ new Integer(getRunCount()),
+ new Integer(getFailureCount()),
+ new Integer(getErrorCount()),
new Long(elapsedtime / 1000)
});
writer.print(line);
diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/XMLFormatter.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/XMLFormatter.java
index 4d508d7fa..992f0e6be 100644
--- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/XMLFormatter.java
+++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/formatter/XMLFormatter.java
@@ -61,8 +61,6 @@ import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Text;
-import org.apache.tools.ant.taskdefs.optional.junit.TestRunListener;
-
/**
*
* @author Stephane Bailliez
@@ -148,12 +146,12 @@ public class XMLFormatter extends BaseFormatter {
public void onTestEnded(String testname) {
Element currentTest = (Element) testElements.get(testname);
// with a TestSetup, startTest and endTest are not called.
- if (currentTest == null){
+ if (currentTest == null) {
onTestStarted(testname);
currentTest = (Element) testElements.get(testname);
}
Long l = (Long) testStarts.get(testname);
- float time = ((System.currentTimeMillis()-l.longValue()) / 1000.0f);
+ float time = ((System.currentTimeMillis() - l.longValue()) / 1000.0f);
currentTest.setAttribute(ATTR_TIME, Float.toString(time));
super.onTestEnded(testname);
// remove the test objects
@@ -201,23 +199,23 @@ public class XMLFormatter extends BaseFormatter {
private static DocumentBuilder getDocumentBuilder() {
try {
return DocumentBuilderFactory.newInstance().newDocumentBuilder();
- } catch(Exception exc) {
+ } catch (Exception exc) {
throw new ExceptionInInitializerError(exc);
}
}
- protected static String[] parseFirstLine(String trace){
+ protected static String[] parseFirstLine(String trace) {
int pos = trace.indexOf('\n');
- if (pos == -1){
- return new String[]{ trace, ""};
+ if (pos == -1) {
+ return new String[]{trace, ""};
}
String line = trace.substring(0, pos);
pos = line.indexOf(':');
- if (pos != -1){
+ if (pos != -1) {
String classname = line.substring(0, pos).trim();
String message = line.substring(pos + 1).trim();
- return new String[]{ classname, message };
+ return new String[]{classname, message};
}
- return new String[]{ trace, ""};
+ return new String[]{trace, ""};
}
}
diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/MessageReader.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/MessageReader.java
index 1f5991894..167a90cd9 100644
--- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/MessageReader.java
+++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/MessageReader.java
@@ -57,10 +57,8 @@ import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.io.ObjectInputStream;
-import java.io.ByteArrayInputStream;
-import java.util.Vector;
import java.util.Properties;
+import java.util.Vector;
import org.apache.tools.ant.taskdefs.optional.junit.TestRunListener;
@@ -128,7 +126,7 @@ public class MessageReader {
* appropriate message to the listeners.
*/
protected void processMessage(String message) {
- if (message == null){
+ if (message == null) {
return;
}
@@ -173,17 +171,16 @@ public class MessageReader {
notifyTestSuiteStopped(elapsedTime);
return;
}
- if (message.startsWith(MessageIds.PROPS_START)){
+ if (message.startsWith(MessageIds.PROPS_START)) {
try {
byte[] bytes = arg.substring(0, arg.indexOf(MessageIds.PROPS_END)).getBytes();
bytes = Base64.decode(bytes);
- ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(bytes));
- sysprops = (Properties)ois.readObject();
- } catch (Exception e){
+ sysprops = (Properties) SocketUtil.deserialize(bytes);
+ notifyTestSystemProperties(sysprops);
+ } catch (Exception e) {
// ignore now
e.printStackTrace();
}
- notifyTestSystemProperties(sysprops);
}
}
diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/MessageWriter.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/MessageWriter.java
index ee75bf985..2f1a77c46 100644
--- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/MessageWriter.java
+++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/MessageWriter.java
@@ -55,9 +55,6 @@ package org.apache.tools.ant.taskdefs.optional.junit.remote;
import java.io.OutputStream;
import java.io.PrintWriter;
-import java.io.ObjectOutputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
import org.apache.tools.ant.taskdefs.optional.junit.TestRunListener;
@@ -80,12 +77,12 @@ public class MessageWriter implements MessageIds {
this.pw = new PrintWriter(out, true);
}
- protected void finalize(){
+ protected void finalize() {
close();
}
public void close() {
- if (pw != null){
+ if (pw != null) {
pw.close();
pw = null;
}
@@ -140,13 +137,13 @@ public class MessageWriter implements MessageIds {
public void notifySystemProperties() {
try {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- ObjectOutputStream oos = new ObjectOutputStream(out);
- oos.writeObject(System.getProperties());
- oos.close();
- String msg = new String(Base64.encode(out.toByteArray()));
- sendMessage(MessageIds.PROPS_START + msg + MessageIds.PROPS_END);
- } catch (IOException e){
+ StringBuffer msg = new StringBuffer(512);
+ msg.append(MessageIds.PROPS_START);
+ byte[] data = SocketUtil.serialize(System.getProperties());
+ msg.append(Base64.encode(data));
+ msg.append(MessageIds.PROPS_END);
+ sendMessage(msg.toString());
+ } catch (Exception e) {
// ignore
e.printStackTrace();
}
diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/Server.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/Server.java
index 3307161fc..12a89a44d 100644
--- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/Server.java
+++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/Server.java
@@ -54,7 +54,6 @@
package org.apache.tools.ant.taskdefs.optional.junit.remote;
import java.io.IOException;
-import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
@@ -134,11 +133,11 @@ public class Server {
/** shutdown the server and any running client */
public void shutdown() {
- if (writer != null){
+ if (writer != null) {
writer.close();
writer = null;
}
- if (reader != null){
+ if (reader != null) {
//@fixme what about the stream ?
reader = null;
}
@@ -152,11 +151,11 @@ public class Server {
} catch (IOException e) {
}
try {
- if (server != null){
+ if (server != null) {
server.close();
server = null;
}
- } catch (IOException e){
+ } catch (IOException e) {
}
}
diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/SocketUtil.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/SocketUtil.java
new file mode 100644
index 000000000..c98e33a5d
--- /dev/null
+++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/SocketUtil.java
@@ -0,0 +1,95 @@
+/*
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2002 The Apache Software Foundation. All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The end-user documentation included with the redistribution, if
+ * any, must include the following acknowlegement:
+ * "This product includes software developed by the
+ * Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowlegement may appear in the software itself,
+ * if and wherever such third-party acknowlegements normally appear.
+ *
+ * 4. The names "The Jakarta Project", "Ant", and "Apache Software
+ * Foundation" must not be used to endorse or promote products derived
+ * from this software without prior written permission. For written
+ * permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache"
+ * nor may "Apache" appear in their names without prior written
+ * permission of the Apache Group.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * .
+ */
+package org.apache.tools.ant.taskdefs.optional.junit.remote;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+/**
+ * A set of helper methods related to sockets.
+ *
+ * @author Stephane Bailliez
+ */
+public class SocketUtil {
+
+
+ /**
+ * Helper method to deserialize an object
+ * @param bytes the binary data representing the serialized object.
+ * @return the deserialized object.
+ * @throws Exception a generic exception if an error occurs when
+ * deserializing the object.
+ */
+ public static Object deserialize(byte[] bytes) throws Exception {
+ ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(bytes));
+ return ois.readObject();
+ }
+
+ /**
+ * Helper method to serialize an object
+ * @param o the object to serialize.
+ * @return the binary data representing the serialized object.
+ * @throws Exception a generic exception if an error occurs when
+ * serializing the object.
+ */
+ public static byte[] serialize(Object o) throws Exception {
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(out);
+ oos.writeObject(o);
+ oos.close();
+ return out.toByteArray();
+ }
+}
diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/TestRunner.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/TestRunner.java
index ac33a12b8..b36f73117 100644
--- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/TestRunner.java
+++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/TestRunner.java
@@ -54,13 +54,13 @@
package org.apache.tools.ant.taskdefs.optional.junit.remote;
import java.io.BufferedReader;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
-import java.io.FileInputStream;
import java.net.Socket;
-import java.util.Vector;
import java.util.Properties;
import java.util.StringTokenizer;
+import java.util.Vector;
import junit.framework.AssertionFailedError;
import junit.framework.Test;
@@ -69,9 +69,9 @@ import junit.framework.TestListener;
import junit.framework.TestResult;
import junit.framework.TestSuite;
-import org.apache.tools.ant.util.StringUtils;
import org.apache.tools.ant.taskdefs.optional.junit.JUnitHelper;
import org.apache.tools.ant.taskdefs.optional.junit.TestRunListener;
+import org.apache.tools.ant.util.StringUtils;
/**
* TestRunner for running tests and send results to a remote server.
@@ -110,7 +110,7 @@ public class TestRunner implements TestListener {
private BufferedReader reader;
/** bean constructor */
- public TestRunner(){
+ public TestRunner() {
}
/**
@@ -216,28 +216,29 @@ public class TestRunner implements TestListener {
}
}
}
+
/**
* Initialize the TestRunner from properties.
* @param the properties containing configuration data.
* @see #init(String[])
*/
- protected void init(Properties props){
- if ( props.getProperty("debug") != null ){
+ protected void init(Properties props) {
+ if (props.getProperty("debug") != null) {
setDebug(true);
}
String port = props.getProperty("port");
- if (port != null){
+ if (port != null) {
setPort(Integer.parseInt(port));
}
String host = props.getProperty("host");
- if (host != null){
+ if (host != null) {
setHost(host);
}
String classnames = props.getProperty("classnames");
- if (classnames != null){
+ if (classnames != null) {
StringTokenizer st = new StringTokenizer(classnames);
- while (st.hasMoreTokens()){
- addTestClassName( st.nextToken() );
+ while (st.hasMoreTokens()) {
+ addTestClassName(st.nextToken());
}
}
}
@@ -272,10 +273,10 @@ public class TestRunner implements TestListener {
String classname = (String) testClassNames.elementAt(i);
try {
Test test = JUnitHelper.getTest(null, classname);
- if (test != null){
+ if (test != null) {
suites.addElement(test);
}
- } catch (Exception e){
+ } catch (Exception e) {
// notify log error instead ?
log("Could not get Test instance from " + classname);
log(e);
@@ -304,7 +305,7 @@ public class TestRunner implements TestListener {
long startTime = System.currentTimeMillis();
for (int i = 0; i < suites.length; i++) {
- if (suites[i] instanceof TestCase){
+ if (suites[i] instanceof TestCase) {
suites[i] = new TestSuite(suites[i].getClass().getName());
}
suites[i].run(testResult);
@@ -413,14 +414,14 @@ public class TestRunner implements TestListener {
writer.notifyTestEnded(testName);
}
- public void log(String msg){
- if (debug){
+ public void log(String msg) {
+ if (debug) {
System.out.println(msg);
}
}
- public void log(Throwable t){
- if (debug){
+ public void log(Throwable t) {
+ if (debug) {
t.printStackTrace();
}
}