Author: bentmann Date: Fri Jan 30 19:56:50 2009 New Revision: 739394 URL: http://svn.apache.org/viewvc?rev=739394&view=rev Log: [MNG-3951] Hide drive-relative paths from plugins
o Merged from r739385 Modified: maven/components/branches/maven-2.0.x/ (props changed) maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java maven/components/branches/maven-2.0.x/maven-settings/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java Propchange: maven/components/branches/maven-2.0.x/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Jan 30 19:56:50 2009 @@ -1,3 +1,3 @@ /maven/components/branches/maven-2.0.10-RC:708790-728809,728834 -/maven/components/branches/maven-2.1.x:720038,727670,727762,727868,728933,728937,738723,738753 +/maven/components/branches/maven-2.1.x:720038,727670,727762,727868,728933,728937,738723,738753,739385 /maven/components/trunk:720001,721902,726845,729292 Modified: maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java?rev=739394&r1=739393&r2=739394&view=diff ============================================================================== --- maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java (original) +++ maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java Fri Jan 30 19:56:50 2009 @@ -153,6 +153,14 @@ EventDispatcher eventDispatcher = new DefaultEventDispatcher(); + // Make sure the Maven home directory is an absolute path to save us from confusion with say drive-relative + // Windows paths. + String mavenHome = System.getProperty( "maven.home" ); + if ( mavenHome != null ) + { + System.setProperty( "maven.home", new File( mavenHome ).getAbsolutePath() ); + } + // ---------------------------------------------------------------------- // Now that we have everything that we need we will fire up plexus and // bring the maven component to life for use. Modified: maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java?rev=739394&r1=739393&r2=739394&view=diff ============================================================================== --- maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java (original) +++ maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java Fri Jan 30 19:56:50 2009 @@ -31,7 +31,6 @@ public class DefaultPathTranslator implements PathTranslator { - private String FILE_SEPARATOR = "/"; public void alignToBaseDirectory( Model model, File basedir ) { @@ -79,10 +78,27 @@ public String alignToBaseDirectory( String path, File basedir ) { + if ( path == null ) + { + return null; + } + String s = stripBasedirToken( path ); - if ( requiresBaseDirectoryAlignment( s ) ) + File file = new File( s ); + if ( file.isAbsolute() ) + { + // path was already absolute, just normalize file separator and we're done + s = file.getPath(); + } + else if ( file.getPath().startsWith( File.separator ) ) { + // drive-relative Windows path, don't align with project directory but with drive root + s = file.getAbsolutePath(); + } + else + { + // an ordinary relative path, align with project directory s = new File( new File( basedir, s ).toURI().normalize() ).getAbsolutePath(); } @@ -114,25 +130,6 @@ return s; } - private boolean requiresBaseDirectoryAlignment( String s ) - { - if ( s != null ) - { - File f = new File( s ); - - if ( s.startsWith( FILE_SEPARATOR ) || f.isAbsolute() ) - { - return false; - } - else - { - return true; - } - } - - return false; - } - public void unalignFromBaseDirectory( Model model, File basedir ) { Build build = model.getBuild(); Modified: maven/components/branches/maven-2.0.x/maven-settings/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-settings/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java?rev=739394&r1=739393&r2=739394&view=diff ============================================================================== --- maven/components/branches/maven-2.0.x/maven-settings/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java (original) +++ maven/components/branches/maven-2.0.x/maven-settings/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java Fri Jan 30 19:56:50 2009 @@ -226,6 +226,13 @@ localRepository = new File( mavenUserConfigurationDirectory, "repository" ).getAbsolutePath(); } + // for the special case of a drive-relative Windows path, make sure it's absolute to save plugins from trouble + File file = new File( localRepository ); + if ( !file.isAbsolute() && file.getPath().startsWith( File.separator ) ) + { + localRepository = file.getAbsolutePath(); + } + userSettings.setLocalRepository( localRepository ); }