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:[EMAIL PROTECTED]/~/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:[EMAIL PROTECTED]/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://[EMAIL PROTECTED]/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