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 2018/03/04 20:09:47 UTC
[maven-release] branch master updated: Revert "Switch to Paths,
which are more reliable and powerful compared to Files"
This is an automated email from the ASF dual-hosted git repository.
rfscholte pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-release.git
The following commit(s) were added to refs/heads/master by this push:
new 272c626 Revert "Switch to Paths, which are more reliable and powerful compared to Files"
272c626 is described below
commit 272c626b89f8f1076d3e69a603314f12dc493a3f
Author: rfscholte <rf...@apache.org>
AuthorDate: Sun Mar 4 21:09:42 2018 +0100
Revert "Switch to Paths, which are more reliable and powerful compared to Files"
This reverts commit 52bfff25ffcccca1061000dc60395090e233d371.
---
.../release/phase/AbstractRewritePomsPhase.java | 9 +-
.../release/phase/CheckoutProjectFromScm.java | 2 +-
.../release/phase/RewritePomVersionsPhase.java | 4 +-
.../release/phase/RewritePomsForBranchPhase.java | 9 +-
.../phase/RewritePomsForDevelopmentPhase.java | 4 +-
.../release/phase/RewritePomsForReleasePhase.java | 10 +-
.../maven/shared/release/util/ReleaseUtil.java | 78 +++++++--
.../maven/shared/release/util/ReleaseUtilTest.java | 185 ++++++++++-----------
8 files changed, 169 insertions(+), 132 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 066c796..d068ce4 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
@@ -21,7 +21,6 @@ package org.apache.maven.shared.release.phase;
import java.io.File;
import java.io.IOException;
-import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -170,7 +169,7 @@ public abstract class AbstractRewritePomsPhase
List<MavenProject> reactorProjects, boolean simulate, ReleaseResult result )
throws ReleaseExecutionException, ReleaseFailureException
{
- Path commonBasedir;
+ String commonBasedir;
try
{
commonBasedir = ReleaseUtil.getCommonBasedir( reactorProjects );
@@ -190,7 +189,7 @@ public abstract class AbstractRewritePomsPhase
}
private void transformProject( MavenProject project, ReleaseDescriptor releaseDescriptor,
- ReleaseEnvironment releaseEnvironment, Path commonBasedir,
+ ReleaseEnvironment releaseEnvironment, String commonBasedir,
boolean simulate, ReleaseResult result )
throws ReleaseExecutionException, ReleaseFailureException
{
@@ -245,7 +244,7 @@ public abstract class AbstractRewritePomsPhase
}
private void transformDocument( MavenProject project, Model modelTarget, ReleaseDescriptor releaseDescriptor,
- Path commonBasedir, ScmRepository scmRepository,
+ String commonBasedir, ScmRepository scmRepository,
ReleaseResult result, boolean simulate )
throws ReleaseExecutionException, ReleaseFailureException
{
@@ -569,7 +568,7 @@ public abstract class AbstractRewritePomsPhase
protected abstract void transformScm( MavenProject project, Model modelTarget, ReleaseDescriptor releaseDescriptor,
String projectId, ScmRepository scmRepository,
- ReleaseResult result, Path commonBasedir )
+ ReleaseResult result, String commonBasedir )
throws ReleaseExecutionException;
/**
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 60f78b8..33f9537 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 ).toString();
+ basedir = ReleaseUtil.getCommonBasedir( reactorProjects );
}
catch ( IOException e )
{
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomVersionsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomVersionsPhase.java
index 2bbd7b6..0ef834e 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomVersionsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomVersionsPhase.java
@@ -19,8 +19,6 @@ package org.apache.maven.shared.release.phase;
* under the License.
*/
-import java.nio.file.Path;
-
import org.apache.maven.model.Model;
import org.apache.maven.project.MavenProject;
import org.apache.maven.scm.repository.ScmRepository;
@@ -47,7 +45,7 @@ public class RewritePomVersionsPhase
@Override
protected void transformScm( MavenProject project, Model modelTarget, ReleaseDescriptor releaseDescriptor,
String projectId, ScmRepository scmRepository, ReleaseResult result,
- Path commonBasedir )
+ String commonBasedir )
throws ReleaseExecutionException
{
// We are only updating versions no mods to scm needed
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java
index 840f89a..586e97d 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java
@@ -20,7 +20,6 @@ package org.apache.maven.shared.release.phase;
*/
import java.io.IOException;
-import java.nio.file.Path;
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.model.Model;
@@ -53,7 +52,7 @@ public class RewritePomsForBranchPhase
@Override
protected void transformScm( MavenProject project, Model modelTarget, ReleaseDescriptor releaseDescriptor,
String projectId, ScmRepository scmRepository, ReleaseResult result,
- Path commonBasedir )
+ String commonBasedir )
throws ReleaseExecutionException
{
// If SCM is null in original model, it is inherited, no mods needed
@@ -106,7 +105,7 @@ public class RewritePomsForBranchPhase
}
private boolean translateScm( MavenProject project, ReleaseDescriptor releaseDescriptor, Scm scmTarget,
- ScmRepository scmRepository, ReleaseResult relResult, Path commonBasedir )
+ ScmRepository scmRepository, ReleaseResult relResult, String commonBasedir )
throws IOException
{
ScmTranslator translator = getScmTranslators().get( scmRepository.getProvider() );
@@ -128,7 +127,9 @@ public class RewritePomsForBranchPhase
branchBase = "scm:svn:" + branchBase;
}
- Path workingDirectory = project.getBasedir().toPath().toRealPath();
+ String workingDirectory =
+ ReleaseUtil.isSymlink( project.getBasedir() ) ? project.getBasedir().getCanonicalPath()
+ : project.getBasedir().getAbsolutePath();
int count =
ReleaseUtil.getBaseWorkingDirectoryParentCount( commonBasedir, workingDirectory );
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhase.java
index 3c6aa82..eb5ff4d 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhase.java
@@ -19,8 +19,6 @@ package org.apache.maven.shared.release.phase;
* under the License.
*/
-import java.nio.file.Path;
-
import org.apache.maven.model.Model;
import org.apache.maven.model.Scm;
import org.apache.maven.project.MavenProject;
@@ -49,7 +47,7 @@ public class RewritePomsForDevelopmentPhase
@Override
protected void transformScm( MavenProject project, Model modelTarget, ReleaseDescriptor releaseDescriptor,
String projectId, ScmRepository scmRepository, ReleaseResult result,
- Path commonBasedir )
+ String commonBasedir )
throws ReleaseExecutionException
{
// If SCM is null in original model, it is inherited, no mods needed
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java
index 4e4bea4..dc774a1 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java
@@ -20,7 +20,6 @@ package org.apache.maven.shared.release.phase;
*/
import java.io.IOException;
-import java.nio.file.Path;
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.model.Model;
@@ -52,7 +51,7 @@ public class RewritePomsForReleasePhase
@Override
protected void transformScm( MavenProject project, Model modelTarget, ReleaseDescriptor releaseDescriptor,
String projectId, ScmRepository scmRepository, ReleaseResult result,
- Path commonBasedir )
+ String commonBasedir )
throws ReleaseExecutionException
{
// If SCM is null in original model, it is inherited, no mods needed
@@ -104,7 +103,7 @@ public class RewritePomsForReleasePhase
}
private boolean translateScm( MavenProject project, ReleaseDescriptor releaseDescriptor, Scm scmTarget,
- ScmRepository scmRepository, ReleaseResult relResult, Path commonBasedir )
+ ScmRepository scmRepository, ReleaseResult relResult, String commonBasedir )
throws IOException
{
ScmTranslator translator = getScmTranslators().get( scmRepository.getProvider() );
@@ -126,8 +125,9 @@ public class RewritePomsForReleasePhase
tagBase = "scm:svn:" + tagBase;
}
- Path workingDirectory = project.getBasedir().toPath().toRealPath();
-
+ String workingDirectory =
+ ReleaseUtil.isSymlink( project.getBasedir() ) ? project.getBasedir().getCanonicalPath()
+ : project.getBasedir().getAbsolutePath();
int count =
ReleaseUtil.getBaseWorkingDirectoryParentCount( commonBasedir, workingDirectory );
if ( scm.getConnection() != null )
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 587a50c..00f2c1e 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
@@ -26,7 +26,9 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;
+import java.util.Locale;
+import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.maven.model.Model;
import org.apache.maven.project.MavenProject;
@@ -40,6 +42,7 @@ import org.codehaus.plexus.interpolation.ObjectBasedValueSource;
import org.codehaus.plexus.interpolation.PrefixAwareRecursionInterceptor;
import org.codehaus.plexus.interpolation.PrefixedObjectValueSource;
import org.codehaus.plexus.interpolation.StringSearchInterpolator;
+import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.ReaderFactory;
@@ -55,6 +58,8 @@ 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.
*/
@@ -167,7 +172,7 @@ public class ReleaseUtil
List<MavenProject> reactorProjects )
throws ReleaseExecutionException
{
- Path basedir;
+ String basedir;
try
{
basedir = getCommonBasedir( reactorProjects );
@@ -180,37 +185,82 @@ public class ReleaseUtil
int parentLevels =
getBaseWorkingDirectoryParentCount( basedir,
- Paths.get( releaseDescriptor.getWorkingDirectory() ) );
+ FileUtils.normalize( releaseDescriptor.getWorkingDirectory() ) );
String url = releaseDescriptor.getScmSourceUrl();
url = realignScmUrl( parentLevels, url );
ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
- builder.setWorkingDirectory( basedir.toFile().getAbsolutePath() );
+ builder.setWorkingDirectory( basedir );
builder.setScmSourceUrl( url );
return ReleaseUtils.buildReleaseDescriptor( builder );
}
- public static Path getCommonBasedir( List<MavenProject> reactorProjects )
+ public static String getCommonBasedir( List<MavenProject> reactorProjects )
+ throws IOException
+ {
+ return getCommonBasedir( reactorProjects, FS );
+ }
+
+ public static String getCommonBasedir( List<MavenProject> reactorProjects, String separator )
throws IOException
{
- Path basePath = reactorProjects.get( 0 ).getBasedir().toPath();
-
- for ( MavenProject reactorProject : reactorProjects )
+ String[] baseDirs = new String[reactorProjects.size()];
+ int idx = 0;
+ for ( MavenProject p : reactorProjects )
{
- Path matchPath = reactorProject.getBasedir().toPath();
- while ( !basePath.startsWith( matchPath ) )
+ 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 ) )
{
- matchPath = matchPath.getParent();
+ dir = dir + separator;
}
- basePath = matchPath;
+ baseDirs[idx++] = dir;
}
- return basePath;
+
+ String basedir = StringUtils.getCommonPrefix( baseDirs );
+
+ int separatorPos = basedir.lastIndexOf( separator );
+ if ( !basedir.endsWith( separator ) && separatorPos >= 0 )
+ {
+ basedir = basedir.substring( 0, separatorPos );
+ }
+
+ if ( basedir.endsWith( separator ) && basedir.length() > 1 )
+ {
+ basedir = basedir.substring( 0, basedir.length() - 1 );
+ }
+
+ return basedir;
}
- public static int getBaseWorkingDirectoryParentCount( final Path baseDirectory, final Path workingDirectory )
+ public static int getBaseWorkingDirectoryParentCount( String basedir, String workingDirectory )
{
- return Math.max( 0, workingDirectory.normalize().getNameCount() - baseDirectory.normalize().getNameCount() );
+ int num = 0;
+
+ // we can safely assume case-insensitivity as we are just backtracking, not comparing. This helps with issues
+ // on Windows with C: vs c:
+ 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.
+ // Using the parent of a dummy file makes it possible to compare them OS-independent
+ Path workingDirectoryFile = Paths.get( workingDirectory, ".tmp" ).getParent();
+ Path basedirFile = Paths.get( basedir, ".tmp" ).getParent();
+
+ if ( !workingDirectoryFile.equals( basedirFile ) && workingDirectory.startsWith( basedir ) )
+ {
+ do
+ {
+ workingDirectoryFile = workingDirectoryFile.getParent();
+ num++;
+ }
+ while ( !workingDirectoryFile.equals( basedirFile ) );
+ }
+ return num;
}
public static String realignScmUrl( int parentLevels, String url )
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 3cdb7e4..6b063c9 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
@@ -25,8 +25,6 @@ import static org.junit.Assert.assertTrue;
import static org.junit.Assume.*;
import java.io.File;
-import java.nio.file.Path;
-import java.nio.file.Paths;
import java.util.Arrays;
import java.util.Collections;
@@ -52,129 +50,122 @@ public class ReleaseUtilTest
@Test
public void testGetCommonBasedirSingleProject() throws Exception
{
- assertEquals( Paths.get( "/working/directory/flat-multi-module/project" ),
- ReleaseUtil.getCommonBasedir( Collections.singletonList( createProject( "/working/directory/flat-multi-module/project" ) ) ) );
+ assertEquals( "/working/directory/flat-multi-module/project", ReleaseUtil.getCommonBasedir(
+ Collections.singletonList( createProject( "/working/directory/flat-multi-module/project" ) ), "/" ) );
}
@Test
public void testGetCommonBasedirSingleProjectWindows() throws Exception
{
- assertEquals( Paths.get( "C:\\working\\directory\\flat-multi-module\\project" ),
- ReleaseUtil.getCommonBasedir( Collections.singletonList( createProject( "C:\\working\\directory\\flat-multi-module\\project" ) ) ) );
+ assertEquals( "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( Paths.get( "/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( "/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" )} ), "/" ) );
}
@Test
public void testGetCommonBasedirOfFlatMultiModuleWindows()
throws Exception
{
- assertEquals( Paths.get( "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( "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" )} ), "\\" ) );
}
@Test
public void testGetCommonBasedirUppercaseLowerCaseWindows()
throws Exception
{
- assertEquals( Paths.get( "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( "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" )} ), "\\" ) );
}
@Test
public void testGetCommonBasedirOfFlatMultiModuleSimilarArtifactIds()
throws Exception
{
- assertEquals( Paths.get( "/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( "/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" )} ), "/" ) );
}
@Test
public void testGetCommonBasedirOfFlatMultiModuleSimilarArtifactIdsWindows()
throws Exception
{
- assertEquals( Paths.get( "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( "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" )} ), "\\" ) );
}
@Test
public void testGetCommonBasedirOfRegularMultiModule()
throws Exception
{
- assertEquals( Paths.get( "/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( "/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" )} ), "/" ) );
}
@Test
public void testGetCommonBasedirOfRegularMultiModuleParentNotBeeingFirstInReactor()
throws Exception
{
- assertEquals( Paths.get( "/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( "/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" )} ), "/" ) );
}
@Test
public void testGetCommonBasedirOfRegularMultiModuleWindowsPath()
throws Exception
{
- assertEquals( Paths.get( "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( "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" )} ), "\\" ) );
}
@Test
public void testGetCommonBasedirOfFlatMultiModuleWithMultipleLevels()
throws Exception
{
- assertEquals( Paths.get( "/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( "/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" )} ), "/" ) );
}
@Test
public void testGetCommonBasedirOfFlatMultiModuleWithDescendingHierarchy()
throws Exception
{
- assertEquals( Paths.get( "/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( "/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" )} ), "/" ) );
}
@Test
@@ -241,90 +232,90 @@ public class ReleaseUtilTest
@Test
public void testGetBaseWorkingDirectoryParentCountSameDirectory()
{
- Path workingDirectory = Paths.get( "/working/directory/maven/release" );
- Path basedir = Paths.get( "/working/directory/maven/release" );
+ String workingDirectory = "/working/directory/maven/release";
+ String basedir = "/working/directory/maven/release";
assertEquals( 0, ReleaseUtil.getBaseWorkingDirectoryParentCount( basedir, workingDirectory ) );
}
@Test
public void testGetBaseWorkingDirectoryParentCountSameDirectoryDotCharacter()
{
- Path workingDirectory = Paths.get( "/working/directory/maven/release/." ).toAbsolutePath();
- assertTrue( workingDirectory.toString().contains( "." ) );
- Path basedir = Paths.get( "/working/directory/maven/release" ).toAbsolutePath();
+ 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 = Paths.get( "/working/directory/maven/release/./" ).toAbsolutePath();
- assertTrue( workingDirectory.toString().contains( "." ) );
- basedir = Paths.get( "/working/directory/maven/release" ).toAbsolutePath();
+ 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()
{
- Path workingDirectory = Paths.get( "/working/directory/maven/release" ).toAbsolutePath();
- Path basedir = Paths.get( "/working/directory/maven/release/maven-release-manager" ).toAbsolutePath();
+ 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()
{
- Path workingDirectory =
- Paths.get( "/working/directory/maven/release/maven-release-manager" ).toAbsolutePath();
- Path basedir = Paths.get( "/working/directory/maven/release" ).toAbsolutePath();
+ 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()
{
- Path workingDirectory =
- Paths.get( "/working/directory/maven/release/maven-release-manager/." ).toAbsolutePath();
- assertTrue( workingDirectory.toString().contains( "." ) );
- Path basedir = Paths.get( "/working/directory/maven/release" ).toAbsolutePath();
+ 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 = Paths.get( "/working/directory/maven/release/maven-release-manager/./" ).toAbsolutePath();
- assertTrue( workingDirectory.toString().contains( "." ) );
- basedir = Paths.get( "/working/directory/maven/release" ).toAbsolutePath();
+ 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()
{
- Path workingDirectory =
- Paths.get( "/working/directory/maven/release/maven-release-manager" ).toAbsolutePath();
- Path basedir = Paths.get( "/working/directory" ).toAbsolutePath();
+ 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()
{
- Path workingDirectory =
- Paths.get( "/working/directory/maven/release/maven-release-manager/./." ).toAbsolutePath();
- assertTrue( workingDirectory.toString().contains( "." ) );
- Path basedir = Paths.get( "/working/directory" ).toAbsolutePath();
+ 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 = Paths.get( "/working/directory/maven/release/maven-release-manager/././" ).toAbsolutePath();
- assertTrue( workingDirectory.toString().contains( "." ) );
- basedir = Paths.get( "/working/directory" ).toAbsolutePath();
+ 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()
{
- Path workingDirectory =
- Paths.get( "/Working/Directory/maven/release/maven-release-manager" ).toAbsolutePath();
- Path basedir = Paths.get( "/working/directory" ).toAbsolutePath();
+ 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 ) );
}
@@ -336,10 +327,10 @@ public class ReleaseUtilTest
{
assumeTrue( Os.isFamily( Os.FAMILY_WINDOWS ) );
- assertEquals( 2, ReleaseUtil.getBaseWorkingDirectoryParentCount( Paths.get( "C:" ), Paths.get( "C:\\working\\directory" ) ) );
- assertEquals( 2, ReleaseUtil.getBaseWorkingDirectoryParentCount( Paths.get( "C:" ), Paths.get( "C:\\working\\directory\\" ) ) );
- assertEquals( 2, ReleaseUtil.getBaseWorkingDirectoryParentCount( Paths.get( "C:\\" ), Paths.get( "C:\\working\\directory" ) ) );
- assertEquals( 2, ReleaseUtil.getBaseWorkingDirectoryParentCount( Paths.get( "C:\\" ), Paths.get( "C:\\working\\directory\\" ) ) );
+ assertEquals( 2, ReleaseUtil.getBaseWorkingDirectoryParentCount( "C:", "C:\\working\\directory" ) );
+ assertEquals( 2, ReleaseUtil.getBaseWorkingDirectoryParentCount( "C:", "C:\\working\\directory\\" ) );
+ assertEquals( 2, ReleaseUtil.getBaseWorkingDirectoryParentCount( "C:\\", "C:\\working\\directory" ) );
+ assertEquals( 2, ReleaseUtil.getBaseWorkingDirectoryParentCount( "C:\\", "C:\\working\\directory\\" ) );
}
private static MavenProject createProject( String basedir )
--
To stop receiving notification emails like this one, please contact
rfscholte@apache.org.