Author: bentmann
Date: Mon Jun  1 15:55:41 2009
New Revision: 780698

URL: http://svn.apache.org/viewvc?rev=780698&view=rev
Log:
o Resurrected the path translator component (on this occasion, splitting it to 
separate the single path translation from the model translation)

Added:
    
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/
      - copied from r780621, 
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path/
    
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelPathTranslator.java
      - copied, changed from r780621, 
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java
    
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/ModelPathTranslator.java
      - copied, changed from r780621, 
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path/PathTranslator.java
Modified:
    
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java
    
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path/PathTranslator.java
    
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/DefaultInterpolator.java
    
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultPathTranslator.java
    
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/PathTranslator.java

Modified: 
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java?rev=780698&r1=780697&r2=780698&view=diff
==============================================================================
--- 
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java
 (original)
+++ 
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java
 Mon Jun  1 15:55:41 2009
@@ -30,6 +30,7 @@
 import org.apache.maven.model.Resource;
 import org.codehaus.plexus.component.annotations.Component;
 
+...@deprecated
 @Component(role = PathTranslator.class)
 public class DefaultPathTranslator
     implements PathTranslator

Modified: 
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path/PathTranslator.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path/PathTranslator.java?rev=780698&r1=780697&r2=780698&view=diff
==============================================================================
--- 
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path/PathTranslator.java
 (original)
+++ 
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path/PathTranslator.java
 Mon Jun  1 15:55:41 2009
@@ -27,6 +27,7 @@
  * @author Jason van Zyl
  * @version $Id$
  */
+...@deprecated
 public interface PathTranslator
 {
     String ROLE = PathTranslator.class.getName();

Modified: 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/DefaultInterpolator.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/DefaultInterpolator.java?rev=780698&r1=780697&r2=780698&view=diff
==============================================================================
--- 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/DefaultInterpolator.java
 (original)
+++ 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/DefaultInterpolator.java
 Mon Jun  1 15:55:41 2009
@@ -21,12 +21,10 @@
 import java.util.Set;
 import java.util.Map.Entry;
 
-import org.apache.maven.model.Build;
 import org.apache.maven.model.Model;
-import org.apache.maven.model.Reporting;
-import org.apache.maven.model.Resource;
 import org.apache.maven.model.io.ModelReader;
 import org.apache.maven.model.io.ModelWriter;
+import org.apache.maven.model.path.ModelPathTranslator;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.util.IOUtil;
@@ -46,6 +44,9 @@
     @Requirement
     private ModelWriter modelWriter;
 
+    @Requirement
+    private ModelPathTranslator modelPathTranslator;
+
     public Model interpolateModel( Model model, Properties properties, File 
projectDirectory )
         throws IOException
     {
@@ -191,10 +192,7 @@
         {
             String xml = unmarshalModelPropertiesToXml( modelProperties, 
ProjectUri.baseUri );
             Model m = modelReader.read( new StringReader( xml ), null );
-            if ( projectDirectory != null )
-            {
-                alignPaths( m, projectDirectory );
-            }
+            modelPathTranslator.alignToBaseDirectory( m, projectDirectory );
             return m;
         }
         catch ( IOException e )
@@ -203,75 +201,6 @@
         }
     }
 
