Hi,
I had some problems with the changelog plugin (svn repository) : contributor names in the svn are made from X.500 DN from a ssl certificate which means they can contain spaces and do not follow the pattern in the plugin.

Here is a small patch that:
 - replaces the regexp for authors
 - trim the result before addition to ChangelogEntry
 - fixes test cases
This patch was produced using  svn diff command

src/test/org/apache/maven/svnlib/SvnChangeLogParserTest.java
===================================================================
--- src/test/org/apache/maven/svnlib/SvnChangeLogParserTest.java (révision 293017) +++ src/test/org/apache/maven/svnlib/SvnChangeLogParserTest.java (copie de travail)
@@ -77,18 +77,22 @@
         FileInputStream fis = new FileInputStream(testFile);
         List entries = new ArrayList(parser.parse(fis));

- assertEquals("Wrong number of entries returned", 13, entries.size()); + assertEquals("Wrong number of entries returned", 14, entries.size());

         ChangeLogEntry entry = (ChangeLogEntry) entries.get(0);
         assertEquals("Entry 0 was parsed incorrectly",
                 "kaz\n" +
-                DATE.parse("Mon Aug 26 14:33:26 EDT 2002") + "\n" +
-                "[/poolserver/trunk/build.xml, 15, " +
-                "/poolserver/trunk/project.properties, 15]\n" +
+                DATE.parse("Mon Aug 26 20:33:26 EDT 2002") + "\n" +
+                "[/poolserver/trunk/build.xml, 16, " +
+                "/poolserver/trunk/project.properties, 16]\n" +
                 "Minor formatting changes.\n\n",
                 entry.toString());
+        /* check author with space was parsed correctly */
+        entry = (ChangeLogEntry) entries.get(1);
+        assertEquals("Entry 0 was parsed incorrectly",
+                "kaz toto",entry.getAuthor());

-        entry = (ChangeLogEntry) entries.get(6);
+        entry = (ChangeLogEntry) entries.get(7);
         assertEquals("Entry 6 was parsed incorrectly",
                 "(no author)\n" +
                 DATE.parse("Fri Aug 23 11:11:52 EDT 2002") + "\n" +
@@ -96,7 +100,7 @@
                 "Testing script out again ...\n\n",
                 entry.toString());

-        entry = (ChangeLogEntry) entries.get(8);
+        entry = (ChangeLogEntry) entries.get(9);
         assertEquals("Entry 8 was parsed incorrectly",
                 "pete\n" +
                 DATE.parse("Fri Aug 23 11:03:39 EDT 2002") + "\n" +
@@ -105,7 +109,7 @@
                 "subversion).\n\n",
                 entry.toString());

-        entry = (ChangeLogEntry) entries.get(12);
+        entry = (ChangeLogEntry) entries.get(13);
         assertEquals("Entry 12 was parsed incorrectly",
                 "DOMAIN\\user\n" +
                 DATE.parse("Wed Aug 21 00:20:25 EDT 2002") + "\n" +
Index: src/main/org/apache/maven/svnlib/SvnChangeLogParser.java
===================================================================
--- src/main/org/apache/maven/svnlib/SvnChangeLogParser.java (révision 293017) +++ src/main/org/apache/maven/svnlib/SvnChangeLogParser.java (copie de travail)
@@ -82,7 +82,7 @@
     /** The pattern used to match svn header lines */
     private static final String pattern =
         "^r(\\d+)\\s+\\|\\s+" +          // revision number
-        "(\\(\\S+\\s+\\S+\\)|\\S+)\\s+\\|\\s+" + // author username
+        "([^|]+)\\|\\s+" + // author username
         "(\\d+-\\d+-\\d+ " +             // date 2002-08-24
         "\\d+:\\d+:\\d+) " +             // time 16:01:00
         "([\\-+])(\\d\\d)(\\d\\d)";      // gmt offset -0400
@@ -198,7 +198,8 @@

         currentRevision = headerRegexp.getParen(1);
         currentLogEntry = new ChangeLogEntry();
-        currentLogEntry.setAuthor(headerRegexp.getParen(2));
+        /* set author to be trimmed author field */
+        currentLogEntry.setAuthor(headerRegexp.getParen(2).trim());
         currentLogEntry.setDate(parseDate());

         status = GET_FILE;
Index: src/test-resources/svnlib/svnlog.txt
===================================================================
--- src/test-resources/svnlib/svnlog.txt        (révision 293017)
+++ src/test-resources/svnlib/svnlog.txt        (copie de travail)
@@ -1,5 +1,5 @@
 ------------------------------------------------------------------------
-r15 | kaz | 2002-08-26 14:33:26 -0400 (Mon, 26 Aug 2002) | 3 lines
+r16 | kaz | 2002-08-26 20:33:26 -0400 (Mon, 26 Aug 2002) | 3 lines
 Changed paths:
    M /poolserver/trunk/build.xml
    M /poolserver/trunk/project.properties
@@ -7,6 +7,13 @@
 Minor formatting changes.

 ------------------------------------------------------------------------
+r15 | kaz toto | 2002-08-26 10:24:58 -0400 (Mon, 26 Aug 2002) | 3 lines
+Changed paths:
+   M /poolserver/trunk/build.xml
+
+Added white space to test author parsing.
+
+------------------------------------------------------------------------
 r14 | kaz | 2002-08-26 10:24:58 -0400 (Mon, 26 Aug 2002) | 3 lines
 Changed paths:
    M /poolserver/trunk/build.xml

Yours,
--
Arnaud Bailly - Ingénieur de Recherche
NORSYS
1, rue de la Cense des Raines
ZAC du Moulin
59710 ENNEVELIN
Tel : (33) 3 28 76 56 76
Fax : (33) 3 28 76 57 00
Web : http://www.norsys.frIndex:


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to