You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2011/01/08 15:46:27 UTC

svn commit: r1056720 - in /maven/maven-3/trunk/maven-model-builder/src: main/java/org/apache/maven/model/path/DefaultUrlNormalizer.java test/java/org/apache/maven/model/path/DefaultUrlNormalizerTest.java

Author: bentmann
Date: Sat Jan  8 14:46:27 2011
New Revision: 1056720

URL: http://svn.apache.org/viewvc?rev=1056720&view=rev
Log:
[MNG-4966] Preserve double slashes in the scm connection url - identifies absolute repository paths for mercurial

Modified:
    maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultUrlNormalizer.java
    maven/maven-3/trunk/maven-model-builder/src/test/java/org/apache/maven/model/path/DefaultUrlNormalizerTest.java

Modified: maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultUrlNormalizer.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultUrlNormalizer.java?rev=1056720&r1=1056719&r2=1056720&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultUrlNormalizer.java (original)
+++ maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultUrlNormalizer.java Sat Jan  8 14:46:27 2011
@@ -37,8 +37,6 @@ public class DefaultUrlNormalizer
 
         if ( result != null )
         {
-            result = result.replaceAll( "(?<![:/])/+", "/" );
-
             while ( true )
             {
                 int idx = result.indexOf( "/../" );
@@ -46,7 +44,12 @@ public class DefaultUrlNormalizer
                 {
                     break;
                 }
-                int parent = result.lastIndexOf( '/', idx - 1 );
+                int parent = idx - 1;
+                while ( parent >= 0 && result.charAt( parent ) == '/' )
+                {
+                    parent--;
+                }
+                parent = result.lastIndexOf( '/', parent );
                 if ( parent < 0 )
                 {
                     break;

Modified: maven/maven-3/trunk/maven-model-builder/src/test/java/org/apache/maven/model/path/DefaultUrlNormalizerTest.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-model-builder/src/test/java/org/apache/maven/model/path/DefaultUrlNormalizerTest.java?rev=1056720&r1=1056719&r2=1056720&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-model-builder/src/test/java/org/apache/maven/model/path/DefaultUrlNormalizerTest.java (original)
+++ maven/maven-3/trunk/maven-model-builder/src/test/java/org/apache/maven/model/path/DefaultUrlNormalizerTest.java Sat Jan  8 14:46:27 2011
@@ -69,13 +69,14 @@ public class DefaultUrlNormalizerTest
     {
         assertEquals( "http://server.org/child", normalize( "http://server.org/parent/../child" ) );
         assertEquals( "http://server.org/child", normalize( "http://server.org/grand/parent/../../child" ) );
+
+        assertEquals( "http://server.org//child", normalize( "http://server.org/parent/..//child" ) );
+        assertEquals( "http://server.org/child", normalize( "http://server.org/parent//../child" ) );
     }
 
-    public void testRemovalOfDoubleSlashes()
+    public void testPreservationOfDoubleSlashes()
     {
-        assertEquals( "http://server.org/dir/", normalize( "http://server.org/dir//" ) );
-        assertEquals( "http://server.org/parent/child", normalize( "http://server.org/parent//child" ) );
-
+        assertEquals( "scm:hg:ssh://localhost//home/user", normalize( "scm:hg:ssh://localhost//home/user" ) );
         assertEquals( "file:////UNC/server", normalize( "file:////UNC/server" ) );
         assertEquals( "[fetch=]http://server.org/[push=]ssh://server.org/",
                       normalize( "[fetch=]http://server.org/[push=]ssh://server.org/" ) );