You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2010/09/30 08:42:52 UTC
svn commit: r1002953 - 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: brett
Date: Thu Sep 30 06:42:52 2010
New Revision: 1002953
URL: http://svn.apache.org/viewvc?rev=1002953&view=rev
Log:
[MRELEASE-536] CommonBasedir Calculation fails on windows
Submitted by: Matthias Vach
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=1002953&r1=1002952&r2=1002953&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 Thu Sep 30 06:42:52 2010
@@ -24,6 +24,7 @@ import java.io.IOException;
import java.io.Reader;
import java.util.Iterator;
import java.util.List;
+import java.util.Locale;
import org.apache.commons.lang.StringUtils;
import org.apache.maven.project.MavenProject;
@@ -193,6 +194,16 @@ public class ReleaseUtil
// we can only normalize paths with /
String dir = FileUtils.normalize( p.getBasedir().getPath().replace( '\\', '/' ) );
+ if ( separator == '\\' )
+ {
+ // windows has case insensitive filesystem
+ // normalize to lowercase for comparison
+
+ // Not a comprehensive solution to case-insensitive filenames, but only seem to be getting bitten by
+ // C: vs c: as the rest of the path is being returned consistently. Overall this class should rely more
+ // on the Java IO classes instead of string parsing to avoid these issues.
+ dir = dir.toLowerCase();
+ }
// always end in / so that we know what is a path and what is a partial directory name in the next call
if ( !dir.endsWith( "/" ) )
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=1002953&r1=1002952&r2=1002953&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 Thu Sep 30 06:42:52 2010
@@ -72,6 +72,14 @@ public class ReleaseUtilTest
createProject( "c:\\working\\directory\\flat-multi-module\\webapp" )} ), '\\' ) );
}
+ public void testGetCommonBasedirUppercaseLowerCaseWindows()
+ throws Exception
+ {
+ assertEquals( "c:\\working\\root", ReleaseUtil.getCommonBasedir( Arrays.asList(
+ new MavenProject[]{createProject( "c:\\working\\root" ), createProject( "C:\\WoRkInG\\root\\project1" ),
+ createProject( "c:\\working\\root\\project2" )} ), '\\' ) );
+ }
+
public void testGetCommonBasedirOfFlatMultiModuleSimilarArtifactIds()
throws Exception
{