Author: jdcasey
Date: Thu Apr 6 07:04:08 2006
New Revision: 391988
URL: http://svn.apache.org/viewcvs?rev=391988&view=rev
Log:
Merging 391974 from branch to fix IT errors introduced when attempting to fix
the case where a resolved POM expression contains a substring referencing that
POM element. Two-expression cycles are still possible.
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java?rev=391988&r1=391987&r2=391988&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
(original)
+++
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
Thu Apr 6 07:04:08 2006
@@ -164,7 +164,7 @@
}
// if the expression refers to itself, skip it.
- if ( String.valueOf( value ).indexOf( realExpr ) > -1 )
+ if ( String.valueOf( value ).indexOf( wholeExpr ) > -1 )
{
throw new ModelInterpolationException( wholeExpr,
model.getId() + " references itself." );
}
Modified:
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java?rev=391988&r1=391987&r2=391988&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java
(original)
+++
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java
Thu Apr 6 07:04:08 2006
@@ -45,26 +45,59 @@
context = Collections.singletonMap( "basedir", "myBasedir" );
}
-
- public void testShouldThrowExceptionOnRecursiveScmConnectionReference()
throws IOException
+
+ public void testShouldNotThrowExceptionOnReferenceToNonExistentValue()
+ throws IOException, ModelInterpolationException
{
Model model = new Model();
-
+
+ Scm scm = new Scm();
+ scm.setConnection( "${test}/somepath" );
+
+ model.setScm( scm );
+
+ Model out = new RegexBasedModelInterpolator().interpolate( model,
context );
+
+ assertEquals( "${test}/somepath", out.getScm().getConnection() );
+ }
+
+ public void testShouldThrowExceptionOnRecursiveScmConnectionReference()
+ throws IOException
+ {
+ Model model = new Model();
+
Scm scm = new Scm();
scm.setConnection( "${project.scm.connection}/somepath" );
-
+
model.setScm( scm );
-
+
try
{
Model out = new RegexBasedModelInterpolator().interpolate( model,
context );
-
+
fail( "The interpolator should not allow self-referencing
expressions in POM." );
}
catch ( ModelInterpolationException e )
{
-
+
}
+ }
+
+ public void
testShouldNotThrowExceptionOnReferenceToValueContainingNakedExpression()
+ throws IOException, ModelInterpolationException
+ {
+ Model model = new Model();
+
+ Scm scm = new Scm();
+ scm.setConnection( "${test}/somepath" );
+
+ model.setScm( scm );
+
+ model.addProperty( "test", "test" );
+
+ Model out = new RegexBasedModelInterpolator().interpolate( model,
context );
+
+ assertEquals( "test/somepath", out.getScm().getConnection() );
}
public void testShouldInterpolateOrganizationNameCorrectly()