Author: jdcasey Date: Fri Aug 1 15:34:38 2008 New Revision: 681877 URL: http://svn.apache.org/viewvc?rev=681877&view=rev Log: make sure configuration of things like properties sets (which for some reason don't use the expression evaluator to resolve their values) are interpolated before delegating to the configurator.
Modified: maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java maven/components/branches/maven-2.0.10-RC/maven-core/src/main/resources/META-INF/plexus/components.xml Modified: maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=681877&r1=681876&r2=681877&view=diff ============================================================================== --- maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original) +++ maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Fri Aug 1 15:34:38 2008 @@ -58,6 +58,7 @@ import org.apache.maven.project.artifact.InvalidDependencyVersionException; import org.apache.maven.project.artifact.MavenMetadataSource; import org.apache.maven.project.interpolation.ModelInterpolationException; +import org.apache.maven.project.interpolation.ModelInterpolator; import org.apache.maven.project.path.PathTranslator; import org.apache.maven.reporting.MavenReport; import org.apache.maven.settings.Settings; @@ -82,8 +83,14 @@ import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.xml.Xpp3Dom; +import org.codehaus.plexus.util.xml.Xpp3DomBuilder; +import org.codehaus.plexus.util.xml.Xpp3DomWriter; +import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import java.io.File; +import java.io.IOException; +import java.io.StringReader; +import java.io.StringWriter; import java.net.URL; import java.util.ArrayList; import java.util.Collection; @@ -127,6 +134,8 @@ protected RuntimeInformation runtimeInformation; protected MavenProjectBuilder mavenProjectBuilder; + + protected ModelInterpolator modelInterpolator; protected PluginMappingManager pluginMappingManager; @@ -667,6 +676,52 @@ } else { + if ( project != null && !project.isConcrete() ) + { + try + { + mavenProjectBuilder.calculateConcreteState( project, session.getProjectBuilderConfiguration() ); + } + catch ( ModelInterpolationException e ) + { + throw new PluginManagerException( "Error calculating concrete state for project: " + project + + "\n(processing configuration for mojo: '" + mojoDescriptor.getRoleHint() + "' with execution-id: '" + + mojoExecution.getExecutionId() + "')", e ); + } + } + + StringWriter writer = new StringWriter(); + Xpp3DomWriter.write( writer, dom ); + + String domStr = writer.toString(); + + try + { + domStr = + modelInterpolator.interpolate( domStr, project.getModel(), project.getBasedir(), + session.getProjectBuilderConfiguration(), getLogger().isDebugEnabled() ); + } + catch ( ModelInterpolationException e ) + { + throw new PluginManagerException( "Error interpolating configuration for: '" + mojoDescriptor.getRoleHint() + + "' (execution: '" + mojoExecution.getExecutionId() + "')", e ); + } + + try + { + dom = Xpp3DomBuilder.build( new StringReader( domStr ) ); + } + catch ( XmlPullParserException e ) + { + throw new PluginManagerException( "Error reading interpolated configuration for: '" + mojoDescriptor.getRoleHint() + + "' (execution: '" + mojoExecution.getExecutionId() + "')", e ); + } + catch ( IOException e ) + { + throw new PluginManagerException( "Error reading interpolated configuration for: '" + mojoDescriptor.getRoleHint() + + "' (execution: '" + mojoExecution.getExecutionId() + "')", e ); + } + pomConfiguration = new XmlPlexusConfiguration( dom ); } Modified: maven/components/branches/maven-2.0.10-RC/maven-core/src/main/resources/META-INF/plexus/components.xml URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.10-RC/maven-core/src/main/resources/META-INF/plexus/components.xml?rev=681877&r1=681876&r2=681877&view=diff ============================================================================== --- maven/components/branches/maven-2.0.10-RC/maven-core/src/main/resources/META-INF/plexus/components.xml (original) +++ maven/components/branches/maven-2.0.10-RC/maven-core/src/main/resources/META-INF/plexus/components.xml Fri Aug 1 15:34:38 2008 @@ -50,6 +50,9 @@ <requirement> <role>org.apache.maven.project.MavenProjectBuilder</role> </requirement> + <requirement> + <role>org.apache.maven.project.interpolation.ModelInterpolator</role> + </requirement> </requirements> </component>