From d1895cd5aac83ffcc3961f51359c6fe473384429 Mon Sep 17 00:00:00 2001
From: Stefan Bodewig
Date: Fri, 2 Feb 2001 17:04:01 +0000
Subject: [PATCH] New task and some improvements of
DOMElementWriter
Submitted by: Stephane Bailliez
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@268562 13f79535-47bb-0310-9956-ffa450edef68
---
WHATSNEW | 2 +-
build.xml | 12 +
.../tools/ant/taskdefs/defaults.properties | 1 +
.../optional/junit/AggregateTransformer.java | 528 ++++++++++++++++++
.../optional/junit/XMLResultAggregator.java | 310 ++++++++++
.../taskdefs/optional/junit/html/index.html | 21 +
.../optional/junit/html/stylesheet.css | 35 ++
.../optional/junit/xsl/all-classes.xsl | 40 ++
.../optional/junit/xsl/all-packages.xsl | 42 ++
.../optional/junit/xsl/class-details.xsl | 37 ++
.../optional/junit/xsl/classes-list.xsl | 46 ++
.../optional/junit/xsl/overview-packages.xsl | 90 +++
.../optional/junit/xsl/overview-summary.xsl | 184 ++++++
.../optional/junit/xsl/package-summary.xsl | 73 +++
.../taskdefs/optional/junit/xsl/toolkit.xsl | 204 +++++++
.../tools/ant/util/DOMElementWriter.java | 30 +-
16 files changed, 1650 insertions(+), 5 deletions(-)
create mode 100644 src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java
create mode 100644 src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLResultAggregator.java
create mode 100644 src/main/org/apache/tools/ant/taskdefs/optional/junit/html/index.html
create mode 100644 src/main/org/apache/tools/ant/taskdefs/optional/junit/html/stylesheet.css
create mode 100644 src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/all-classes.xsl
create mode 100644 src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/all-packages.xsl
create mode 100644 src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/class-details.xsl
create mode 100644 src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/classes-list.xsl
create mode 100644 src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/overview-packages.xsl
create mode 100644 src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/overview-summary.xsl
create mode 100644 src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/package-summary.xsl
create mode 100644 src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/toolkit.xsl
diff --git a/WHATSNEW b/WHATSNEW
index d6d89defc..6ffa91b9a 100644
--- a/WHATSNEW
+++ b/WHATSNEW
@@ -22,7 +22,7 @@ Other changes:
* A GUI Frontend: Antidote. This is currently in development.
* New tasks: stylebook, propertyfile, depend, antlr, telnet, csc,
- ilasm, apply, javah, several clearcase tasks
+ ilasm, apply, javah, several clearcase tasks, junitreport
* Added output attribute to .
diff --git a/build.xml b/build.xml
index 89ac6c475..61385c154 100644
--- a/build.xml
+++ b/build.xml
@@ -193,6 +193,10 @@
+
+
@@ -212,6 +216,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Classes
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /
+ -details.html
+
+
+ |
+
+
+
+
\ No newline at end of file
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/all-packages.xsl b/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/all-packages.xsl
new file mode 100644
index 000000000..983d53ab7
--- /dev/null
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/all-packages.xsl
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Packages
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
\ No newline at end of file
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/class-details.xsl b/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/class-details.xsl
new file mode 100644
index 000000000..520ddae85
--- /dev/null
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/class-details.xsl
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ stylesheet.css
+
+
+
+
+ yes
+
+
+
+ Class .
+
+
TestCase
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/classes-list.xsl b/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/classes-list.xsl
new file mode 100644
index 000000000..49b0280b5
--- /dev/null
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/classes-list.xsl
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ stylesheet.css
+
+
+
+
+
+
+ Classes
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
\ No newline at end of file
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/overview-packages.xsl b/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/overview-packages.xsl
new file mode 100644
index 000000000..6b08620a0
--- /dev/null
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/overview-packages.xsl
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ yes
+
+
+
+
+
+
+ Packages
+
+
+
+
+
+
+ Classes
+
+
+
+
+
+
+
+
+
+
+ Error |
+
+
+
+
+
+
+
+
+
+
+ Error |
+
+
+
+
+
+
+
+
+
+ Error |
+ Error |
+ Error |
+ Error |
+
+
+
\ No newline at end of file
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/overview-summary.xsl b/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/overview-summary.xsl
new file mode 100644
index 000000000..c9e80a329
--- /dev/null
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/overview-summary.xsl
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Packages
+ Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Error
+ Failure
+
+
+ |
+ |
+ |
+ |
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Package
+
+
+ Back to top
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Error
+ Failure
+
+
+
+
+ |
+ |
+ |
+ |
+ |
+
+
+
+
+
+
+
+
+ TestCase
+
+
+ Back to top
+
+
+
+
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/package-summary.xsl b/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/package-summary.xsl
new file mode 100644
index 000000000..9cef8f621
--- /dev/null
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/package-summary.xsl
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ stylesheet.css
+
+
+ open('classes-list.html','classListFrame')
+
+ yes
+
+
+
+ Package
+
+
+
+ Classes
+
+
+
+
+
+
+
+
+
+
+
+
+ Error
+ Failure
+
+
+
+
+ |
+ |
+ |
+ |
+ |
+
+
+
+
\ No newline at end of file
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/toolkit.xsl b/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/toolkit.xsl
new file mode 100644
index 000000000..a52103a3a
--- /dev/null
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/xsl/toolkit.xsl
@@ -0,0 +1,204 @@
+
+
+
+
+
+
+
+
+
+ ../
+
+
+
+
+
+ ../
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ no
+
+ Unit Tests Results
+
+
+
+
+ |
+ Designed for use with JUnit and Ant. |
+
+
+
+
+
+
+
+ Tests |
+ Failures |
+ Errors |
+ Success Rate |
+ Time(s) |
+
+
+
+
+
+
+ Name |
+ Tests |
+ Errors |
+ Failures |
+ Time(s) |
+
+
+
+
+
+
+ Name |
+ Status |
+ Type |
+ Time(s) |
+
+
+
+
+
+ Summary
+
+
+
+
+
+
+
+
+
+
+ Error
+ TableRowColor
+
+
+ |
+ |
+ |
+ |
+ |
+
+
+ Note: failures are anticipated and checked for with assertions while errors are unanticipated.
+
+
+
+
+
+
+ Error
+ TableRowColor
+
+
+ |
+
+
+ Failure |
+ |
+
+
+ Error |
+ |
+
+
+ Success |
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ N/A
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/org/apache/tools/ant/util/DOMElementWriter.java b/src/main/org/apache/tools/ant/util/DOMElementWriter.java
index 38ece6a94..cc44790ab 100644
--- a/src/main/org/apache/tools/ant/util/DOMElementWriter.java
+++ b/src/main/org/apache/tools/ant/util/DOMElementWriter.java
@@ -67,6 +67,7 @@ import org.w3c.dom.*;
*
* @author The original author of XmlLogger
* @author Stefan Bodewig
+ * @author Stephane Bailliez
*/
public class DOMElementWriter {
@@ -119,18 +120,39 @@ public class DOMElementWriter {
for (int i = 0; i < children.getLength(); i++) {
Node child = children.item(i);
- if (child.getNodeType() == Node.ELEMENT_NODE) {
+ switch (child.getNodeType()) {
+
+ case Node.ELEMENT_NODE:
if (!hasChildren) {
out.write(lSep);
hasChildren = true;
}
write((Element)child, out, indent + 1, indentWith);
- }
-
- if (child.getNodeType() == Node.TEXT_NODE) {
+ break;
+
+ case Node.TEXT_NODE:
+ case Node.CDATA_SECTION_NODE:
out.write("");
+ break;
+
+ case Node.ENTITY_REFERENCE_NODE:
+ out.write('&');
+ out.write(child.getNodeName());
+ out.write(';');
+ break;
+
+ case Node.PROCESSING_INSTRUCTION_NODE:
+ out.write("");
+ out.write(child.getNodeName());
+ String data = child.getNodeValue();
+ if ( data != null && data.length() > 0 ) {
+ out.write(' ');
+ out.write(data);
+ }
+ out.write("?>");
+ break;
}
}