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/29 23:55:44 UTC

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

Author: rfscholte
Date: Sun Mar 29 21:55:44 2015
New Revision: 1669964

URL: http://svn.apache.org/r1669964
Log:
[MRELEASE-871] Release Tag wrongly created when invoked pom.xml path contains a '.'
Patch contributed by Gertjan Gaillet, verified and tests adjusted (to make them OS independent) by Robert Scholte 

Modified:
    maven/release/trunk/maven-release-manager/pom.xml
    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
    maven/release/trunk/pom.xml

Modified: maven/release/trunk/maven-release-manager/pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/pom.xml?rev=1669964&r1=1669963&r2=1669964&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/pom.xml (original)
+++ maven/release/trunk/maven-release-manager/pom.xml Sun Mar 29 21:55:44 2015
@@ -119,7 +119,11 @@
         </exclusion>
       </exclusions>
     </dependency>
-
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+      <version>2.2</version>
+    </dependency>
     <!-- scm dependencies -->
     <dependency>
       <groupId>org.apache.maven.scm</groupId>

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=1669964&r1=1669963&r2=1669964&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 Sun Mar 29 21:55:44 2015
@@ -26,6 +26,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Locale;
 
+import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.maven.model.Model;
 import org.apache.maven.project.MavenProject;
@@ -243,8 +244,8 @@ public class ReleaseUtil
 
         // we can safely assume case-insensitivity as we are just backtracking, not comparing. This helps with issues
         // on Windows with C: vs c:
-        workingDirectory = workingDirectory.toLowerCase( Locale.ENGLISH );
-        basedir = basedir.toLowerCase( Locale.ENGLISH );
+        workingDirectory = FilenameUtils.normalize( workingDirectory.toLowerCase( Locale.ENGLISH ) );
+        basedir = FilenameUtils.normalize( basedir.toLowerCase( Locale.ENGLISH ) );
 
         // MRELEASE-663
         // For Windows is does matter if basedir ends with a file-separator or not to be able to compare.

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=1669964&r1=1669963&r2=1669964&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 Sun Mar 29 21:55:44 2015
@@ -21,6 +21,7 @@ package org.apache.maven.shared.release.
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assume.*;
 
 import java.io.File;
@@ -178,6 +179,19 @@ public class ReleaseUtilTest
     }
 
     @Test
+    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/../trunk") );
+    }
+
+    @Test
     public void testGetBaseScmUrlReturnOriginal()
         throws Exception
     {
@@ -219,34 +233,84 @@ public class ReleaseUtilTest
     }
 
     @Test
