diff options
author | Ashlee Young <ashlee@onosfw.com> | 2015-10-23 10:00:02 -0700 |
---|---|---|
committer | Ashlee Young <ashlee@onosfw.com> | 2015-10-23 10:00:02 -0700 |
commit | 753a6c60f47f3ac4f270005b65e9d6481de8eb68 (patch) | |
tree | 3d0a1ae3b4d994550f6614b417b991eee3eb8911 /framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogWriter.java | |
parent | c62d20eb3b4620c06d833be06f50b2600d96dd42 (diff) |
Adding maven and ant source trees
Change-Id: I0a39b9add833a31b9c3f98d193983ae2f3a5a445
Signed-off-by: Ashlee Young <ashlee@onosfw.com>
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogWriter.java')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogWriter.java | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogWriter.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogWriter.java new file mode 100644 index 00000000..2385e51f --- /dev/null +++ b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogWriter.java @@ -0,0 +1,114 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package org.apache.tools.ant.taskdefs.cvslib; + +import java.io.IOException; +import java.io.PrintWriter; +import java.text.SimpleDateFormat; +import java.util.Enumeration; +import java.util.TimeZone; + +import org.apache.tools.ant.util.DOMElementWriter; +import org.apache.tools.ant.util.DOMUtils; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +/** + * Class used to generate an XML changelog. + * + */ +public class ChangeLogWriter { + /** output format for dates written to xml file */ + private static final SimpleDateFormat OUTPUT_DATE + = new SimpleDateFormat("yyyy-MM-dd"); + /** output format for times written to xml file */ + private static final SimpleDateFormat OUTPUT_TIME + = new SimpleDateFormat("HH:mm"); + /** stateless helper for writing the XML document */ + private static final DOMElementWriter DOM_WRITER = new DOMElementWriter(); + + static { + TimeZone utc = TimeZone.getTimeZone("UTC"); + OUTPUT_DATE.setTimeZone(utc); + OUTPUT_TIME.setTimeZone(utc); + } + + /** + * Print out the specified entries. + * + * @param output writer to which to send output. + * @param entries the entries to be written. + */ + public void printChangeLog(final PrintWriter output, + final CVSEntry[] entries) { + try { + output.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); + Document doc = DOMUtils.newDocument(); + Element root = doc.createElement("changelog"); + DOM_WRITER.openElement(root, output, 0, "\t"); + output.println(); + for (int i = 0; i < entries.length; i++) { + final CVSEntry entry = entries[i]; + + printEntry(doc, output, entry); + } + DOM_WRITER.closeElement(root, output, 0, "\t", true); + output.flush(); + output.close(); + } catch (IOException e) { + throw new org.apache.tools.ant.BuildException(e); + } + } + + + /** + * Print out an individual entry in changelog. + * + * @param doc Document used to create elements. + * @param entry the entry to print + * @param output writer to which to send output. + */ + private void printEntry(Document doc, final PrintWriter output, + final CVSEntry entry) throws IOException { + Element ent = doc.createElement("entry"); + DOMUtils.appendTextElement(ent, "date", + OUTPUT_DATE.format(entry.getDate())); + DOMUtils.appendTextElement(ent, "time", + OUTPUT_TIME.format(entry.getDate())); + DOMUtils.appendCDATAElement(ent, "author", entry.getAuthor()); + + final Enumeration enumeration = entry.getFiles().elements(); + + while (enumeration.hasMoreElements()) { + final RCSFile file = (RCSFile) enumeration.nextElement(); + + Element f = DOMUtils.createChildElement(ent, "file"); + DOMUtils.appendCDATAElement(f, "name", file.getName()); + DOMUtils.appendTextElement(f, "revision", file.getRevision()); + + final String previousRevision = file.getPreviousRevision(); + if (previousRevision != null) { + DOMUtils.appendTextElement(f, "prevrevision", + previousRevision); + } + } + DOMUtils.appendCDATAElement(ent, "msg", entry.getComment()); + DOM_WRITER.write(ent, output, 1, "\t"); + } +} + |