@@ -22,12 +22,10 @@ import java.text.SimpleDateFormat;
import javax.xml.parsers.DocumentBuilder;
import org.apache.tools.ant.util.DOMElementWriter;
import org.apache.tools.ant.util.JAXP Utils;
import org.apache.tools.ant.util.DOM Utils;
import org.w3c.dom.CDATASection;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Text;
/**
* Class used to generate an XML changelog.
@@ -51,7 +49,7 @@ public class SvnChangeLogWriter {
public void printChangeLog(final PrintWriter output,
final SvnEntry[] entries) throws IOException {
output.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
Document doc = JAXPUtils.getDocumentBuilder() .newDocument();
Document doc = DOMUtils .newDocument();
Element root = doc.createElement("changelog");
DOM_WRITER.openElement(root, output, 0, "\t");
output.println();
@@ -77,53 +75,22 @@ public class SvnChangeLogWriter {
Document doc = element.getOwnerDocument();
Element ent = doc.createElement("entry");
appendTextElement(ent, "date", OUTPUT_DATE.format(entry.getDate()));
appendTextElement(ent, "time", OUTPUT_TIME.format(entry.getDate()));
appendCDATAElement(ent, "author", entry.getAuthor());
appendTextElement(ent, "revision", entry.getRevision());
DOMUtils.appendTextElement(ent, "date",
OUTPUT_DATE.format(entry.getDate()));
DOMUtils.appendTextElement(ent, "time",
OUTPUT_TIME.format(entry.getDate()));
DOMUtils.appendCDATAElement(ent, "author", entry.getAuthor());
DOMUtils.appendTextElement(ent, "revision", entry.getRevision());
SvnEntry.Path[] paths = entry.getPaths();
for (int i = 0; i < paths.length; i++) {
Element path = doc.createElement( "path");
ent.appendChild(path );
appendCDATAElement(path, "name", paths[i].getName());
appendTextElement(path, "action", paths[i].getActionDescription());
Element path = DOMUtils.createChildElement(ent, "path");
DOMUtils.appendCDATAElement(path, "name", paths[i].getName() );
DOMUtils.appendTextElement(path, "action",
paths[i].getActionDescription());
}
appendCDATAElement(ent, "message", entry.getMessage());
DOMUtils. appendCDATAElement(ent, "message", entry.getMessage());
DOM_WRITER.write(ent, output, 1, "\t");
}
/**
* Creates a named element with nested text as child of the given element.
*
* @param parent the parent element
* @param name name of the child element
* @param content the content of the nested text
*/
private static void appendTextElement(Element parent, String name,
String content) {
Document doc = parent.getOwnerDocument();
Element e = doc.createElement(name);
parent.appendChild(e);
Text t = doc.createTextNode(content);
e.appendChild(t);
}
/**
* Creates a named element with a nested CDATA section as child of
* the given element.
*
* @param parent the parent element
* @param name name of the child element
* @param content the content of the nested text
*/
private static void appendCDATAElement(Element parent, String name,
String content) {
Document doc = parent.getOwnerDocument();
Element e = doc.createElement(name);
parent.appendChild(e);
CDATASection c = doc.createCDATASection(content);
e.appendChild(c);
}
}