Author: sisbell
Date: Tue Nov 11 21:17:42 2008
New Revision: 713266
URL: http://svn.apache.org/viewvc?rev=713266&view=rev
Log:
Fix for IT 3833. New implementation does multiple interpolation iterations,
until it detects that there is no longer a change in the list.
Modified:
maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelProperty.java
maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java
Modified:
maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelProperty.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelProperty.java?rev=713266&r1=713265&r2=713266&view=diff
==============================================================================
---
maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelProperty.java
(original)
+++
maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelProperty.java
Tue Nov 11 21:17:42 2008
@@ -210,7 +210,7 @@
*
* @param property the interpolator property used to resolve
*/
- public void resolveWith( InterpolatorProperty property )
+ public boolean resolveWith( InterpolatorProperty property )
{
if ( property == null )
{
@@ -218,12 +218,14 @@
}
if ( isResolved() )
{
- return;
+ return false;
}
+ boolean resolved = false;
for ( String expression : unresolvedExpressions )
{
if ( property.getKey().equals( expression ) )
{
+ resolved = true;
resolvedValue = resolvedValue.replace( property.getKey(),
property.getValue() );
unresolvedExpressions.clear();
Matcher matcher = EXPRESSION_PATTERN.matcher( resolvedValue );
@@ -234,6 +236,7 @@
break;
}
}
+ return resolved;
}
public String toString()
Modified:
maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java?rev=713266&r1=713265&r2=713266&view=diff
==============================================================================
---
maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java
(original)
+++
maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java
Tue Nov 11 21:17:42 2008
@@ -147,24 +147,24 @@
LinkedHashSet<InterpolatorProperty> ips = new
LinkedHashSet<InterpolatorProperty>();
ips.addAll(interpolatorProperties);
-
- for ( InterpolatorProperty ip : ips)
- {
- for ( ModelProperty mp : unresolvedProperties )
- {
- mp.resolveWith(ip);
- }
- }
-
- for ( InterpolatorProperty ip : ips )
+ boolean continueInterpolation = true;
+ while(continueInterpolation)
{
- for ( ModelProperty mp : unresolvedProperties )
+ continueInterpolation = false;
+ for ( InterpolatorProperty ip : ips)
{
- mp.resolveWith(ip);
+ for ( ModelProperty mp : unresolvedProperties )
+ {
+ if(mp.resolveWith(ip) && !continueInterpolation )
+ {
+ continueInterpolation = true;
+ }
+ }
}
}
}
+
/**
* Transforms the specified model properties using the specified
transformers.
*