diff --git a/changelog/project.xml b/changelog/project.xml
index 34ff5534..b79235bf 100644
--- a/changelog/project.xml
+++ b/changelog/project.xml
@@ -172,10 +172,10 @@
maven
maven-model
- 1.1-SNAPSHOT
+ 3.0.0-SNAPSHOT
-
+
xerces
xerces
diff --git a/changelog/src/main/org/apache/maven/cvslib/CvsChangeLogGenerator.java b/changelog/src/main/org/apache/maven/cvslib/CvsChangeLogGenerator.java
index 8d71a160..f9d93a7d 100644
--- a/changelog/src/main/org/apache/maven/cvslib/CvsChangeLogGenerator.java
+++ b/changelog/src/main/org/apache/maven/cvslib/CvsChangeLogGenerator.java
@@ -111,7 +111,7 @@ class CvsChangeLogGenerator extends AbstractChangeLogGenerator
entries = super.getEntries(parser);
}
catch (Exception e){
- LOG.error(e);
+ LOG.error("Error processing command", e);
}
@@ -153,25 +153,22 @@ class CvsChangeLogGenerator extends AbstractChangeLogGenerator
// use the local repository directory eg. '/home/cvspublic'
connectionBuffer = tokens[POS_SCM_PATH];
}
+ else if (tokens[POS_SCM_SUBTYPE].equalsIgnoreCase("lserver"))
+ {
+ //create the cvsroot as the local socket cvsroot
+ connectionBuffer =
+ tokens[POS_SCM_USERHOST] + ":" + tokens[POS_SCM_PATH];
+ }
else
{
- if (tokens[POS_SCM_SUBTYPE].equalsIgnoreCase("lserver"))
- {
- //create the cvsroot as the local socket cvsroot
- connectionBuffer =
- tokens[POS_SCM_USERHOST] + ":" + tokens[POS_SCM_PATH];
- }
- else
- {
- //create the cvsroot as the remote cvsroot
- connectionBuffer =
- ":"
- + tokens[POS_SCM_SUBTYPE]
- + ":"
- + tokens[POS_SCM_USERHOST]
- + ":"
- + tokens[POS_SCM_PATH];
- }
+ //create the cvsroot as the remote cvsroot
+ connectionBuffer =
+ ":"
+ + tokens[POS_SCM_SUBTYPE]
+ + ":"
+ + tokens[POS_SCM_USERHOST]
+ + ":"
+ + tokens[POS_SCM_PATH];
}
command.createArgument().setValue(connectionBuffer.toString());
diff --git a/changelog/src/main/org/apache/maven/util/RepositoryUtils.java b/changelog/src/main/org/apache/maven/util/RepositoryUtils.java
index 36c86ed6..43cea94b 100755
--- a/changelog/src/main/org/apache/maven/util/RepositoryUtils.java
+++ b/changelog/src/main/org/apache/maven/util/RepositoryUtils.java
@@ -26,7 +26,7 @@ import java.util.List;
*
* @author Jason van Zyl
*
- * @version $Id: RepositoryUtils.java,v 1.1 2004/09/24 10:47:03 brett Exp $
+ * @version $Id$
*/
public final class RepositoryUtils
{
@@ -61,6 +61,31 @@ public final class RepositoryUtils
// for a valid repository, it should be scm: at least
if (tokens.length >= 1 && tokens[1].equals("cvs"))
{
+ if (tokens.length >= 2 && tokens[2].equals("local"))
+ {
+ if (tokens.length == 6)
+ {
+ if (tokens[3].length() > 0 && !tokens[3].equals("local"))
+ {
+ throw new IllegalArgumentException("cvs local repository connection string must specify 5 tokens, or an empty 3rd token if 6");
+ }
+ }
+ else if (tokens.length == 5)
+ {
+ String[] newTokens = new String[6];
+ newTokens[0] = tokens[0];
+ newTokens[1] = tokens[1];
+ newTokens[2] = tokens[2];
+ newTokens[3] = "";
+ newTokens[4] = tokens[3];
+ newTokens[5] = tokens[4];
+ tokens = newTokens;
+ }
+ else
+ {
+ throw new IllegalArgumentException("cvs local repository connection string doesn't contain five tokens");
+ }
+ }
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 6fdfc544..232acda7 100644
--- a/changelog/src/test/org/apache/maven/util/RepositoryTest.java
+++ b/changelog/src/test/org/apache/maven/util/RepositoryTest.java
@@ -22,13 +22,80 @@ import junit.framework.TestCase;
public class RepositoryTest
extends TestCase
{
- public void testSplitScmConnection()
+ public void testSplitScmConnectionCvsPserver()
{
String con = "scm:cvs:pserver:anoncvs@cvs.apache.org:/home/cvspublic:module";
String[] tokens = RepositoryUtils.splitSCMConnection(con);
assertEquals("Wrong number of tokens split", 6, tokens.length);
- con = "scm|svn|http://svn.apache.org/repos";
- tokens = RepositoryUtils.splitSCMConnection(con);
+ }
+
+ public void testSplitScmConnectionCvsLocal5Tokens()
+ {
+ String con = "scm:cvs:local:/cvs/root:module";
+ String[] tokens = RepositoryUtils.splitSCMConnection(con);
+ assertEquals("Wrong number of tokens split", 6, tokens.length);
+ }
+
+ public void testSplitScmConnectionCvsLocal6Tokens3rdEmpty()
+ {
+ String con = "scm:cvs:local::/cvs/root:module";
+ String[] tokens = RepositoryUtils.splitSCMConnection(con);
+ assertEquals("Wrong number of tokens split", 6, tokens.length);
+ }
+
+ public void testSplitScmConnectionCvsLocal6Tokens3rdLocal()
+ {
+ String con = "scm:cvs:local:local:/cvs/root:module";
+ String[] tokens = RepositoryUtils.splitSCMConnection(con);
+ assertEquals("Wrong number of tokens split", 6, tokens.length);
+ }
+
+ public void testSplitScmConnectionCvsLocal4Tokens()
+ {
+ String con = "scm:cvs:local:/cvs/root";
+ try
+ {
+ String[] tokens = RepositoryUtils.splitSCMConnection(con);
+ fail("Should throw an exception splitting " + con);
+ }
+ catch ( IllegalArgumentException expected )
+ {
+ assertTrue( true );
+ }
+ }
+
+ public void testSplitScmConnectionCvsPserver5Tokens()
+ {
+ String con = "scm:cvs:pserver:user@host:/cvs/root";
+ try
+ {
+ String[] tokens = RepositoryUtils.splitSCMConnection(con);
+ fail("Should throw an exception splitting " + con);
+ }
+ catch ( IllegalArgumentException expected )
+ {
+ assertTrue( true );
+ }
+ }
+
+ public void testSplitScmConnectionCvsLocal6TokensNonEmpty3rd()
+ {
+ String con = "scm:cvs:local:foo:/cvs/root:module";
+ try
+ {
+ String[] tokens = RepositoryUtils.splitSCMConnection(con);
+ fail("Should throw an exception splitting " + con);
+ }
+ catch ( IllegalArgumentException expected )
+ {
+ assertTrue( true );
+ }
+ }
+
+ public void testSplitScmConnectionSvn()
+ {
+ String con = "scm|svn|http://svn.apache.org/repos";
+ String[] tokens = RepositoryUtils.splitSCMConnection(con);
assertEquals("Wrong number of tokens split", 3, tokens.length);
}
}
diff --git a/changelog/xdocs/changes.xml b/changelog/xdocs/changes.xml
index 59d2829a..34740c45 100644
--- a/changelog/xdocs/changes.xml
+++ b/changelog/xdocs/changes.xml
@@ -26,6 +26,7 @@
+ Allow local CVSROOT to only have 5 tokens (no host name)
Fix subversion revision passing on Windows