You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2008/09/09 03:52:35 UTC

svn commit: r693339 - in /maven/components/branches/maven-2.1.0-M1-RC/maven-project/src/main/java/org/apache/maven/project/interpolation: AbstractStringBasedModelInterpolator.java PathTranslatingPostProcessor.java

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