You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2010/09/23 22:05:09 UTC
svn commit: r1000601 - in /maven/maven-3/trunk/maven-model-builder/src:
main/java/org/apache/maven/model/interpolation/StringSearchModelInterpolator.java
test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java
Author: bentmann
Date: Thu Sep 23 20:05:09 2010
New Revision: 1000601
URL: http://svn.apache.org/viewvc?rev=1000601&view=rev
Log:
[MNG-4837] Interpolation error due to cyclic expression for one of the POM coordinates gets needlessly repeated
Modified:
maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringSearchModelInterpolator.java
maven/maven-3/trunk/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java
Modified: maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringSearchModelInterpolator.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringSearchModelInterpolator.java?rev=1000601&r1=1000600&r2=1000601&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringSearchModelInterpolator.java (original)
+++ maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringSearchModelInterpolator.java Thu Sep 23 20:05:09 2010
@@ -324,6 +324,11 @@ public class StringSearchModelInterpolat
private boolean isQualifiedForInterpolation( Field field, Class<?> fieldType )
{
+ if ( Map.class.equals( fieldType ) && "locations".equals( field.getName() ) )
+ {
+ return false;
+ }
+
Boolean primitive = fieldIsPrimitiveByClass.get( fieldType );
if ( primitive == null )
{
Modified: maven/maven-3/trunk/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java?rev=1000601&r1=1000600&r2=1000601&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java (original)
+++ maven/maven-3/trunk/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java Thu Sep 23 20:05:09 2010
@@ -19,6 +19,8 @@ package org.apache.maven.model.interpola
* under the License.
*/
+import org.apache.maven.model.InputLocation;
+import org.apache.maven.model.InputSource;
import org.apache.maven.model.Model;
import org.apache.maven.model.building.DefaultModelBuildingRequest;
import org.apache.maven.model.building.ModelBuildingRequest;
@@ -482,4 +484,27 @@ public class StringSearchModelInterpolat
{
public static final String CONSTANT = "${expression}";
}
+
+ public void testLocationTrackerShouldBeExcludedFromInterpolation()
+ {
+ Properties props = new Properties();
+ props.setProperty( "expression", "value" );
+ DefaultModelBuildingRequest request = new DefaultModelBuildingRequest();
+ request.setUserProperties( props );
+
+ InputSource source = new InputSource();
+ source.setLocation( "${expression}" );
+ source.setModelId( "${expression}" );
+ Model model = new Model();
+ model.setLocation( "", new InputLocation( 1, 1, source ) );
+
+ SimpleProblemCollector problems = new SimpleProblemCollector();
+ StringSearchModelInterpolator interpolator = new StringSearchModelInterpolator();
+ interpolator.interpolateObject( model, model, null, request, problems );
+
+ assertProblemFree( problems );
+ assertEquals( "${expression}", source.getLocation() );
+ assertEquals( "${expression}", source.getModelId() );
+ }
+
}