You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/01/30 20:56:50 UTC

svn commit: r739394 - in /maven/components/branches/maven-2.0.x: ./ maven-core/src/main/java/org/apache/maven/cli/ maven-project/src/main/java/org/apache/maven/project/path/ maven-settings/src/main/java/org/apache/maven/settings/

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 );
     }