From 8ead313e923addd0bb484322dcff2081068b4f2d Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Mon, 20 Oct 2008 10:33:34 +0000 Subject: [PATCH] properly deal wih multiple modules specified in the package attribute git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@706207 13f79535-47bb-0310-9956-ffa450edef68 --- .../ant/taskdefs/cvslib/ChangeLogParser.java | 22 +++++++++++++------ .../taskdefs/cvs/repository/CVSROOT/history | 4 ++++ 2 files changed, 19 insertions(+), 7 deletions(-) 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 9fbe5f7a9..fe4f4b772 100644 --- a/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java +++ b/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java @@ -20,11 +20,13 @@ package org.apache.tools.ant.taskdefs.cvslib; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.ArrayList; import java.util.Enumeration; import java.util.Hashtable; import java.util.Iterator; import java.util.List; import java.util.Locale; +import java.util.StringTokenizer; import java.util.TimeZone; import org.apache.tools.ant.taskdefs.AbstractCvsTask; import org.apache.tools.ant.util.CollectionUtils; @@ -81,16 +83,22 @@ class ChangeLogParser { public ChangeLogParser(boolean remote, String packageName, List modules) { this.remote = remote; - moduleNames = new String[modules.size() + (packageName == null ? 0 : 1)]; - moduleNameLengths = new int[moduleNames.length]; - int i = 0; + + ArrayList names = new ArrayList(); if (packageName != null) { - moduleNames[i] = packageName; - moduleNameLengths[i++] = packageName.length(); + for (StringTokenizer tok = new StringTokenizer(packageName); + tok.hasMoreTokens(); ) { + names.add(tok.nextToken()); + } } - for (Iterator iter = modules.iterator(); iter.hasNext(); i++) { + for (Iterator iter = modules.iterator(); iter.hasNext(); ) { AbstractCvsTask.Module m = (AbstractCvsTask.Module) iter.next(); - moduleNames[i] = m.getName(); + names.add(m.getName()); + } + + moduleNames = (String[]) names.toArray(new String[names.size()]); + moduleNameLengths = new int[moduleNames.length]; + for (int i = 0; i < moduleNames.length; i++) { moduleNameLengths[i] = moduleNames[i].length(); } } diff --git a/src/tests/antunit/taskdefs/cvs/repository/CVSROOT/history b/src/tests/antunit/taskdefs/cvs/repository/CVSROOT/history index fe86e1afe..68060e391 100644 --- a/src/tests/antunit/taskdefs/cvs/repository/CVSROOT/history +++ b/src/tests/antunit/taskdefs/cvs/repository/CVSROOT/history @@ -52,3 +52,7 @@ O48f8b328|stefan|/tmp/testoutput/*0|antmodule3||antmodule3 O48f8b329|stefan|/tmp/testoutput/*0|antmodule1||antmodule1 O48f8b32b|stefan|/tmp/testoutput/*0|ant module 2||ant module 2 O48f8b32c|stefan|/tmp/testoutput/*0|antmodule3||antmodule3 +O48fc5e01|stefan|/tmp/testoutput/*0|antmodule3||antmodule3 +O48fc5e03|stefan|/tmp/testoutput/*0|antmodule1||antmodule1 +O48fc5e05|stefan|/tmp/testoutput/*0|ant module 2||ant module 2 +O48fc5e06|stefan|/tmp/testoutput/*0|antmodule3||antmodule3