diff --git a/changelog/src/main/org/apache/maven/util/RepositoryUtils.java b/changelog/src/main/org/apache/maven/util/RepositoryUtils.java index 3005b224..e034a120 100755 --- a/changelog/src/main/org/apache/maven/util/RepositoryUtils.java +++ b/changelog/src/main/org/apache/maven/util/RepositoryUtils.java @@ -120,8 +120,19 @@ public final class RepositoryUtils "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/changelog/src/test/org/apache/maven/util/RepositoryTest.java b/changelog/src/test/org/apache/maven/util/RepositoryTest.java index accf5742..1033680f 100644 --- a/changelog/src/test/org/apache/maven/util/RepositoryTest.java +++ b/changelog/src/test/org/apache/maven/util/RepositoryTest.java @@ -43,6 +43,13 @@ public class RepositoryTest assertEquals("Wrong number of tokens split", 6, tokens.length); } + public void testSplitScmConnectionEmptyPassword() + { + String con = "scm:cvs:pserver:anoncvs:@cvs.apache.org:/cvs/root:module"; + String[] tokens = RepositoryUtils.splitSCMConnection(con); + assertEquals("Empty password should be ignored", "anoncvs@cvs.apache.org", tokens[3]); + } + public void testSplitScmConnectionCvsLocal5Tokens() { String con = "scm:cvs:local:/cvs/root:module"; diff --git a/changelog/xdocs/changes.xml b/changelog/xdocs/changes.xml index 0a21389c..771bd3bb 100644 --- a/changelog/xdocs/changes.xml +++ b/changelog/xdocs/changes.xml @@ -25,6 +25,7 @@
maven.changelog.useDeveloperConnection.