Author: jdcasey
Date: Mon Sep  8 18:52:34 2008
New Revision: 693339

URL: http://svn.apache.org/viewvc?rev=693339&view=rev
Log:
[MNG-3747] Adding prefixed-expression awareness to the pathTranslating post 
processor for interpolation, to ensure project.build.directory is translated in 
addition to build.directory.

Modified:
    
maven/components/branches/maven-2.1.0-M1-RC/maven-project/src/main/java/org/apache/maven/project/interpolation/AbstractStringBasedModelInterpolator.java
    
maven/components/branches/maven-2.1.0-M1-RC/maven-project/src/main/java/org/apache/maven/project/interpolation/PathTranslatingPostProcessor.java

Modified: 
maven/components/branches/maven-2.1.0-M1-RC/maven-project/src/main/java/org/apache/maven/project/interpolation/AbstractStringBasedModelInterpolator.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.0-M1-RC/maven-project/src/main/java/org/apache/maven/project/interpolation/AbstractStringBasedModelInterpolator.java?rev=693339&r1=693338&r2=693339&view=diff
==============================================================================
--- 
maven/components/branches/maven-2.1.0-M1-RC/maven-project/src/main/java/org/apache/maven/project/interpolation/AbstractStringBasedModelInterpolator.java
 (original)
+++ 
maven/components/branches/maven-2.1.0-M1-RC/maven-project/src/main/java/org/apache/maven/project/interpolation/AbstractStringBasedModelInterpolator.java
 Mon Sep  8 18:52:34 2008
@@ -264,7 +264,7 @@
     
     protected List createPostProcessors( final Model model, final File 
projectDir, final ProjectBuilderConfiguration config )
     {
-        return Collections.singletonList( new PathTranslatingPostProcessor( 
TRANSLATED_PATH_EXPRESSIONS, projectDir, pathTranslator ) );
+        return Collections.singletonList( new PathTranslatingPostProcessor( 
PROJECT_PREFIXES, TRANSLATED_PATH_EXPRESSIONS, projectDir, pathTranslator ) );
     }
     
     protected String interpolateInternal( String src, List valueSources, List 
postProcessors, boolean debug )

Modified: 
maven/components/branches/maven-2.1.0-M1-RC/maven-project/src/main/java/org/apache/maven/project/interpolation/PathTranslatingPostProcessor.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.0-M1-RC/maven-project/src/main/java/org/apache/maven/project/interpolation/PathTranslatingPostProcessor.java?rev=693339&r1=693338&r2=693339&view=diff
==============================================================================
--- 
maven/components/branches/maven-2.1.0-M1-RC/maven-project/src/main/java/org/apache/maven/project/interpolation/PathTranslatingPostProcessor.java
 (original)
+++ 
maven/components/branches/maven-2.1.0-M1-RC/maven-project/src/main/java/org/apache/maven/project/interpolation/PathTranslatingPostProcessor.java
 Mon Sep  8 18:52:34 2008
@@ -23,6 +23,7 @@
 import org.codehaus.plexus.interpolation.AbstractFunctionValueSourceWrapper;
 import org.codehaus.plexus.interpolation.InterpolationPostProcessor;
 import org.codehaus.plexus.interpolation.ValueSource;
+import org.codehaus.plexus.interpolation.util.ValueSourceUtils;
 
 import java.io.File;
 import java.util.List;
@@ -38,9 +39,11 @@
     private final List unprefixedPathKeys;
     private final File projectDir;
     private final PathTranslator pathTranslator;
+    private final List expressionPrefixes;
 
-    public PathTranslatingPostProcessor( List unprefixedPathKeys, File 
projectDir, PathTranslator pathTranslator )
+    public PathTranslatingPostProcessor( List expressionPrefixes, List 
unprefixedPathKeys, File projectDir, PathTranslator pathTranslator )
     {
+        this.expressionPrefixes = expressionPrefixes;
         this.unprefixedPathKeys = unprefixedPathKeys;
         this.projectDir = projectDir;
         this.pathTranslator = pathTranslator;
@@ -49,6 +52,8 @@
     public Object execute( String expression,
                                       Object value )
     {
+        expression = ValueSourceUtils.trimPrefix( expression, 
expressionPrefixes, true );
+        
         if ( projectDir != null && value != null && 
unprefixedPathKeys.contains( expression ) )
         {
             return pathTranslator.alignToBaseDirectory( String.valueOf( value 
), projectDir );


Reply via email to