diff --git a/xdoc/src/main/org/apache/maven/xdoc/util/ScmUtil.java b/xdoc/src/main/org/apache/maven/xdoc/util/ScmUtil.java index b2a50fcc..93b46353 100644 --- a/xdoc/src/main/org/apache/maven/xdoc/util/ScmUtil.java +++ b/xdoc/src/main/org/apache/maven/xdoc/util/ScmUtil.java @@ -566,9 +566,19 @@ public final class ScmUtil throw new IllegalArgumentException( "cvs local repository connection string doesn't contain five tokens" ); } - } + }else if ( ( tokens.length == 7 ) && tokens[2].equals( "pserver" ) && tokens[4].startsWith("@")) + { + String[] newTokens = new String[6]; - if ( tokens.length != 6 ) + newTokens[0] = tokens[0]; + newTokens[1] = tokens[1]; + newTokens[2] = tokens[2]; + newTokens[3] = tokens[3] + tokens[4]; + newTokens[4] = tokens[5]; + newTokens[5] = tokens[6]; + tokens = newTokens; + } + else if ( tokens.length != 6 ) { throw new IllegalArgumentException( "cvs repository connection string doesn't contain six tokens" ); diff --git a/xdoc/src/test/org/apache/maven/xdoc/util/ScmUtilTest.java b/xdoc/src/test/org/apache/maven/xdoc/util/ScmUtilTest.java index 8807322b..d2ea5a5a 100644 --- a/xdoc/src/test/org/apache/maven/xdoc/util/ScmUtilTest.java +++ b/xdoc/src/test/org/apache/maven/xdoc/util/ScmUtilTest.java @@ -31,6 +31,8 @@ public class ScmUtilTest extends TestCase "scm:cvs|pserver|username@localhost|C:/repositories|module_name"; private final String cvs2 = "scm:cvs:ext:username@cvs.apache.org:/cvs/root:module"; + private final String cvs3 = + "scm:cvs:pserver:anoncvs:@cvs.apache.org:/cvs/root:module"; private final String svn = "scm:svn:http://svn.apache.org/svn/root/module"; private final String perforce1 = "scm:perforce:john_doe@somehost:21:path_to_repository"; @@ -47,6 +49,7 @@ public class ScmUtilTest extends TestCase { assertEquals( scmUtil.getSCMConnectionSeparator( cvs1 ), "|" ); assertEquals( scmUtil.getSCMConnectionSeparator( cvs2 ), ":" ); + assertEquals( scmUtil.getSCMConnectionSeparator( cvs3 ), ":" ); assertEquals( scmUtil.getSCMConnectionSeparator( svn ), ":" ); } @@ -54,6 +57,7 @@ public class ScmUtilTest extends TestCase { assertEquals( scmUtil.getScmType( cvs1 ), "cvs" ); assertEquals( scmUtil.getScmType( cvs2 ), "cvs" ); + assertEquals( scmUtil.getScmType( cvs3 ), "cvs" ); assertEquals( scmUtil.getScmType( svn ), "svn" ); assertNull( scmUtil.getScmType( invalid ) ); } @@ -62,6 +66,7 @@ public class ScmUtilTest extends TestCase { assertEquals( scmUtil.getCvsModule( cvs1 ), "module_name" ); assertEquals( scmUtil.getCvsModule( cvs2 ), "module" ); + assertEquals( scmUtil.getCvsModule( cvs3 ), "module" ); assertNull( scmUtil.getCvsModule( invalid ) ); } @@ -75,6 +80,10 @@ public class ScmUtilTest extends TestCase "scm:cvs:ext:username:@cvs.apache.org:/cvs/root:module" ); assertEquals( scmUtil.getCvsConnection( cvs2, "john_doe" ), "scm:cvs:ext:john_doe@cvs.apache.org:/cvs/root:module" ); + assertEquals( scmUtil.getCvsConnection( cvs3, "" ), + "scm:cvs:pserver:anoncvs:@cvs.apache.org:/cvs/root:module" ); + assertEquals( scmUtil.getCvsConnection( cvs3, "john_doe" ), + "scm:cvs:pserver:john_doe@cvs.apache.org:/cvs/root:module" ); assertEquals( scmUtil.getCvsConnection( svn, "" ), "" ); } diff --git a/xdoc/xdocs/changes.xml b/xdoc/xdocs/changes.xml index a277f4b7..e618070f 100644 --- a/xdoc/xdocs/changes.xml +++ b/xdoc/xdocs/changes.xml @@ -27,6 +27,7 @@