+    public void testGetBaseWorkingDirectoryParentCountSameDirectoryDotCharacter()
+    {
+        String workingDirectory = new File( "/working/directory/maven/release/." ).getAbsolutePath();
+        assertTrue( workingDirectory.contains( "." ) );
+        String basedir = new File( "/working/directory/maven/release" ).getAbsolutePath();
+        assertEquals( 0, ReleaseUtil.getBaseWorkingDirectoryParentCount( basedir, workingDirectory ) );
+
+        // finish with slash
+        workingDirectory = new File( "/working/directory/maven/release/./" ).getAbsolutePath();
+        assertTrue( workingDirectory.contains( "." ) );
+        basedir = new File( "/working/directory/maven/release" ).getAbsolutePath();
+        assertEquals( 0, ReleaseUtil.getBaseWorkingDirectoryParentCount( basedir, workingDirectory ) );
+    }
+
+    @Test
     public void testGetBaseWorkingDirectoryParentCountSubdirectory()
     {
-        String workingDirectory = "/working/directory/maven/release";
-        String basedir = "/working/directory/maven/release/maven-release-manager";
+        String workingDirectory = new File( "/working/directory/maven/release" ).getAbsolutePath();
+        String basedir = new File( "/working/directory/maven/release/maven-release-manager" ).getAbsolutePath();
         assertEquals( 0, ReleaseUtil.getBaseWorkingDirectoryParentCount( basedir, workingDirectory ) );
     }
 
     @Test
     public void testGetBaseWorkingDirectoryParentCountParentDirectory()
     {
-        String workingDirectory = "/working/directory/maven/release/maven-release-manager";
-        String basedir = "/working/directory/maven/release";
+        String workingDirectory =
+            new File( "/working/directory/maven/release/maven-release-manager" ).getAbsolutePath();
+        String basedir = new File( "/working/directory/maven/release" ).getAbsolutePath();
+        assertEquals( 1, ReleaseUtil.getBaseWorkingDirectoryParentCount( basedir, workingDirectory ) );
+    }
+
+    @Test
+    public void testGetBaseWorkingDirectoryParentCountParentDirectoryDotCharacter()
+    {
+        String workingDirectory =
+            new File( "/working/directory/maven/release/maven-release-manager/." ).getAbsolutePath();
+        assertTrue( workingDirectory.contains( "." ) );
+        String basedir = new File( "/working/directory/maven/release" ).getAbsolutePath();
+        assertEquals( 1, ReleaseUtil.getBaseWorkingDirectoryParentCount( basedir, workingDirectory ) );
+
+        // finish with slash
+        workingDirectory = new File( "/working/directory/maven/release/maven-release-manager/./" ).getAbsolutePath();
+        assertTrue( workingDirectory.contains( "." ) );
+        basedir = new File( "/working/directory/maven/release" ).getAbsolutePath();
         assertEquals( 1, ReleaseUtil.getBaseWorkingDirectoryParentCount( basedir, workingDirectory ) );
     }
 
     @Test
     public void testGetBaseWorkingDirectoryParentCountParentDirectoryMultiple()
     {
-        String workingDirectory = "/working/directory/maven/release/maven-release-manager";
-        String basedir = "/working/directory";
+        String workingDirectory =
+            new File( "/working/directory/maven/release/maven-release-manager" ).getAbsolutePath();
+        String basedir = new File( "/working/directory" ).getAbsolutePath();
+        assertEquals( 3, ReleaseUtil.getBaseWorkingDirectoryParentCount( basedir, workingDirectory ) );
+    }
+
+    @Test
+    public void testGetBaseWorkingDirectoryParentCountParentDirectoryMultipleDotCharacter()
+    {
+        String workingDirectory =
+            new File( "/working/directory/maven/release/maven-release-manager/./." ).getAbsolutePath();
+        assertTrue( workingDirectory.contains( "." ) );
+        String basedir = new File( "/working/directory" ).getAbsolutePath();
+        assertEquals( 3, ReleaseUtil.getBaseWorkingDirectoryParentCount( basedir, workingDirectory ) );
+
+        // finish with slash
+        workingDirectory = new File( "/working/directory/maven/release/maven-release-manager/././" ).getAbsolutePath();
+        assertTrue( workingDirectory.contains( "." ) );
+        basedir = new File( "/working/directory" ).getAbsolutePath();
         assertEquals( 3, ReleaseUtil.getBaseWorkingDirectoryParentCount( basedir, workingDirectory ) );
     }
 
     @Test
     public void testGetBaseWorkingDirectoryParentCountDifferentCase()
     {
-        String workingDirectory = "/Working/Directory/maven/release/maven-release-manager";
-        String basedir = "/working/directory";
+        String workingDirectory =
+            new File( "/Working/Directory/maven/release/maven-release-manager" ).getAbsolutePath();
+        String basedir = new File( "/working/directory" ).getAbsolutePath();
         assertEquals( 3, ReleaseUtil.getBaseWorkingDirectoryParentCount( basedir, workingDirectory ) );
     }
 

Modified: maven/release/trunk/pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/pom.xml?rev=1669964&r1=1669963&r2=1669964&view=diff
==============================================================================
--- maven/release/trunk/pom.xml (original)
+++ maven/release/trunk/pom.xml Sun Mar 29 21:55:44 2015
@@ -70,6 +70,9 @@
     <contributor>
       <name>John R Fallows</name>
     </contributor>
+    <contributor>
+      <name>Gertjan Gaillet</name>
+    </contributor>
   </contributors>
 
   <properties>