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;
}
}