You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm-commits@maven.apache.org by vs...@apache.org on 2008/08/18 14:28:30 UTC
svn commit: r686735 - in
/maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src:
main/java/org/apache/maven/scm/provider/hg/repository/
test/java/org/apache/maven/scm/provider/hg/repository/
Author: vsiveton
Date: Mon Aug 18 05:28:29 2008
New Revision: 686735
URL: http://svn.apache.org/viewvc?rev=686735&view=rev
Log:
SCM-391: urls without subfolders were not parsed correctly.
o fixed parseHostAndPort()
o added a test case
o allowed some commented tests
Modified:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/repository/HgScmProviderRepository.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/repository/HgScmProviderRepositoryTest.java
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/repository/HgScmProviderRepository.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/repository/HgScmProviderRepository.java?rev=686735&r1=686734&r2=686735&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/repository/HgScmProviderRepository.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/repository/HgScmProviderRepository.java Mon Aug 18 05:28:29 2008
@@ -144,35 +144,29 @@
{
if ( protocol != FILE )
{
- String[] split = url.split( ":" );
- if ( split.length == 2 )
+ int indexSlash = url.indexOf( "/" );
+
+ String hostPort = url;
+ if ( indexSlash > 0 )
{
- setHost( split[0] );
- url = url.substring( split[0].length() + 1 );
- split = split[1].split( "/" );
- if ( split.length == 2 )
- {
- url = url.substring( split[0].length() );
- try
- {
- setPort( Integer.valueOf( split[0] ).intValue() );
- }
- catch ( NumberFormatException e )
- {
- //Ignore - error will manifest itself later.
- }
- }
+ hostPort = url.substring( 0, indexSlash );
+ }
+
+ int indexColon = hostPort.indexOf( ":" );
+ if ( indexColon > 0 )
+ {
+ setHost( hostPort.substring( 0, indexColon ) );
+ url = StringUtils.replace( url, getHost(), "" );
+ setPort( Integer.parseInt( hostPort.substring( indexColon + 1 ) ) );
+ url = StringUtils.replace( url, ":" + getPort(), "" );
}
else
{
- split = url.split( "/" );
- if ( split.length > 1 )
- {
- url = url.substring( split[0].length() );
- setHost( split[0] );
- }
+ setHost( hostPort );
+ url = StringUtils.replace( url, getHost(), "" );
}
}
+
return url;
}
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/repository/HgScmProviderRepositoryTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/repository/HgScmProviderRepositoryTest.java?rev=686735&r1=686734&r2=686735&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/repository/HgScmProviderRepositoryTest.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/repository/HgScmProviderRepositoryTest.java Mon Aug 18 05:28:29 2008
@@ -63,19 +63,19 @@
String url = "ssh://username:password@myhost.com/~/dev/maven";
HgScmProviderRepository repo = new HgScmProviderRepository( url );
assertEquals( url, repo.getURI() );
- //assertNull( repo.validateURI() );
+ assertNull( repo.validateURI() );
//2. Test with absolute path
url = "ssh://username:password@myhost.com/home/username/dev/maven";
repo = new HgScmProviderRepository( url );
assertEquals( url, repo.getURI() );
- //assertNull( repo.validateURI() );
+ assertNull( repo.validateURI() );
//3. Test with passwordless (Public-key auth)
String incompleteUrl = "ssh://username@myhost.com/home/username/dev/maven";
repo = new HgScmProviderRepository( incompleteUrl );
- assertEquals( incompleteUrl, repo.getURI() ); //T
- //assertNull( repo.validateURI() );
+ assertEquals( incompleteUrl, repo.getURI() );
+ assertNull( repo.validateURI() );
}
public void testHTTPRepo()
@@ -84,24 +84,45 @@
//1. Test with relativ path
String url = "http://www.myhost.com/~username/dev/maven";
HgScmProviderRepository repo = new HgScmProviderRepository( url );
- //assertEquals( url, repo.getURI() );
- //assertNull( repo.validateURI() );
+ assertEquals( url, repo.getURI() );
+ assertNull( repo.validateURI() );
//2. Test with absolute path
url = "http://www.myhost.com/dev/maven";
repo = new HgScmProviderRepository( url );
assertEquals( url, repo.getURI() );
- //assertNull( repo.validateURI() );
+ assertNull( repo.validateURI() );
//3. Test with unessesary authentication information
repo.setPassword( "Password" );
repo.setUser( "User" );
repo.setPassphrase( "Passphrase" );
assertEquals( "http://www.myhost.com/dev/maven", repo.getURI() );
- //assertNull( repo.validateURI() );
+ assertNull( repo.validateURI() );
repo.setPort( 81 );
- //assertEquals( "http://www.myhost.com:81/dev/maven", repo.getURI() );
- //assertNull( repo.validateURI() );
+ assertEquals( "http://www.myhost.com:81/dev/maven", repo.getURI() );
+ assertNull( repo.validateURI() );
assertTrue( true );
}
+
+ /**
+ * Test SCM-391
+ *
+ * @throws Exception
+ */
+ public void testParseHostAndPort()
+ throws Exception
+ {
+ String url = "http://localhost:8000/";
+ HgScmProviderRepository repo = new HgScmProviderRepository( url );
+ assertEquals( repo.getURI(), url );
+
+ url = "http://localhost/";
+ repo = new HgScmProviderRepository( url );
+ assertEquals( repo.getURI(), url );
+
+ url = "http://www.myhost.com:81/dev/maven";
+ repo = new HgScmProviderRepository( url );
+ assertEquals( repo.getURI(), url );
+ }
}
\ No newline at end of file