You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2015/03/30 20:57:09 UTC

svn commit: r1670177 - in /maven/release/trunk/maven-release-manager/src: main/java/org/apache/maven/shared/release/util/ReleaseUtil.java test/java/org/apache/maven/shared/release/util/ReleaseUtilTest.java

Author: rfscholte
Date: Mon Mar 30 18:57:09 2015
New Revision: 1670177

URL: http://svn.apache.org/r1670177
Log:
[MRELEASE-871] Release Tag wrongly created when invoked pom.xml path contains a '.'
Fix testGetBaseScmUrlSingleLevelDotCharacter

Modified:
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java
    maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/util/ReleaseUtilTest.java

Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java?rev=1670177&r1=1670176&r2=1670177&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java Mon Mar 30 18:57:09 2015
@@ -269,6 +269,10 @@ public class ReleaseUtil
     {
         if ( !StringUtils.isEmpty( url ) )
         {
+            // normalize
+            url = url.replaceAll( "/\\./", "/" ).replaceAll( "/\\.$", "" ).
+                            replaceAll( "/[^/]+/../", "/" ).replaceAll("/[^/]+/..$","");
+
             int index = url.length();
             String suffix = "";
             if ( url.endsWith( "/" ) )
@@ -276,6 +280,7 @@ public class ReleaseUtil
                 index--;
                 suffix = "/";
             }
+
             for ( int i = 0; i < parentLevels && index > 0; i++ )
             {
                 index = url.lastIndexOf( '/', index - 1 );
@@ -285,6 +290,7 @@ public class ReleaseUtil
             {
                 url = url.substring( 0, index ) + suffix;
             }
+            
         }
         return url;
     }

Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/util/ReleaseUtilTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/util/ReleaseUtilTest.java?rev=1670177&r1=1670176&r2=1670177&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/util/ReleaseUtilTest.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/util/ReleaseUtilTest.java Mon Mar 30 18:57:09 2015
@@ -182,13 +182,18 @@ public class ReleaseUtilTest
     public void testGetBaseScmUrlSingleLevelDotCharacter()
             throws Exception
     {
-        assumeTrue( Os.isFamily( Os.FAMILY_UNIX ) );
+        assertEquals( "scm:svn:http://svn.repo.com/flat-multi-module/trunk",
+                      ReleaseUtil.realignScmUrl( 0, "scm:svn:http://svn.repo.com/flat-multi-module/trunk/." ) );
         assertEquals( "scm:svn:http://svn.repo.com/flat-multi-module/trunk/",
-                ReleaseUtil.realignScmUrl( 0, "scm:svn:http://svn.repo.com/flat-multi-module/trunk/." ) );
-        assertEquals( "scm:svn:http://svn.repo.com/flat-multi-module/trunk/",
-                ReleaseUtil.realignScmUrl( 0, "scm:svn:http://svn.repo.com/flat-multi-module/trunk/./" ) );
-        assertEquals( "scm:svn:http://svn.repo.com/flat-multi-module/trunk/",
-                ReleaseUtil.realignScmUrl(0, "scm:svn:http://svn.repo.com/flat-multi-module/trunk/../trunk") );
+                      ReleaseUtil.realignScmUrl( 0, "scm:svn:http://svn.repo.com/flat-multi-module/trunk/./" ) );
+        assertEquals( "scm:svn:http://svn.repo.com/flat-multi-module/trunk/project",
+                      ReleaseUtil.realignScmUrl( 0, "scm:svn:http://svn.repo.com/flat-multi-module/trunk/./project" ) );
+        assertEquals( "scm:svn:http://svn.repo.com/flat-multi-module",
+                      ReleaseUtil.realignScmUrl( 0, "scm:svn:http://svn.repo.com/flat-multi-module/trunk/.." ) );
+        assertEquals( "scm:svn:http://svn.repo.com/flat-multi-module/",
+                      ReleaseUtil.realignScmUrl( 0, "scm:svn:http://svn.repo.com/flat-multi-module/trunk/../" ) );
+        assertEquals( "scm:svn:http://svn.repo.com/flat-multi-module/branches",
+                      ReleaseUtil.realignScmUrl( 0, "scm:svn:http://svn.repo.com/flat-multi-module/trunk/../branches" ) );
     }
 
     @Test