This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a commit to branch Paths
in repository https://gitbox.apache.org/repos/asf/maven-release.git

commit 1103fa2f84579222c59be3508d5b6b08d29d1829
Author: rfscholte <[email protected]>
AuthorDate: Sat Mar 17 18:59:33 2018 +0100

    Start using Path
---
 .../release/phase/AbstractRewritePomsPhase.java    |   2 +-
 .../release/phase/CheckoutProjectFromScm.java      |   2 +-
 .../maven/shared/release/util/ReleaseUtil.java     |  44 +++-----
 .../maven/shared/release/util/ReleaseUtilTest.java | 117 ++++++++++++---------
 4 files changed, 80 insertions(+), 85 deletions(-)

diff --git 
a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
 
b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
index 2a58da6..ebbce14 100644
--- 
a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
+++ 
b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
@@ -170,7 +170,7 @@ public abstract class AbstractRewritePomsPhase
         String commonBasedir;
         try
         {
-            commonBasedir = ReleaseUtil.getCommonBasedir( reactorProjects );
+            commonBasedir = ReleaseUtil.getCommonBasedir( reactorProjects 
).toString();
         }
         catch ( IOException e )
         {
diff --git 
a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScm.java
 
b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScm.java
index 33f9537..60f78b8 100644
--- 
a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScm.java
+++ 
b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScm.java
@@ -224,7 +224,7 @@ public class CheckoutProjectFromScm
             String basedir;
             try
             {
-                basedir = ReleaseUtil.getCommonBasedir( reactorProjects );
+                basedir = ReleaseUtil.getCommonBasedir( reactorProjects 
).toString();
             }
             catch ( IOException e )
             {
diff --git 
a/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java
 
b/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java
index 00f2c1e..1857adb 100644
--- 
a/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java
+++ 
b/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java
@@ -58,8 +58,6 @@ public class ReleaseUtil
     @SuppressWarnings( "checkstyle:constantname" )
     public static final String POMv4 = "pom.xml";
 
-    private static final String FS = File.separator;
-
     /**
      * The line separator to use.
      */
@@ -175,7 +173,7 @@ public class ReleaseUtil
         String basedir;
         try
         {
-            basedir = getCommonBasedir( reactorProjects );
+            basedir = getCommonBasedir( reactorProjects ).toString();
         }
         catch ( IOException e )
         {
@@ -196,44 +194,28 @@ public class ReleaseUtil
         return ReleaseUtils.buildReleaseDescriptor( builder );
     }
 
-    public static String getCommonBasedir( List<MavenProject> reactorProjects )
+    public static Path getCommonBasedir( List<MavenProject> reactorProjects )
         throws IOException
     {
-        return getCommonBasedir( reactorProjects, FS );
+        return getCommonBasedir( reactorProjects, null );
     }
 
-    public static String getCommonBasedir( List<MavenProject> reactorProjects, 
String separator )
+    public static Path getCommonBasedir( List<MavenProject> reactorProjects, 
String separator )
         throws IOException
     {
-        String[] baseDirs = new String[reactorProjects.size()];
-        int idx = 0;
-        for ( MavenProject p : reactorProjects )
+        Path basePath = reactorProjects.get( 0 ).getBasedir().toPath();
+        
+        for ( MavenProject reactorProject : reactorProjects )
         {
-            String dir = p.getBasedir().getCanonicalPath();
-
-            // always end with separator so that we know what is a path and 
what is a partial directory name in the
-            // next call
-            if ( !dir.endsWith( separator ) )
+            Path matchPath = reactorProject.getBasedir().toPath();
+            while ( !basePath.startsWith( matchPath ) )
             {
-                dir = dir + separator;
+                matchPath = matchPath.getParent();
             }
-            baseDirs[idx++] = dir;
-        }
-
-        String basedir = StringUtils.getCommonPrefix( baseDirs );
-
-        int separatorPos = basedir.lastIndexOf( separator );
-        if ( !basedir.endsWith( separator ) && separatorPos >= 0 )
-        {
-            basedir = basedir.substring( 0, separatorPos );
+            basePath = matchPath;
         }
-
-        if ( basedir.endsWith( separator ) && basedir.length() > 1 )
-        {
-            basedir = basedir.substring( 0, basedir.length() - 1 );
-        }
-
-        return basedir;
+        
+        return basePath;
     }
 
     public static int getBaseWorkingDirectoryParentCount( String basedir, 
String workingDirectory )
diff --git 
a/maven-release-manager/src/test/java/org/apache/maven/shared/release/util/ReleaseUtilTest.java
 
b/maven-release-manager/src/test/java/org/apache/maven/shared/release/util/ReleaseUtilTest.java
index 6b063c9..d95fa85 100644
--- 
a/maven-release-manager/src/test/java/org/apache/maven/shared/release/util/ReleaseUtilTest.java
+++ 
b/maven-release-manager/src/test/java/org/apache/maven/shared/release/util/ReleaseUtilTest.java
@@ -22,9 +22,10 @@ package org.apache.maven.shared.release.util;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
-import static org.junit.Assume.*;
+import static org.junit.Assume.assumeTrue;
 
 import java.io.File;
+import java.nio.file.Paths;
 import java.util.Arrays;
 import java.util.Collections;
 
@@ -50,122 +51,134 @@ public class ReleaseUtilTest
     @Test
     public void testGetCommonBasedirSingleProject() throws Exception
     {
-        assertEquals( "/working/directory/flat-multi-module/project", 
ReleaseUtil.getCommonBasedir(
-            Collections.singletonList( createProject( 
"/working/directory/flat-multi-module/project" ) ), "/" ) );
+        assertEquals( Paths.get( 
"/working/directory/flat-multi-module/project" ),
+                      ReleaseUtil.getCommonBasedir( Collections.singletonList( 
createProject( "/working/directory/flat-multi-module/project" ) ),
+                                                    "/" ) );
     }
 
     @Test
     public void testGetCommonBasedirSingleProjectWindows() throws Exception
     {
-        assertEquals( "C:\\working\\directory\\flat-multi-module\\project", 
ReleaseUtil.getCommonBasedir(
-            Collections.singletonList( createProject( 
"C:\\working\\directory\\flat-multi-module\\project" ) ),
-            "\\" ) );
+        assertEquals( Paths.get( 
"C:\\working\\directory\\flat-multi-module\\project" ),
+                      ReleaseUtil.getCommonBasedir( Collections.singletonList( 
createProject( "C:\\working\\directory\\flat-multi-module\\project" ) ),
+                                                    "\\" ) );
     }
 
     @Test
     public void testGetCommonBasedirOfFlatMultiModule()
         throws Exception
     {
-        assertEquals( "/working/directory/flat-multi-module", 
ReleaseUtil.getCommonBasedir( Arrays.asList(
-            new MavenProject[]{createProject( 
"/working/directory/flat-multi-module/root-project" ),
-                createProject( "/working/directory/flat-multi-module/core" ),
-                createProject( "/working/directory/flat-multi-module/webapp" 
)} ), "/" ) );
+        assertEquals( Paths.get( "/working/directory/flat-multi-module" ),
+                      ReleaseUtil.getCommonBasedir( Arrays.asList( 
createProject( "/working/directory/flat-multi-module/root-project" ),
+                                                                   
createProject( "/working/directory/flat-multi-module/core" ),
+                                                                   
createProject( "/working/directory/flat-multi-module/webapp" ) ),
+                                                    "/" ) );
     }
 
     @Test
     public void testGetCommonBasedirOfFlatMultiModuleWindows()
         throws Exception
     {
-        assertEquals( "C:\\working\\directory\\flat-multi-module", 
ReleaseUtil.getCommonBasedir( Arrays.asList(
-            new MavenProject[]{createProject( 
"C:\\working\\directory\\flat-multi-module\\root-project" ),
-                createProject( 
"C:\\working\\directory\\flat-multi-module\\core" ),
-                createProject( 
"C:\\working\\directory\\flat-multi-module\\webapp" )} ), "\\" ) );
+        assertEquals( Paths.get( "C:\\working\\directory\\flat-multi-module" ),
+                      ReleaseUtil.getCommonBasedir( Arrays.asList( 
createProject( "C:\\working\\directory\\flat-multi-module\\root-project" ),
+                                                                   
createProject( "C:\\working\\directory\\flat-multi-module\\core" ),
+                                                                   
createProject( "C:\\working\\directory\\flat-multi-module\\webapp" ) ),
+                                                    "\\" ) );
     }
 
     @Test
     public void testGetCommonBasedirUppercaseLowerCaseWindows()
         throws Exception
     {
-        assertEquals( "C:\\WORKING\\root", ReleaseUtil.getCommonBasedir( 
Arrays.asList(
-            new MavenProject[]{createProject( "c:\\WORKING\\root", 
"C:\\WORKING\\root" ),
-                createProject( "c:\\working\\root\\project1", 
"C:\\WORKING\\root\\project1" ),
-                createProject( "C:\\WORKING\\root\\project2", 
"C:\\WORKING\\root\\project2" )} ), "\\" ) );
+        assertEquals( Paths.get( "C:\\WORKING\\root" ),
+                      ReleaseUtil.getCommonBasedir( Arrays.asList( 
createProject( "c:\\WORKING\\root",
+                                                                               
   "C:\\WORKING\\root" ),
+                                                                   
createProject( "c:\\working\\root\\project1",
+                                                                               
   "C:\\WORKING\\root\\project1" ),
+                                                                   
createProject( "C:\\WORKING\\root\\project2",
+                                                                               
   "C:\\WORKING\\root\\project2" ) ),
+                                                    "\\" ) );
     }
 
     @Test
     public void testGetCommonBasedirOfFlatMultiModuleSimilarArtifactIds()
         throws Exception
     {
-        assertEquals( "/working/directory/flat-multi-module", 
ReleaseUtil.getCommonBasedir( Arrays.asList(
-            new MavenProject[]{createProject( 
"/working/directory/flat-multi-module/release-parent" ),
-                createProject( 
"/working/directory/flat-multi-module/release-module1" ),
-                createProject( 
"/working/directory/flat-multi-module/release-module2" )} ), "/" ) );
+        assertEquals( Paths.get( "/working/directory/flat-multi-module" ),
+                      ReleaseUtil.getCommonBasedir( Arrays.asList( 
createProject( "/working/directory/flat-multi-module/release-parent" ),
+                                                                   
createProject( "/working/directory/flat-multi-module/release-module1" ),
+                                                                   
createProject( "/working/directory/flat-multi-module/release-module2" ) ),
+                                                    "/" ) );
     }
 
     @Test
     public void 
testGetCommonBasedirOfFlatMultiModuleSimilarArtifactIdsWindows()
         throws Exception
     {
-        assertEquals( "c:\\working\\directory\\flat-multi-module", 
ReleaseUtil.getCommonBasedir( Arrays.asList(
-            new MavenProject[]{createProject( 
"c:\\working\\directory\\flat-multi-module\\release-parent" ),
-                createProject( 
"c:\\working\\directory\\flat-multi-module\\release-module1" ),
-                createProject( 
"c:\\working\\directory\\flat-multi-module\\release-module2" )} ), "\\" ) );
+        assertEquals( Paths.get( "c:\\working\\directory\\flat-multi-module" ),
+                      ReleaseUtil.getCommonBasedir( Arrays.asList( 
createProject( "c:\\working\\directory\\flat-multi-module\\release-parent" ),
+                                                                   
createProject( "c:\\working\\directory\\flat-multi-module\\release-module1" ),
+                                                                   
createProject( "c:\\working\\directory\\flat-multi-module\\release-module2" ) ),
+                                                    "\\" ) );
     }
 
     @Test
     public void testGetCommonBasedirOfRegularMultiModule()
         throws Exception
     {
-        assertEquals( "/working/directory/flat-multi-module", 
ReleaseUtil.getCommonBasedir( Arrays.asList(
-            new MavenProject[]{createProject( 
"/working/directory/flat-multi-module" ),
-                createProject( "/working/directory/flat-multi-module/core" ),
-                createProject( "/working/directory/flat-multi-module/webapp" 
)} ), "/" ) );
+        assertEquals( Paths.get( "/working/directory/flat-multi-module" ),
+                      ReleaseUtil.getCommonBasedir( Arrays.asList( 
createProject( "/working/directory/flat-multi-module" ),
+                                                                   
createProject( "/working/directory/flat-multi-module/core" ),
+                                                                   
createProject( "/working/directory/flat-multi-module/webapp" ) ),
+                                                    "/" ) );
     }
 
     @Test
     public void 
testGetCommonBasedirOfRegularMultiModuleParentNotBeeingFirstInReactor()
         throws Exception
     {
-        assertEquals( "/working/directory/flat-multi-module", 
ReleaseUtil.getCommonBasedir( Arrays.asList(
-            new MavenProject[]{
-                createProject( "/working/directory/flat-multi-module/core" ),
-                createProject( "/working/directory/flat-multi-module" ),
-                createProject( "/working/directory/flat-multi-module/webapp" 
)} ), "/" ) );
+        assertEquals( Paths.get( "/working/directory/flat-multi-module" ),
+                      ReleaseUtil.getCommonBasedir( Arrays.asList( 
createProject( "/working/directory/flat-multi-module/core" ),
+                                                                   
createProject( "/working/directory/flat-multi-module" ),
+                                                                   
createProject( "/working/directory/flat-multi-module/webapp" ) ),
+                                                    "/" ) );
     }
 
     @Test
     public void testGetCommonBasedirOfRegularMultiModuleWindowsPath()
         throws Exception
     {
-        assertEquals( "c:\\working\\directory\\flat-multi-module", 
ReleaseUtil.getCommonBasedir( Arrays.asList(
-            new MavenProject[]{
-                createProject( 
"c:\\working\\directory\\flat-multi-module\\core" ),
-                createProject( "c:\\working\\directory\\flat-multi-module" ),
-                createProject( 
"c:\\working\\directory\\flat-multi-module\\webapp" )} ), "\\" ) );
+        assertEquals( Paths.get( "c:\\working\\directory\\flat-multi-module" ),
+                      ReleaseUtil.getCommonBasedir( Arrays.asList( 
createProject( "c:\\working\\directory\\flat-multi-module\\core" ),
+                                                                   
createProject( "c:\\working\\directory\\flat-multi-module" ),
+                                                                   
createProject( "c:\\working\\directory\\flat-multi-module\\webapp" ) ),
+                                                    "\\" ) );
     }
 
     @Test
     public void testGetCommonBasedirOfFlatMultiModuleWithMultipleLevels()
         throws Exception
     {
-        assertEquals( "/working/directory/flat-multi-module", 
ReleaseUtil.getCommonBasedir( Arrays.asList(
-            new MavenProject[]{createProject( 
"/working/directory/flat-multi-module/root-project" ),
-                createProject( "/working/directory/flat-multi-module/core" ),
-                createProject( 
"/working/directory/flat-multi-module/common/utils" ),
-                createProject( 
"/working/directory/flat-multi-module/common/xml" ),
-                createProject( "/working/directory/flat-multi-module/webapp" 
)} ), "/" ) );
+        assertEquals( Paths.get( "/working/directory/flat-multi-module" ),
+                      ReleaseUtil.getCommonBasedir( Arrays.asList( 
createProject( "/working/directory/flat-multi-module/root-project" ),
+                                                                   
createProject( "/working/directory/flat-multi-module/core" ),
+                                                                   
createProject( "/working/directory/flat-multi-module/common/utils" ),
+                                                                   
createProject( "/working/directory/flat-multi-module/common/xml" ),
+                                                                   
createProject( "/working/directory/flat-multi-module/webapp" ) ),
+                                                    "/" ) );
     }
 
     @Test
     public void testGetCommonBasedirOfFlatMultiModuleWithDescendingHierarchy()
         throws Exception
     {
-        assertEquals( "/working/directory/flat-multi-module", 
ReleaseUtil.getCommonBasedir( Arrays.asList(
-            new MavenProject[]{createProject( 
"/working/directory/flat-multi-module/level/1/2/3" ),
-                createProject( 
"/working/directory/flat-multi-module/level/1/2" ),
-                createProject( "/working/directory/flat-multi-module/level/1" 
),
-                createProject( "/working/directory/flat-multi-module/level" ),
-                createProject( "/working/directory/flat-multi-module/other" )} 
), "/" ) );
+        assertEquals( Paths.get( "/working/directory/flat-multi-module" ),
+                      ReleaseUtil.getCommonBasedir( Arrays.asList( 
createProject( "/working/directory/flat-multi-module/level/1/2/3" ),
+                                                                   
createProject( "/working/directory/flat-multi-module/level/1/2" ),
+                                                                   
createProject( "/working/directory/flat-multi-module/level/1" ),
+                                                                   
createProject( "/working/directory/flat-multi-module/level" ),
+                                                                   
createProject( "/working/directory/flat-multi-module/other" ) ),
+                                                    "/" ) );
     }
 
     @Test

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to