You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2022/02/19 22:35:22 UTC

[maven] branch master updated: [MNG-7244] Remove deprecated WARNING for usage of pom.X placeholders

This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git


The following commit(s) were added to refs/heads/master by this push:
     new b2a21f1  [MNG-7244] Remove deprecated WARNING for usage of pom.X placeholders
b2a21f1 is described below

commit b2a21f12f8a0598dd4a286177e340bda0148e9ba
Author: Giovanni van der Schelde <Gi...@infosupport.com>
AuthorDate: Tue Feb 1 11:19:10 2022 +0100

    [MNG-7244] Remove deprecated WARNING for usage of pom.X placeholders
    
    This closes #678
---
 .../AbstractStringBasedModelInterpolator.java      | 20 +++++-------
 .../AbstractModelInterpolatorTest.java             | 37 ++++++++++++++++------
 2 files changed, 35 insertions(+), 22 deletions(-)

diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java b/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java
index 9fb48a2..50a78be 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java
@@ -21,8 +21,8 @@ package org.apache.maven.model.interpolation;
 
 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;
@@ -52,7 +52,7 @@ import org.codehaus.plexus.interpolation.ValueSource;
 public abstract class AbstractStringBasedModelInterpolator
     implements ModelInterpolator
 {
-    private static final List<String> PROJECT_PREFIXES = Arrays.asList( "pom.", "project." );
+    private static final List<String> PROJECT_PREFIXES = Collections.singletonList( "project." );
 
     private static final Collection<String> TRANSLATED_PATH_EXPRESSIONS;
 
@@ -95,16 +95,12 @@ public abstract class AbstractStringBasedModelInterpolator
     {
         Properties modelProperties = model.getProperties();
 
-        ValueSource modelValueSource1 = new PrefixedObjectValueSource( PROJECT_PREFIXES, model, false );
+        ValueSource projectPrefixValueSource = new PrefixedObjectValueSource( PROJECT_PREFIXES, model, false );
+        ValueSource prefixlessObjectBasedValueSource = new ObjectBasedValueSource( model );
         if ( config.getValidationLevel() >= ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_2_0 )
         {
-            modelValueSource1 = new ProblemDetectingValueSource( modelValueSource1, "pom.", "project.", problems );
-        }
-
-        ValueSource modelValueSource2 = new ObjectBasedValueSource( model );
-        if ( config.getValidationLevel() >= ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_2_0 )
-        {
-            modelValueSource2 = new ProblemDetectingValueSource( modelValueSource2, "", "project.", problems );
+            prefixlessObjectBasedValueSource =
+                    new ProblemDetectingValueSource( prefixlessObjectBasedValueSource, "", "project.", problems );
         }
 
         // NOTE: Order counts here!
@@ -142,7 +138,7 @@ public abstract class AbstractStringBasedModelInterpolator
             valueSources.add( new BuildTimestampValueSource( config.getBuildStartTime(), modelProperties ) );
         }
 
-        valueSources.add( modelValueSource1 );
+        valueSources.add( projectPrefixValueSource );
 
         valueSources.add( new MapBasedValueSource( config.getUserProperties() ) );
 
@@ -163,7 +159,7 @@ public abstract class AbstractStringBasedModelInterpolator
             }
         } );
 
-        valueSources.add( modelValueSource2 );
+        valueSources.add( prefixlessObjectBasedValueSource );
 
         return valueSources;
     }
diff --git a/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/AbstractModelInterpolatorTest.java b/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/AbstractModelInterpolatorTest.java
index 032ef28..e4a7af3 100644
--- a/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/AbstractModelInterpolatorTest.java
+++ b/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/AbstractModelInterpolatorTest.java
@@ -176,7 +176,7 @@ public abstract class AbstractModelInterpolatorTest
 
         final SimpleProblemCollector collector = new SimpleProblemCollector();
         interpolator.interpolateModel( model, null, createModelBuildingRequest( context ), collector );
-        assertCollectorState(  0, 1, 0, collector );
+        assertCollectorState( 0, 1, 0, collector );
     }
 
     @Test
@@ -208,7 +208,7 @@ public abstract class AbstractModelInterpolatorTest
         String orgName = "MyCo";
 
         Model model = new Model();
-        model.setName( "${pom.organization.name} Tools" );
+        model.setName( "${project.organization.name} Tools" );
 
         Organization org = new Organization();
         org.setName( orgName );
@@ -427,22 +427,17 @@ public abstract class AbstractModelInterpolatorTest
         build.addResource( res );
 
         Resource res2 = new Resource();
-        res2.setDirectory( "${pom.build.sourceDirectory}" );
+        res2.setDirectory( "${build.sourceDirectory}" );
 
         build.addResource( res2 );
 
-        Resource res3 = new Resource();
-        res3.setDirectory( "${build.sourceDirectory}" );
-
-        build.addResource( res3 );
-
         model.setBuild( build );
 
         ModelInterpolator interpolator = createInterpolator();
 
         final SimpleProblemCollector collector = new SimpleProblemCollector();
         Model out = interpolator.interpolateModel( model, null, createModelBuildingRequest( context ), collector );
-        assertCollectorState( 0, 0, 2, collector );
+        assertCollectorState( 0, 0, 1, collector );
 
 
         List<Resource> outResources = out.getBuild().getResources();
@@ -450,7 +445,6 @@ public abstract class AbstractModelInterpolatorTest
 
         assertEquals( build.getSourceDirectory(), resIt.next().getDirectory() );
         assertEquals( build.getSourceDirectory(), resIt.next().getDirectory() );
-        assertEquals( build.getSourceDirectory(), resIt.next().getDirectory() );
     }
 
     @Test
@@ -517,6 +511,29 @@ public abstract class AbstractModelInterpolatorTest
                 collector.getErrors().get( 0 ) );
     }
 
+    @Test
+    public void shouldIgnorePropertiesWithPomPrefix() throws Exception
+    {
+        final String orgName = "MyCo";
+        final String expectedName = "${pom.organization.name} Tools";
+
+        Model model = new Model();
+        model.setName( expectedName );
+
+        Organization org = new Organization();
+        org.setName( orgName );
+
+        model.setOrganization( org );
+
+        ModelInterpolator interpolator = createInterpolator();
+        SimpleProblemCollector collector = new SimpleProblemCollector();
+        Model out = interpolator.interpolateModel( model, null, createModelBuildingRequest( context ),
+                collector );
+
+        assertCollectorState( 0, 0, 0, collector );
+        assertEquals( out.getName(), expectedName );
+    }
+
     protected abstract ModelInterpolator createInterpolator() throws Exception;
 
 }