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