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/04/07 15:44:18 UTC
svn commit: r931545 -
/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java
Author: bentmann
Date: Wed Apr 7 13:44:18 2010
New Revision: 931545
URL: http://svn.apache.org/viewvc?rev=931545&view=rev
Log:
[MNG-4625] Interpolation of settings.xml fails if an expression's value contains XML markup
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java?rev=931545&r1=931544&r2=931545&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java Wed Apr 7 13:44:18 2010
@@ -38,6 +38,7 @@ import org.codehaus.plexus.component.ann
import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.interpolation.EnvarBasedValueSource;
import org.codehaus.plexus.interpolation.InterpolationException;
+import org.codehaus.plexus.interpolation.InterpolationPostProcessor;
import org.codehaus.plexus.interpolation.PropertiesBasedValueSource;
import org.codehaus.plexus.interpolation.RegexBasedInterpolator;
@@ -189,6 +190,20 @@ public class DefaultSettingsBuilder
+ e.getMessage(), -1, -1, e );
}
+ interpolator.addPostProcessor( new InterpolationPostProcessor()
+ {
+ public Object execute( String expression, Object value )
+ {
+ if ( value != null )
+ {
+ // we're going to parse this back in as XML so we need to escape XML markup
+ value = value.toString().replace( "&", "&" ).replace( "<", "<" ).replace( ">", ">" );
+ return value;
+ }
+ return null;
+ }
+ } );
+
try
{
serializedSettings = interpolator.interpolate( serializedSettings, "settings" );