-    /**
-     * Post-processes the paths of build directories by aligning relative 
paths to the project
-     * directory and normalizing file separators to the platform-specific 
separator.
-     * 
-     * @param model The model to process, must not be {...@code null}.
-     * @param basedir The project directory, must not be {...@code null}.
-     */
-    private static void alignPaths( Model model, File basedir )
-    {
-        Build build = model.getBuild();
-        if ( build != null )
-        {
-            build.setDirectory( getAlignedPathFor( build.getDirectory(), 
basedir ) );
-            build.setOutputDirectory( getAlignedPathFor( 
build.getOutputDirectory(), basedir ) );
-            build.setTestOutputDirectory( getAlignedPathFor( 
build.getTestOutputDirectory(), basedir ) );
-            build.setSourceDirectory( getAlignedPathFor( 
build.getSourceDirectory(), basedir ) );
-            build.setTestSourceDirectory( getAlignedPathFor( 
build.getTestSourceDirectory(), basedir ) );
-            build.setScriptSourceDirectory( getAlignedPathFor( 
build.getScriptSourceDirectory(), basedir ) );
-
-            for ( Resource r : build.getResources() )
-            {
-                r.setDirectory( getAlignedPathFor( r.getDirectory(), basedir ) 
);
-            }
-
-            for ( Resource r : build.getTestResources() )
-            {
-                r.setDirectory( getAlignedPathFor( r.getDirectory(), basedir ) 
);
-            }
-
-            List<String> filters = new ArrayList<String>();
-            for ( String f : build.getFilters() )
-            {
-                filters.add( getAlignedPathFor( f, basedir ) );
-            }
-            build.setFilters( filters );
-        }
-
-        Reporting reporting = model.getReporting();
-        if ( reporting != null )
-        {
-            reporting.setOutputDirectory( getAlignedPathFor( 
reporting.getOutputDirectory(), basedir ) );
-        }
-
-    }
-
-    private static String getAlignedPathFor( String path, File basedir )
-    {
-        if ( path != null )
-        {
-            File file = new File( path );
-            if ( file.isAbsolute() )
-            {
-                // path was already absolute, just normalize file separator 
and we're done
-                path = file.getPath();
-            }
-            else if ( file.getPath().startsWith( File.separator ) )
-            {
-                // drive-relative Windows path, don't align with project 
directory but with drive root
-                path = file.getAbsolutePath();
-            }
-            else
-            {
-                // an ordinary relative path, align with project directory
-                path = new File( new File( basedir, path ).toURI().normalize() 
).getAbsolutePath();
-            }
-        }
-        return path;
-    }
-
     private static void interpolateModelProperties( List<ModelProperty> 
modelProperties, List<InterpolatorProperty> interpolatorProperties )
     {
         if ( modelProperties == null )

Copied: 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelPathTranslator.java
 (from r780621, 
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java)
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelPathTranslator.java?p2=maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelPathTranslator.java&p1=maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java&r1=780621&r2=780698&rev=780698&view=diff
==============================================================================
--- 
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java
 (original)
+++ 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelPathTranslator.java
 Mon Jun  1 15:55:41 2009
@@ -1,4 +1,4 @@
-package org.apache.maven.project.path;
+package org.apache.maven.model.path;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -21,7 +21,6 @@
 
 import java.io.File;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 
 import org.apache.maven.model.Build;
@@ -29,15 +28,28 @@
 import org.apache.maven.model.Reporting;
 import org.apache.maven.model.Resource;
 import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
 
-...@component(role = PathTranslator.class)
-public class DefaultPathTranslator
-    implements PathTranslator
+/**
+ * Resolves relative paths within a model against a specific base directory.
+ * 
+ * @author Benjamin Bentmann
+ */
+...@component( role = ModelPathTranslator.class )
+public class DefaultModelPathTranslator
+    implements ModelPathTranslator
 {
-    private static final String[] BASEDIR_EXPRESSIONS = {"${basedir}", 
"${pom.basedir}", "${project.basedir}"};
+
+    @Requirement
+    private PathTranslator pathTranslator;
 
     public void alignToBaseDirectory( Model model, File basedir )
     {
+        if ( model == null || basedir == null )
+        {
+            return;
+        }
+
         Build build = model.getBuild();
 
         if ( build != null )
@@ -48,27 +60,23 @@
 
             build.setTestSourceDirectory( alignToBaseDirectory( 
build.getTestSourceDirectory(), basedir ) );
 
-            for ( Iterator i = build.getResources().iterator(); i.hasNext(); )
-            {
-                Resource resource = (Resource) i.next();
+            build.setScriptSourceDirectory( alignToBaseDirectory( 
build.getScriptSourceDirectory(), basedir ) );
 
+            for ( Resource resource : build.getResources() )
+            {
                 resource.setDirectory( alignToBaseDirectory( 
resource.getDirectory(), basedir ) );
             }
 
-            for ( Iterator i = build.getTestResources().iterator(); 
i.hasNext(); )
+            for ( Resource resource : build.getTestResources() )
             {
-                Resource resource = (Resource) i.next();
-
                 resource.setDirectory( alignToBaseDirectory( 
resource.getDirectory(), basedir ) );
             }
 
             if ( build.getFilters() != null )
             {
-                List filters = new ArrayList();
-                for ( Iterator i = build.getFilters().iterator(); i.hasNext(); 
)
+                List<String> filters = new ArrayList<String>( 
build.getFilters().size() );
+                for ( String filter : build.getFilters() )
                 {
-                    String filter = (String) i.next();
-
                     filters.add( alignToBaseDirectory( filter, basedir ) );
                 }
                 build.setFilters( filters );
@@ -87,149 +95,9 @@
         }
     }
 
-    public String alignToBaseDirectory( String path, File basedir )
-    {
-        if ( path == null )
-        {
-            return null;
-        }
-
-        String s = stripBasedirToken( path );
-
-        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();
-        }
-
-        return s;
-    }
-
-    private String stripBasedirToken( String s )
-    {
-        if ( s != null )
-        {
-            String basedirExpr = null;
-            for ( int i = 0; i < BASEDIR_EXPRESSIONS.length; i++ )
-            {
-                basedirExpr = BASEDIR_EXPRESSIONS[i];
-                if ( s.startsWith( basedirExpr ) )
-                {
-                    break;
-                }
-                else
-                {
-                    basedirExpr = null;
-                }
-            }
-
-            if ( basedirExpr != null )
-            {
-                if ( s.length() > basedirExpr.length() )
-                {
-                    // Take out basedir expression and the leading slash
-                    s = chopLeadingFileSeparator( s.substring( 
basedirExpr.length() ) );
-                }
-                else
-                {
-                    s = ".";
-                }
-            }
-        }
-
-        return s;
-    }
-
-    /**
-     * Removes the leading directory separator from the specified filesystem 
path (if any). For platform-independent
-     * behavior, this method accepts both the forward slash and the backward 
slash as separator.
-     *
-     * @param path The filesystem path, may be <code>null</code>.
-     * @return The altered filesystem path or <code>null</code> if the input 
path was <code>null</code>.
-     */
-    private String chopLeadingFileSeparator( String path )
-    {
-        if ( path != null )
-        {
-            if ( path.startsWith( "/" ) || path.startsWith( "\\" ) )
-            {
-                path = path.substring( 1 );
-            }
-        }
-        return path;
-    }
-
-    public void unalignFromBaseDirectory( Model model, File basedir )
+    private String alignToBaseDirectory( String path, File basedir )
     {
-        Build build = model.getBuild();
-
-        if ( build != null )
-        {
-            build.setDirectory( unalignFromBaseDirectory( 
build.getDirectory(), basedir ) );
-
-            build.setSourceDirectory( unalignFromBaseDirectory( 
build.getSourceDirectory(), basedir ) );
-
-            build.setTestSourceDirectory( unalignFromBaseDirectory( 
build.getTestSourceDirectory(), basedir ) );
-
-            for ( Iterator i = build.getResources().iterator(); i.hasNext(); )
-            {
-                Resource resource = (Resource) i.next();
-
-                resource.setDirectory( unalignFromBaseDirectory( 
resource.getDirectory(), basedir ) );
-            }
-
-            for ( Iterator i = build.getTestResources().iterator(); 
i.hasNext(); )
-            {
-                Resource resource = (Resource) i.next();
-
-                resource.setDirectory( unalignFromBaseDirectory( 
resource.getDirectory(), basedir ) );
-            }
-
-            if ( build.getFilters() != null )
-            {
-                List filters = new ArrayList();
-                for ( Iterator i = build.getFilters().iterator(); i.hasNext(); 
)
-                {
-                    String filter = (String) i.next();
-
-                    filters.add( unalignFromBaseDirectory( filter, basedir ) );
-                }
-                build.setFilters( filters );
-            }
-
-            build.setOutputDirectory( unalignFromBaseDirectory( 
build.getOutputDirectory(), basedir ) );
-
-            build.setTestOutputDirectory( unalignFromBaseDirectory( 
build.getTestOutputDirectory(), basedir ) );
-        }
-
-        Reporting reporting = model.getReporting();
-
-        if ( reporting != null )
-        {
-            reporting.setOutputDirectory( unalignFromBaseDirectory( 
reporting.getOutputDirectory(), basedir ) );
-        }
-    }
-
-    public String unalignFromBaseDirectory( String directory, File basedir )
-    {
-        String path = basedir.getPath();
-        if ( directory.startsWith( path ) )
-        {
-            directory = directory.substring( path.length() + 1 ).replace( 
'\\', '/' );
-        }
-        return directory;
+        return pathTranslator.alignToBaseDirectory( path, basedir );
     }
 
 }
-

Modified: 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultPathTranslator.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultPathTranslator.java?rev=780698&r1=780621&r2=780698&view=diff
==============================================================================
--- 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultPathTranslator.java
 (original)
+++ 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultPathTranslator.java
 Mon Jun  1 15:55:41 2009
@@ -1,4 +1,4 @@
-package org.apache.maven.project.path;
+package org.apache.maven.model.path;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -20,216 +20,44 @@
  */
 
 import java.io.File;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Model;
-import org.apache.maven.model.Reporting;
-import org.apache.maven.model.Resource;
+
 import org.codehaus.plexus.component.annotations.Component;
 
-...@component(role = PathTranslator.class)
+/**
+ * Resolves relative paths against a specific base directory.
+ * 
+ * @author Benjamin Bentmann
+ */
+...@component( role = PathTranslator.class )
 public class DefaultPathTranslator
     implements PathTranslator
 {
-    private static final String[] BASEDIR_EXPRESSIONS = {"${basedir}", 
"${pom.basedir}", "${project.basedir}"};
-
-    public void alignToBaseDirectory( Model model, File basedir )
-    {
-        Build build = model.getBuild();
-
-        if ( build != null )
-        {
-            build.setDirectory( alignToBaseDirectory( build.getDirectory(), 
basedir ) );
-
-            build.setSourceDirectory( alignToBaseDirectory( 
build.getSourceDirectory(), basedir ) );
-
-            build.setTestSourceDirectory( alignToBaseDirectory( 
build.getTestSourceDirectory(), basedir ) );
-
-            for ( Iterator i = build.getResources().iterator(); i.hasNext(); )
-            {
-                Resource resource = (Resource) i.next();
-
-                resource.setDirectory( alignToBaseDirectory( 
resource.getDirectory(), basedir ) );
-            }
-
-            for ( Iterator i = build.getTestResources().iterator(); 
i.hasNext(); )
-            {
-                Resource resource = (Resource) i.next();
-
-                resource.setDirectory( alignToBaseDirectory( 
resource.getDirectory(), basedir ) );
-            }
-
-            if ( build.getFilters() != null )
-            {
-                List filters = new ArrayList();
-                for ( Iterator i = build.getFilters().iterator(); i.hasNext(); 
)
-                {
-                    String filter = (String) i.next();
-
-                    filters.add( alignToBaseDirectory( filter, basedir ) );
-                }
-                build.setFilters( filters );
-            }
-
-            build.setOutputDirectory( alignToBaseDirectory( 
build.getOutputDirectory(), basedir ) );
-
-            build.setTestOutputDirectory( alignToBaseDirectory( 
build.getTestOutputDirectory(), basedir ) );
-        }
-
-        Reporting reporting = model.getReporting();
-
-        if ( reporting != null )
-        {
-            reporting.setOutputDirectory( alignToBaseDirectory( 
reporting.getOutputDirectory(), basedir ) );
-        }
-    }
 
     public String alignToBaseDirectory( String path, File basedir )
     {
-        if ( path == null )
-        {
-            return null;
-        }
-
-        String s = stripBasedirToken( path );
+        String result = path;
 
-        File file = new File( s );
-        if ( file.isAbsolute() )
+        if ( path != null && basedir != null )
         {
-            // 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();
-        }
-
-        return s;
-    }
-
-    private String stripBasedirToken( String s )
-    {
-        if ( s != null )
-        {
-            String basedirExpr = null;
-            for ( int i = 0; i < BASEDIR_EXPRESSIONS.length; i++ )
-            {
-                basedirExpr = BASEDIR_EXPRESSIONS[i];
-                if ( s.startsWith( basedirExpr ) )
-                {
-                    break;
-                }
-                else
-                {
-                    basedirExpr = null;
-                }
-            }
-
-            if ( basedirExpr != null )
-            {
-                if ( s.length() > basedirExpr.length() )
-                {
-                    // Take out basedir expression and the leading slash
-                    s = chopLeadingFileSeparator( s.substring( 
basedirExpr.length() ) );
-                }
-                else
-                {
-                    s = ".";
-                }
-            }
-        }
-
-        return s;
-    }
-
-    /**
-     * Removes the leading directory separator from the specified filesystem 
path (if any). For platform-independent
-     * behavior, this method accepts both the forward slash and the backward 
slash as separator.
-     *
-     * @param path The filesystem path, may be <code>null</code>.
-     * @return The altered filesystem path or <code>null</code> if the input 
path was <code>null</code>.
-     */
-    private String chopLeadingFileSeparator( String path )
-    {
-        if ( path != null )
-        {
-            if ( path.startsWith( "/" ) || path.startsWith( "\\" ) )
-            {
-                path = path.substring( 1 );
-            }
-        }
-        return path;
-    }
-
-    public void unalignFromBaseDirectory( Model model, File basedir )
-    {
-        Build build = model.getBuild();
-
-        if ( build != null )
-        {
-            build.setDirectory( unalignFromBaseDirectory( 
build.getDirectory(), basedir ) );
-
-            build.setSourceDirectory( unalignFromBaseDirectory( 
build.getSourceDirectory(), basedir ) );
-
-            build.setTestSourceDirectory( unalignFromBaseDirectory( 
build.getTestSourceDirectory(), basedir ) );
-
-            for ( Iterator i = build.getResources().iterator(); i.hasNext(); )
+            File file = new File( path );
+            if ( file.isAbsolute() )
             {
-                Resource resource = (Resource) i.next();
-
-                resource.setDirectory( unalignFromBaseDirectory( 
resource.getDirectory(), basedir ) );
+                // path was already absolute, just normalize file separator 
and we're done
+                result = file.getPath();
             }
-
-            for ( Iterator i = build.getTestResources().iterator(); 
i.hasNext(); )
+            else if ( file.getPath().startsWith( File.separator ) )
             {
-                Resource resource = (Resource) i.next();
-
-                resource.setDirectory( unalignFromBaseDirectory( 
resource.getDirectory(), basedir ) );
+                // drive-relative Windows path, don't align with project 
directory but with drive root
+                result = file.getAbsolutePath();
             }
-
-            if ( build.getFilters() != null )
+            else
             {
-                List filters = new ArrayList();
-                for ( Iterator i = build.getFilters().iterator(); i.hasNext(); 
)
-                {
-                    String filter = (String) i.next();
-
-                    filters.add( unalignFromBaseDirectory( filter, basedir ) );
-                }
-                build.setFilters( filters );
+                // an ordinary relative path, align with project directory
+                result = new File( new File( basedir, path 
).toURI().normalize() ).getAbsolutePath();
             }
-
-            build.setOutputDirectory( unalignFromBaseDirectory( 
build.getOutputDirectory(), basedir ) );
-
-            build.setTestOutputDirectory( unalignFromBaseDirectory( 
build.getTestOutputDirectory(), basedir ) );
         }
 
-        Reporting reporting = model.getReporting();
-
-        if ( reporting != null )
-        {
-            reporting.setOutputDirectory( unalignFromBaseDirectory( 
reporting.getOutputDirectory(), basedir ) );
-        }
-    }
-
-    public String unalignFromBaseDirectory( String directory, File basedir )
-    {
-        String path = basedir.getPath();
-        if ( directory.startsWith( path ) )
-        {
-            directory = directory.substring( path.length() + 1 ).replace( 
'\\', '/' );
-        }
-        return directory;
+        return result;
     }
 
 }
-

Copied: 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/ModelPathTranslator.java
 (from r780621, 
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path/PathTranslator.java)
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/ModelPathTranslator.java?p2=maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/ModelPathTranslator.java&p1=maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path/PathTranslator.java&r1=780621&r2=780698&rev=780698&view=diff
==============================================================================
--- 
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/project/path/PathTranslator.java
 (original)
+++ 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/ModelPathTranslator.java
 Mon Jun  1 15:55:41 2009
@@ -1,4 +1,4 @@
-package org.apache.maven.project.path;
+package org.apache.maven.model.path;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -24,18 +24,20 @@
 import org.apache.maven.model.Model;
 
 /**
+ * Resolves relative paths of a model against a specific base directory.
+ * 
  * @author Jason van Zyl
- * @version $Id$
  */
-public interface PathTranslator
+public interface ModelPathTranslator
 {
-    String ROLE = PathTranslator.class.getName();
 
+    /**
+     * Resolves the well-known paths of the specified model against the given 
base directory. Paths within plugin
+     * configuration are not processed.
+     * 
+     * @param model The model whose paths should be resolved, may be {...@code 
null}.
+     * @param basedir The base directory to resolve relative paths against, 
may be {...@code null}.
+     */
     void alignToBaseDirectory( Model model, File basedir );
 
-    String alignToBaseDirectory( String path, File basedir );
-
-    void unalignFromBaseDirectory( Model model, File basedir );
-
-    String unalignFromBaseDirectory( String directory, File basedir );
 }

Modified: 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/PathTranslator.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/PathTranslator.java?rev=780698&r1=780621&r2=780698&view=diff
==============================================================================
--- 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/PathTranslator.java
 (original)
+++ 
maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/path/PathTranslator.java
 Mon Jun  1 15:55:41 2009
@@ -1,4 +1,4 @@
-package org.apache.maven.project.path;
+package org.apache.maven.model.path;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -21,21 +21,22 @@
 
 import java.io.File;
 
-import org.apache.maven.model.Model;
-
 /**
+ * Resolves relative paths against a specific base directory.
+ * 
  * @author Jason van Zyl
- * @version $Id$
  */
 public interface PathTranslator
 {
-    String ROLE = PathTranslator.class.getName();
-
-    void alignToBaseDirectory( Model model, File basedir );
 
+    /**
+     * Resolves the specified path against the given base directory. The 
resolved path will be absolute and uses the
+     * platform-specified file separator.
+     * 
+     * @param path The path to resolve, may be {...@code null}.
+     * @param basedir The base directory to resolve relative paths against, 
may be {...@code null}.
+     * @return The resolved path or {...@code null} if the input path was 
{...@code null}.
+     */
     String alignToBaseDirectory( String path, File basedir );
 
-    void unalignFromBaseDirectory( Model model, File basedir );
-
-    String unalignFromBaseDirectory( String directory, File basedir );
 }


Reply via email to