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 @@ + Plugin fails with anonymous access and empty password in scm url. Change margin between menu items in stylus.css. Plugin fails if there is an index.xml in the filesystem root directory. Improve stylus.css.