You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by si...@apache.org on 2008/11/12 06:17:45 UTC
svn commit: r713266 - in
/maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model:
ModelProperty.java ModelTransformerContext.java
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.
*