diff --git a/src/main/org/apache/tools/ant/taskdefs/cvslib/CVSEntry.java b/src/main/org/apache/tools/ant/taskdefs/cvslib/CVSEntry.java index ce6e0686f..8c72f7dc5 100644 --- a/src/main/org/apache/tools/ant/taskdefs/cvslib/CVSEntry.java +++ b/src/main/org/apache/tools/ant/taskdefs/cvslib/CVSEntry.java @@ -65,7 +65,7 @@ import java.util.Date; */ class CVSEntry { private Date m_date; - private final String m_author; + private String m_author; private final String m_comment; private final Vector m_files = new Vector(); @@ -87,6 +87,10 @@ class CVSEntry { return m_date; } + void setAuthor(final String author) { + m_author = author; + } + String getAuthor() { return m_author; } diff --git a/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java b/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java index 7a7aa6911..bdd9576ac 100644 --- a/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java +++ b/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java @@ -91,17 +91,6 @@ class ChangeLogParser { /** rcs entries */ private final Hashtable m_entries = new Hashtable(); - private final Properties m_userList; - - /** - * Construct a parser that uses specified user list. - * - * @param userList the userlist - */ - public ChangeLogParser(Properties userList) { - m_userList = userList; - } - /** * Get a list of rcs entrys as an array. * @@ -210,10 +199,6 @@ class ChangeLogParser { String lineData = line.substring(line.indexOf(";") + 1); m_author = lineData.substring(10, lineData.indexOf(";")); - if (m_userList.containsKey(m_author)) { - m_author = m_userList.getProperty(m_author); - } - m_status = GET_COMMENT; //Reset comment to empty here as we can accumulate multiple lines diff --git a/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java b/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java index 3ee14379d..25accfb55 100644 --- a/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java +++ b/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java @@ -271,7 +271,7 @@ public class ChangeLogTask extends Task { } } - final ChangeLogParser parser = new ChangeLogParser(userList); + final ChangeLogParser parser = new ChangeLogParser(); final RedirectingStreamHandler handler = new RedirectingStreamHandler(parser); @@ -302,6 +302,8 @@ public class ChangeLogTask extends Task { final CVSEntry[] entrySet = parser.getEntrySetAsArray(); final CVSEntry[] filteredEntrySet = filterEntrySet(entrySet); + replaceAuthorIdWithName(userList,filteredEntrySet); + writeChangeLog(filteredEntrySet); } finally { @@ -309,7 +311,6 @@ public class ChangeLogTask extends Task { } } - /** * Validate the parameters specified for task. * @@ -339,7 +340,6 @@ public class ChangeLogTask extends Task { } } - /** * Load the userlist from the userList file (if specified) and add to * list of users. @@ -358,7 +358,6 @@ public class ChangeLogTask extends Task { } } - /** * Filter the specified entrys accoridn to an appropriate rule. * @@ -389,6 +388,20 @@ public class ChangeLogTask extends Task { return resultArray; } + /** + * replace all known author's id's with their maven specified names + */ + private void replaceAuthorIdWithName(final Properties userList, + final CVSEntry[] entrySet) { + for (int i = 0; i < entrySet.length; i++ ) { + + final CVSEntry entry = entrySet[ i ]; + if (userList.containsKey(entry.getAuthor())) + { + entry.setAuthor(userList.getProperty(entry.getAuthor())); + } + } + } /** * Print changelog to file specified in task.