Author: bentmann Date: Tue Jun 2 21:06:57 2009 New Revision: 781168 URL: http://svn.apache.org/viewvc?rev=781168&view=rev Log: o Minor tweaks to the interpolation post process: - Excluded it completely if it has nothing to do - Switched contains() test to use hash-based lookup rather than linear search
Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/PathTranslatingPostProcessor.java Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java?rev=781168&r1=781167&r2=781168&view=diff ============================================================================== --- maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java (original) +++ maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java Tue Jun 2 21:06:57 2009 @@ -38,7 +38,9 @@ import java.io.File; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Properties; @@ -54,11 +56,11 @@ { private static final List<String> PROJECT_PREFIXES = Arrays.asList( new String[]{ "pom.", "project." } ); - private static final List<String> TRANSLATED_PATH_EXPRESSIONS; + private static final Collection<String> TRANSLATED_PATH_EXPRESSIONS; static { - List<String> translatedPrefixes = new ArrayList<String>(); + Collection<String> translatedPrefixes = new HashSet<String>(); // MNG-1927, MNG-2124, MNG-3355: // If the build section is present and the project directory is non-null, we should make @@ -150,9 +152,16 @@ final File projectDir, final ModelBuildingRequest config ) { - return Collections.singletonList( new PathTranslatingPostProcessor( PROJECT_PREFIXES, - TRANSLATED_PATH_EXPRESSIONS, projectDir, - pathTranslator ) ); + if ( projectDir != null ) + { + return Collections.singletonList( new PathTranslatingPostProcessor( PROJECT_PREFIXES, + TRANSLATED_PATH_EXPRESSIONS, + projectDir, pathTranslator ) ); + } + else + { + return Collections.emptyList(); + } } protected String interpolateInternal( String src, List<? extends ValueSource> valueSources, Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/PathTranslatingPostProcessor.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/PathTranslatingPostProcessor.java?rev=781168&r1=781167&r2=781168&view=diff ============================================================================== --- maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/PathTranslatingPostProcessor.java (original) +++ maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/PathTranslatingPostProcessor.java Tue Jun 2 21:06:57 2009 @@ -24,6 +24,7 @@ import org.codehaus.plexus.interpolation.util.ValueSourceUtils; import java.io.File; +import java.util.Collection; import java.util.List; /** @@ -34,12 +35,12 @@ implements InterpolationPostProcessor { - private final List<String> unprefixedPathKeys; + private final Collection<String> unprefixedPathKeys; private final File projectDir; private final PathTranslator pathTranslator; private final List<String> expressionPrefixes; - public PathTranslatingPostProcessor( List<String> expressionPrefixes, List<String> unprefixedPathKeys, File projectDir, PathTranslator pathTranslator ) + public PathTranslatingPostProcessor( List<String> expressionPrefixes, Collection<String> unprefixedPathKeys, File projectDir, PathTranslator pathTranslator ) { this.expressionPrefixes = expressionPrefixes; this.unprefixedPathKeys = unprefixedPathKeys; @@ -49,11 +50,14 @@ public Object execute( String expression, Object value ) { - expression = ValueSourceUtils.trimPrefix( expression, expressionPrefixes, true ); - - if ( projectDir != null && value != null && unprefixedPathKeys.contains( expression ) ) + if ( value != null ) { - return pathTranslator.alignToBaseDirectory( String.valueOf( value ), projectDir ); + expression = ValueSourceUtils.trimPrefix( expression, expressionPrefixes, true ); + + if ( unprefixedPathKeys.contains( expression ) ) + { + return pathTranslator.alignToBaseDirectory( String.valueOf( value ), projectDir ); + } } return value;