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/09/13 11:28:24 UTC

svn commit: r694907 - in /maven/components/trunk: maven-core/src/main/java/org/apache/maven/errors/ maven-core/src/main/java/org/apache/maven/extension/ maven-core/src/main/java/org/apache/maven/plugin/ maven-core/src/main/resources/META-INF/plexus/ ma...

Author: sisbell
Date: Sat Sep 13 02:28:23 2008
New Revision: 694907

URL: http://svn.apache.org/viewvc?rev=694907&view=rev
Log:
Replaced interpolator code.

Added:
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/ModelInterpolationException.java   (contents, props changed)
      - copied, changed from r694659, maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolationException.java
Removed:
    maven/components/trunk/maven-core/src/test/java/org/apache/maven/extension/DefaultBuildExtensionScannerTest.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/interpolation/
Modified:
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorTips.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultProjectErrorReporter.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/ProjectErrorReporter.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/ProjectErrorTips.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/ExtensionScanningException.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
    maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml
    maven/components/trunk/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml
    maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-core/src/main/resources/META-INF/plexus/components.xml
    maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml
    maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-project/src/main/resources/META-INF/plexus/components.xml
    maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml
    maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/InvalidProjectModelException.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectBuildingException.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/IdModelContainerFactory.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicDomainModel.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
    maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml
    maven/components/trunk/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml
    maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml
    maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml
    maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/InterpolatorProperty.java
    maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java
    maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformer.java
    maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java
    maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java
    maven/components/trunk/maven-shared-model/src/test/java/org/apache/maven/shared/model/ModelMarshallerTest.java

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java Sat Sep 13 02:28:23 2008
@@ -14,6 +14,7 @@
 import org.apache.maven.execution.MavenExecutionRequest;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.extension.ExtensionManagerException;
+import org.apache.maven.extension.ModelInterpolationException;
 import org.apache.maven.lifecycle.LifecycleException;
 import org.apache.maven.lifecycle.LifecycleLoaderException;
 import org.apache.maven.lifecycle.LifecycleSpecificationException;
@@ -37,7 +38,6 @@
 import org.apache.maven.project.ProjectBuildingException;
 import org.apache.maven.project.artifact.InvalidDependencyVersionException;
 import org.apache.maven.errors.ProjectErrorReporter;
-import org.apache.maven.project.interpolation.ModelInterpolationException;
 import org.apache.maven.project.path.PathTranslator;
 import org.apache.maven.reactor.MavenExecutionException;
 import org.apache.maven.reactor.MissingModuleException;

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorTips.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorTips.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorTips.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorTips.java Sat Sep 13 02:28:23 2008
@@ -1,6 +1,7 @@
 package org.apache.maven.errors;
 
 import org.apache.maven.ProjectCycleException;
+import org.apache.maven.extension.ModelInterpolationException;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
 import org.apache.maven.artifact.resolver.AbstractArtifactResolutionException;
@@ -23,7 +24,6 @@
 import org.apache.maven.project.DuplicateArtifactAttachmentException;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.artifact.InvalidDependencyVersionException;
-import org.apache.maven.project.interpolation.ModelInterpolationException;
 import org.apache.maven.realm.RealmManagementException;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.configuration.PlexusConfiguration;

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java Sat Sep 13 02:28:23 2008
@@ -44,7 +44,7 @@
 import org.apache.maven.errors.DefaultProjectErrorReporter;
 import org.apache.maven.errors.ProjectErrorReporter;
 import org.apache.maven.errors.ProjectReporterManager;
-import org.apache.maven.project.interpolation.ModelInterpolationException;
+import org.apache.maven.extension.ModelInterpolationException;
 import org.apache.maven.project.path.PathTranslator;
 import org.apache.maven.reactor.MavenExecutionException;
 import org.apache.maven.reactor.MissingModuleException;

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultProjectErrorReporter.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultProjectErrorReporter.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultProjectErrorReporter.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultProjectErrorReporter.java Sat Sep 13 02:28:23 2008
@@ -21,7 +21,7 @@
 import org.apache.maven.project.ProjectBuilderConfiguration;
 import org.apache.maven.project.artifact.InvalidDependencyVersionException;
 import org.apache.maven.project.ModelAndFile;
-import org.apache.maven.project.interpolation.ModelInterpolationException;
+import org.apache.maven.extension.ModelInterpolationException;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/ProjectErrorReporter.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/ProjectErrorReporter.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/ProjectErrorReporter.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/ProjectErrorReporter.java Sat Sep 13 02:28:23 2008
@@ -18,7 +18,7 @@
 import org.apache.maven.project.ProjectBuilderConfiguration;
 import org.apache.maven.project.artifact.InvalidDependencyVersionException;
 import org.apache.maven.project.ModelAndFile;
-import org.apache.maven.project.interpolation.ModelInterpolationException;
+import org.apache.maven.extension.ModelInterpolationException;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/ProjectErrorTips.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/ProjectErrorTips.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/ProjectErrorTips.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/ProjectErrorTips.java Sat Sep 13 02:28:23 2008
@@ -11,7 +11,7 @@
 import org.apache.maven.project.DuplicateProjectException;
 import org.apache.maven.project.InvalidProjectVersionException;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.interpolation.ModelInterpolationException;
+import org.apache.maven.extension.ModelInterpolationException;
 import org.apache.maven.project.validation.ModelValidationResult;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java Sat Sep 13 02:28:23 2008
@@ -35,12 +35,13 @@
 import org.apache.maven.project.MavenProjectBuilder;
 import org.apache.maven.project.ProjectBuilderConfiguration;
 import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.project.builder.PomClassicTransformer;
 import org.apache.maven.extension.lineage.ModelLineage;
 import org.apache.maven.extension.lineage.ModelLineageBuilder;
 import org.apache.maven.extension.lineage.ModelLineageIterator;
-import org.apache.maven.project.interpolation.ModelInterpolationException;
-import org.apache.maven.project.interpolation.ModelInterpolator;
+import org.apache.maven.extension.ModelInterpolationException;
 import org.apache.maven.reactor.MissingModuleException;
+import org.apache.maven.shared.model.InterpolatorProperty;
 import org.codehaus.plexus.logging.LogEnabled;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.logging.console.ConsoleLogger;
@@ -68,8 +69,6 @@
 
     private ModelLineageBuilder modelLineageBuilder;
 
-    private ModelInterpolator modelInterpolator;
-
     // cached.
     private MavenProject basicSuperProject;
 
@@ -77,19 +76,6 @@
     {
     }
 
-    protected DefaultBuildExtensionScanner( ExtensionManager extensionManager,
-                                            MavenProjectBuilder projectBuilder,
-                                            ModelLineageBuilder modelLineageBuilder,
-                                            ModelInterpolator modelInterpolator,
-                                            Logger logger )
-    {
-        this.extensionManager = extensionManager;
-        this.projectBuilder = projectBuilder;
-        this.modelLineageBuilder = modelLineageBuilder;
-        this.modelInterpolator = modelInterpolator;
-        this.logger = logger;
-    }
-
     public void scanForBuildExtensions( List files,
                                         MavenExecutionRequest request,
                                         boolean ignoreMissingModules )
@@ -176,8 +162,18 @@
 
                 config.setExecutionProperties( execProps );
 
-                model = modelInterpolator.interpolate( model, modelPom.getParentFile(), config, getLogger().isDebugEnabled() );
-
+                List<InterpolatorProperty> interpolatorProperties = new ArrayList<InterpolatorProperty>();
+                interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( config.getExecutionProperties()));
+                interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( config.getUserProperties()));
+                model = PomClassicTransformer.interpolateModel( model, interpolatorProperties, modelPom.getParentFile());
+
+                /*
+                try {
+                    model = modelInterpolator.interpolate( model, modelPom.getParentFile(), config, getLogger().isDebugEnabled() );
+                } catch (ModelInterpolationException e) {
+                    e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+                }
+                */
                 grabManagedPluginsWithExtensionsFlagTurnedOn( model, managedPluginsWithExtensionsFlag );
 
                 Properties modelProps = model.getProperties();
@@ -218,13 +214,14 @@
                 }
             }
         }
-        catch ( ModelInterpolationException e )
+        catch ( IOException e )
         {
             throw new ExtensionScanningException( "Failed to interpolate model from: " + pom
-                + " prior to scanning for extensions.", pom, e );
+                + " prior to scanning for extensions.", pom, new ModelInterpolationException(e.getMessage()) );
         }
     }
 
+
     private void grabManagedPluginsWithExtensionsFlagTurnedOn( Model model,
                                                                Set managedPluginsWithExtensionsFlag )
     {

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/ExtensionScanningException.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/ExtensionScanningException.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/ExtensionScanningException.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/ExtensionScanningException.java Sat Sep 13 02:28:23 2008
@@ -4,7 +4,7 @@
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.project.ProjectBuildingException;
-import org.apache.maven.project.interpolation.ModelInterpolationException;
+import org.apache.maven.extension.ModelInterpolationException;
 
 import java.io.File;
 import java.io.IOException;

Copied: maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/ModelInterpolationException.java (from r694659, maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolationException.java)
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/ModelInterpolationException.java?p2=maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/ModelInterpolationException.java&p1=maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolationException.java&r1=694659&r2=694907&rev=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolationException.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/ModelInterpolationException.java Sat Sep 13 02:28:23 2008
@@ -1,4 +1,4 @@
-package org.apache.maven.project.interpolation;
+package org.apache.maven.extension;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/ModelInterpolationException.java
------------------------------------------------------------------------------
    cvs2svn:cvs-rev = 1.1

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/ModelInterpolationException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/ModelInterpolationException.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Sat Sep 13 02:28:23 2008
@@ -20,6 +20,7 @@
  */
 
 import org.apache.maven.ArtifactFilterManager;
+import org.apache.maven.shared.model.InterpolatorProperty;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
@@ -58,10 +59,9 @@
 import org.apache.maven.project.MavenProjectBuilder;
 import org.apache.maven.project.ProjectBuildingException;
 import org.apache.maven.project.ModelUtils;
+import org.apache.maven.project.builder.PomClassicTransformer;
 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.realm.MavenRealmManager;
 import org.apache.maven.realm.RealmManagementException;
@@ -143,8 +143,6 @@
 
     protected MavenProjectBuilder mavenProjectBuilder;
 
-    protected ModelInterpolator modelInterpolator;
-
     protected PluginMappingManager pluginMappingManager;
 
     private PluginManagerSupport pluginManagerSupport;
@@ -560,23 +558,13 @@
         {
             try
             {
-                String interpolatedDom = modelInterpolator.interpolate( String.valueOf( dom ),
-                                                                        project.getModel(),
-                                                                        project.getBasedir(),
-                                                                        session.getProjectBuilderConfiguration(),
-                                                                        getLogger().isDebugEnabled() );
-
+                List<InterpolatorProperty> interpolatorProperties = new ArrayList<InterpolatorProperty>();
+                interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( session.getProjectBuilderConfiguration().getExecutionProperties()));
+                interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( session.getProjectBuilderConfiguration().getUserProperties()));
+                String interpolatedDom  =
+                        PomClassicTransformer.interpolateXmlString( String.valueOf( dom ), interpolatorProperties );
                 dom = Xpp3DomBuilder.build( new StringReader( interpolatedDom ) );
             }
-            catch ( ModelInterpolationException e )
-            {
-                throw new PluginManagerException(
-                                                  mojoDescriptor,
-                                                  project,
-                                                  "Failed to calculate concrete state for configuration of: "
-                                                                  + mojoDescriptor.getHumanReadableKey(),
-                                                  e );
-            }
             catch ( XmlPullParserException e )
             {
                 throw new PluginManagerException(

Modified: maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml Sat Sep 13 02:28:23 2008
@@ -192,9 +192,6 @@
           <role>org.apache.maven.extension.ExtensionManager</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.extension.lineage.ModelLineageBuilder</role>
           <role-hint>default</role-hint>
         </requirement>
@@ -240,9 +237,6 @@
           <role>org.apache.maven.plugin.PluginManagerSupport</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.ArtifactFilterManager</role>
         </requirement>
         <requirement>

Modified: maven/components/trunk/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml (original)
+++ maven/components/trunk/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml Sat Sep 13 02:28:23 2008
@@ -27,9 +27,6 @@
           <role>org.apache.maven.project.injection.ModelDefaultsInjector</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.project.inheritance.ModelInheritanceAssembler</role>
         </requirement>
         <requirement>

Modified: maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-core/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-core/src/main/resources/META-INF/plexus/components.xml?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-core/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-core/src/main/resources/META-INF/plexus/components.xml Sat Sep 13 02:28:23 2008
@@ -28,9 +28,6 @@
           <role>org.apache.maven.extension.ExtensionManager</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.extension.lineage.ModelLineageBuilder</role>
           <role-hint>default</role-hint>
         </requirement>

Modified: maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml (original)
+++ maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml Sat Sep 13 02:28:23 2008
@@ -24,9 +24,6 @@
       <implementation>org.apache.maven.project.DefaultMavenProjectBuilder</implementation>
       <requirements>
         <requirement>
-          <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.project.validation.ModelValidator</role>
         </requirement>
         <requirement>

Modified: maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-project/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-project/src/main/resources/META-INF/plexus/components.xml?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-project/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-project/src/main/resources/META-INF/plexus/components.xml Sat Sep 13 02:28:23 2008
@@ -135,15 +135,6 @@
         </requirement>
       </requirements>
     </component>
-<!--
-     |
-     |
-     |
-     -->
-    <component>
-      <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
-      <implementation>org.apache.maven.project.interpolation.RegexBasedModelInterpolator</implementation>
-    </component>
 
 <!--
      |
@@ -171,9 +162,6 @@
           <role>org.apache.maven.profiles.MavenProfilesBuilder</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.project.validation.ModelValidator</role>
         </requirement>
         <requirement>

Modified: maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml (original)
+++ maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml Sat Sep 13 02:28:23 2008
@@ -92,9 +92,6 @@
           <role>org.apache.maven.profiles.MavenProfilesBuilder</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.project.inheritance.ModelInheritanceAssembler</role>
         </requirement>
         <requirement>

Modified: maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml (original)
+++ maven/components/trunk/maven-embedder/src/test/projects/complex-project/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml Sat Sep 13 02:28:23 2008
@@ -86,9 +86,6 @@
           <role>org.apache.maven.profiles.MavenProfilesBuilder</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.project.validation.ModelValidator</role>
         </requirement>
         <requirement>

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Sat Sep 13 02:28:23 2008
@@ -20,6 +20,7 @@
  */
 
 import org.apache.maven.MavenTools;
+import org.apache.maven.shared.model.InterpolatorProperty;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.artifact.InvalidRepositoryException;
@@ -43,8 +44,6 @@
 import org.apache.maven.project.artifact.InvalidDependencyVersionException;
 import org.apache.maven.project.builder.PomArtifactResolver;
 import org.apache.maven.project.builder.ProjectBuilder;
-import org.apache.maven.project.interpolation.ModelInterpolationException;
-import org.apache.maven.project.interpolation.ModelInterpolator;
 import org.apache.maven.project.validation.ModelValidationResult;
 import org.apache.maven.project.validation.ModelValidator;
 import org.apache.maven.project.workspace.ProjectWorkspace;
@@ -90,8 +89,6 @@
     // TODO: make it a component
     private MavenXpp3Reader modelReader;
 
-    private ModelInterpolator modelInterpolator;
-
     private ProfileAdvisor profileAdvisor;
 
     private MavenTools mavenTools;
@@ -273,7 +270,7 @@
 
         try
         {
-            project = interpolateModel( project.getModel(), null, null, config );
+            project = constructMavenProjectFromModel( project.getModel(), null, null, config );
             project.setActiveProfiles( activeProfiles );
             project.setRemoteArtifactRepositories(
                 mavenTools.buildArtifactRepositories( superModel.getRepositories() ) );
@@ -285,11 +282,6 @@
             throw new ProjectBuildingException( STANDALONE_SUPERPOM_GROUPID + ":" + STANDALONE_SUPERPOM_ARTIFACTID,
                                                 "Maven super-POM contains an invalid repository!", e );
         }
-        catch ( ModelInterpolationException e )
-        {
-            throw new ProjectBuildingException( STANDALONE_SUPERPOM_GROUPID + ":" + STANDALONE_SUPERPOM_ARTIFACTID,
-                                                "Maven super-POM contains an invalid expressions!", e );
-        }
 
         project.setExecutionRoot( true );
 
@@ -393,11 +385,7 @@
         MavenProject project;
         try
         {
-            project = interpolateModel( model, projectDescriptor, parentDescriptor, config );
-        }
-        catch ( ModelInterpolationException e )
-        {
-            throw new InvalidProjectModelException( projectId, e.getMessage(), projectDescriptor, e );
+            project = constructMavenProjectFromModel( model, projectDescriptor, parentDescriptor, config );
         }
         catch ( InvalidRepositoryException e )
         {
@@ -417,19 +405,11 @@
         return project;
     }
 
-    private MavenProject interpolateModel( Model model, File pomFile, File parentFile,
+    private MavenProject constructMavenProjectFromModel( Model model, File pomFile, File parentFile,
                                                            ProjectBuilderConfiguration config )
-        throws ProjectBuildingException, ModelInterpolationException, InvalidRepositoryException
+            throws ProjectBuildingException, InvalidRepositoryException
     {
-        File projectDir = null;
-        if ( pomFile != null )
-        {
-            projectDir = pomFile.getAbsoluteFile().getParentFile();
-        }
 
-        model = modelInterpolator.interpolate( model, projectDir, config, getLogger().isDebugEnabled() );
-
-        // We will return a different project object using the new model (hence the need to return a project, not just modify the parameter)
         MavenProject project = new MavenProject( model, artifactFactory, mavenTools, this, config );
 
         Artifact projectArtifact = artifactFactory.createBuildArtifact( project.getGroupId(), project.getArtifactId(),
@@ -551,11 +531,15 @@
             throw new IllegalArgumentException( "projectBuilder: not initialized" );
         }
 
+        List<InterpolatorProperty> interpolatorProperties = new ArrayList<InterpolatorProperty>();
+        interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( config.getExecutionProperties()));
+        interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( config.getUserProperties()));
+
         MavenProject mavenProject;
         try
         {
             mavenProject = projectBuilder.buildFromLocalPath( new FileInputStream( projectDescriptor ), Arrays.asList(
-                getSuperProject( config, projectDescriptor, true ).getModel() ), null, null, resolver,
+                getSuperProject( config, projectDescriptor, true ).getModel() ), null, interpolatorProperties, resolver,
                                                                                  projectDescriptor.getParentFile(),
                                                                                  config );
         }

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/InvalidProjectModelException.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/InvalidProjectModelException.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/InvalidProjectModelException.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/InvalidProjectModelException.java Sat Sep 13 02:28:23 2008
@@ -20,7 +20,6 @@
  */
 
 import org.apache.maven.artifact.InvalidRepositoryException;
-import org.apache.maven.project.interpolation.ModelInterpolationException;
 import org.apache.maven.project.validation.ModelValidationResult;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
@@ -68,20 +67,6 @@
         this( projectId, message, new File( pomLocation ) );
     }
 
-    /**
-     * @deprecated use {@link File} constructor for pomLocation
-     */
-    public InvalidProjectModelException( String projectId, String pomLocation, String message,
-                                         ModelInterpolationException cause )
-    {
-        this( projectId, message, new File( pomLocation ), cause );
-    }
-
-    public InvalidProjectModelException( String projectId, String message, File pomLocation,
-                                         ModelInterpolationException cause )
-    {
-        super( projectId, message, pomLocation, cause );
-    }
 
     /**
      * @deprecated use {@link File} constructor for pomLocation

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java Sat Sep 13 02:28:23 2008
@@ -22,7 +22,6 @@
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.profiles.ProfileManager;
-import org.apache.maven.project.interpolation.ModelInterpolationException;
 
 import java.io.File;
 import java.util.List;

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectBuildingException.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectBuildingException.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectBuildingException.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectBuildingException.java Sat Sep 13 02:28:23 2008
@@ -6,7 +6,6 @@
 import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
 import org.apache.maven.profiles.activation.ProfileActivationException;
 import org.apache.maven.project.artifact.InvalidDependencyVersionException;
-import org.apache.maven.project.interpolation.ModelInterpolationException;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 import java.io.File;
@@ -251,30 +250,6 @@
         pomFile = new File( pomLocation );
     }
 
-    protected ProjectBuildingException( String projectId, String message, File pomFile,
-                                        ModelInterpolationException cause )
-    {
-        super( message, cause );
-        this.projectId = projectId;
-        this.pomFile = pomFile;
-    }
-
-    /**
-     * @deprecated use {@link File} constructor for pomLocation
-     */
-    protected ProjectBuildingException( String projectId, String message, String pomLocation,
-                                        ModelInterpolationException cause )
-    {
-        super( message, cause );
-        this.projectId = projectId;
-        pomFile = new File( pomLocation );
-    }
-
-    public ProjectBuildingException( String projectId, String message, ModelInterpolationException cause )
-    {
-        super( message, cause );
-        this.projectId = projectId;
-    }
 
     public File getPomFile()
     {

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java Sat Sep 13 02:28:23 2008
@@ -95,19 +95,19 @@
             {
                 if ( version == null && mp.getUri().equals( uri + "/version" ) )
                 {
-                    this.version = mp.getValue();
+                    this.version = mp.getResolvedValue();
                 }
                 else if ( artifactId == null && mp.getUri().equals( uri + "/artifactId" ) )
                 {
-                    this.artifactId = mp.getValue();
+                    this.artifactId = mp.getResolvedValue();
                 }
                 else if ( groupId == null && mp.getUri().equals( uri + "/groupId" ) )
                 {
-                    this.groupId = mp.getValue();
+                    this.groupId = mp.getResolvedValue();
                 }
                 else if ( mp.getUri().equals( ProjectUri.Dependencies.Dependency.type ) && type == null )
                 {
-                    this.type = mp.getValue();
+                    this.type = mp.getResolvedValue();
                 }
             }
             if ( groupId == null )

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/IdModelContainerFactory.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/IdModelContainerFactory.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/IdModelContainerFactory.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/IdModelContainerFactory.java Sat Sep 13 02:28:23 2008
@@ -70,7 +70,7 @@
             {
                 if ( mp.getUri().endsWith( "/id" ) )
                 {
-                    this.id = mp.getValue();
+                    this.id = mp.getResolvedValue();
                 }
             }
         }

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicDomainModel.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicDomainModel.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicDomainModel.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicDomainModel.java Sat Sep 13 02:28:23 2008
@@ -65,6 +65,8 @@
 
     private File parentFile;
 
+    private File projectDirectory;
+
     /**
      * Constructor
      *
@@ -128,6 +130,21 @@
     {
         this.parentFile = parentFile;
     }
+    
+    public void setProjectDirectory(File projectDirectory)
+    {
+        this.projectDirectory = projectDirectory;
+    }
+
+    public File getProjectDirectory()
+    {
+        return projectDirectory;
+    }
+
+    public boolean isPomInBuild()
+    {
+        return projectDirectory != null;
+    }
 
     /**
      * Returns true if groupId.equals(a.groupId) && artifactId.equals(a.artifactId) && version.equals(a.version),

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java Sat Sep 13 02:28:23 2008
@@ -20,18 +20,15 @@
  */
 
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-import org.apache.maven.shared.model.DomainModel;
-import org.apache.maven.shared.model.ModelContainer;
-import org.apache.maven.shared.model.ModelContainerAction;
-import org.apache.maven.shared.model.ModelDataSource;
-import org.apache.maven.shared.model.ModelMarshaller;
-import org.apache.maven.shared.model.ModelProperty;
-import org.apache.maven.shared.model.ModelTransformer;
+import org.apache.maven.model.Model;
+import org.apache.maven.shared.model.*;
 import org.apache.maven.shared.model.impl.DefaultModelDataSource;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 import java.io.IOException;
 import java.io.StringReader;
+import java.io.File;
+import java.io.ByteArrayInputStream;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -138,9 +135,9 @@
         List<ModelProperty> props = new ArrayList<ModelProperty>();
         for ( ModelProperty mp : properties )
         { //TODO: Resolved values
-            if ( mp.getValue() != null && ( mp.getValue().contains( "=" ) || mp.getValue().contains( "<" ) ) )
+            if ( mp.getResolvedValue() != null && ( mp.getResolvedValue().contains( "=" ) || mp.getResolvedValue().contains( "<" ) ) )
             {
-                props.add( new ModelProperty( mp.getUri(), "<![CDATA[" + mp.getValue() + "]]>" ) );
+                props.add( new ModelProperty( mp.getUri(), "<![CDATA[" + mp.getResolvedValue() + "]]>" ) );
             }
             else
             {
@@ -257,9 +254,10 @@
     }
 
     /**
-     * @see ModelTransformer#transformToModelProperties(java.util.List)
+     * @see ModelTransformer#transformToModelProperties(java.util.List, java.util.List)
      */
-    public List<ModelProperty> transformToModelProperties( List<DomainModel> domainModels )
+    public List<ModelProperty> transformToModelProperties( List<DomainModel> domainModels, 
+                                                           List<InterpolatorProperty> interpolatorProperties)
         throws IOException
     {
         if ( domainModels == null || domainModels.isEmpty() )
@@ -303,7 +301,7 @@
                 ModelProperty parentVersion = getPropertyFor( ProjectUri.Parent.version, tmp );
                 if ( parentVersion != null )
                 {
-                    tmp.add( new ModelProperty( ProjectUri.version, parentVersion.getValue() ) );
+                    tmp.add( new ModelProperty( ProjectUri.version, parentVersion.getResolvedValue() ) );
                 }
             }
 
@@ -324,7 +322,7 @@
                 ModelProperty parentGroupId = getPropertyFor( ProjectUri.Parent.groupId, tmp );
                 if ( parentGroupId != null )
                 {
-                    tmp.add( new ModelProperty( ProjectUri.groupId, parentGroupId.getValue() ) );
+                    tmp.add( new ModelProperty( ProjectUri.groupId, parentGroupId.getResolvedValue() ) );
                 }
 
             }
@@ -342,7 +340,7 @@
                     for ( ModelProperty mp : container.getProperties() )
                     {
                         if ( mp.getUri().equals( ProjectUri.Build.Plugins.Plugin.Executions.Execution.inherited ) &&
-                            mp.getValue() != null && mp.getValue().equals( "false" ) )
+                            mp.getResolvedValue() != null && mp.getResolvedValue().equals( "false" ) )
                         {
                             removeProperties.addAll( container.getProperties() );
                             for ( int j = tmp.indexOf( mp ); j >= 0; j-- )
@@ -370,8 +368,8 @@
                 {
                     for ( ModelProperty mp : container.getProperties() )
                     {
-                        if ( mp.getUri().equals( ProjectUri.Build.Plugins.Plugin.inherited ) && mp.getValue() != null &&
-                            mp.getValue().equals( "false" ) )
+                        if ( mp.getUri().equals( ProjectUri.Build.Plugins.Plugin.inherited ) && mp.getResolvedValue() != null &&
+                            mp.getResolvedValue().equals( "false" ) )
                         {
                             removeProperties.addAll( container.getProperties() );
                             for ( int j = tmp.indexOf( mp ); j >= 0; j-- )
@@ -393,7 +391,7 @@
             ModelProperty scmUrlProperty = getPropertyFor( ProjectUri.Scm.url, tmp );
             if ( scmUrl.length() == 0 && scmUrlProperty != null )
             {
-                scmUrl.append( scmUrlProperty.getValue() );
+                scmUrl.append( scmUrlProperty.getResolvedValue() );
                 for ( String projectName : projectNames )
                 {
                     scmUrl.append( "/" ).append( projectName );
@@ -407,7 +405,7 @@
             scmUrlProperty = getPropertyFor( ProjectUri.Scm.connection, tmp );
             if ( scmConnectionUrl.length() == 0 && scmUrlProperty != null )
             {
-                scmConnectionUrl.append( scmUrlProperty.getValue() );
+                scmConnectionUrl.append( scmUrlProperty.getResolvedValue() );
                 for ( String projectName : projectNames )
                 {
                     scmConnectionUrl.append( "/" ).append( projectName );
@@ -420,7 +418,7 @@
             scmUrlProperty = getPropertyFor( ProjectUri.Scm.developerConnection, tmp );
             if ( scmDeveloperUrl.length() == 0 && scmUrlProperty != null )
             {
-                scmDeveloperUrl.append( scmUrlProperty.getValue() );
+                scmDeveloperUrl.append( scmUrlProperty.getResolvedValue() );
                 for ( String projectName : projectNames )
                 {
                     scmDeveloperUrl.append( "/" ).append( projectName );
@@ -489,29 +487,95 @@
             ModelProperty artifactId = getPropertyFor( ProjectUri.artifactId, tmp );
             if ( artifactId != null )
             {
-                projectNames.add( 0, artifactId.getValue() );
+                projectNames.add( 0, artifactId.getResolvedValue() );
             }
 
             tmp.removeAll( clearedProperties );
             modelProperties.addAll( tmp );
             modelProperties.removeAll( clearedProperties );
+        }
 
-            if ( domainModels.indexOf( domainModel ) == 0 )
+        interpolateModelProperties( modelProperties, interpolatorProperties, ((PomClassicDomainModel) domainModels.get(0)) );
+        return modelProperties;
+    }
+
+    public static String interpolateXmlString( String xml, List<InterpolatorProperty> interpolatorProperties )
+            throws IOException
+    {
+        List<ModelProperty> modelProperties =
+            ModelMarshaller.marshallXmlToModelProperties( new ByteArrayInputStream(xml.getBytes()), ProjectUri.baseUri, uris );
+
+        Map<String, String> aliases = new HashMap<String, String>();
+        aliases.put( "project.", "pom.");
+
+        List<InterpolatorProperty> ips = new ArrayList<InterpolatorProperty>(interpolatorProperties);
+        ips.addAll(ModelTransformerContext.createInterpolatorProperties(modelProperties, ProjectUri.baseUri, aliases,
+                        false, false));
+
+        for(ModelProperty mp : modelProperties)
+        {
+            if(mp.getUri().startsWith(ProjectUri.properties) && mp.getValue() != null )
             {
-                //cache.put( pomDomainModel.getId(), modelProperties );
+                String uri = mp.getUri();
+                ips.add( new InterpolatorProperty( "${" + uri.substring( uri.lastIndexOf( "/" ) + 1,
+                        uri.length() ) + "}", mp.getValue() ) );
             }
+        }
 
-            //Remove Parent Info
-            /*
-            for (ModelProperty mp : tmp) {
-                if (mp.getUri().startsWith(ProjectUri.Parent.xUri)) {
-                    modelProperties.remove(mp);
-                }
+        ModelTransformerContext.interpolateModelProperties( modelProperties, ips );
+        return ModelMarshaller.unmarshalModelPropertiesToXml( modelProperties, ProjectUri.baseUri );
+    }
+
+    public static String interpolateModelAsString(Model model, List<InterpolatorProperty> interpolatorProperties, File projectDirectory)
+            throws IOException
+    {
+        PomClassicDomainModel domainModel = new PomClassicDomainModel( model );
+        domainModel.setProjectDirectory( projectDirectory );
+        List<ModelProperty> modelProperties =
+                ModelMarshaller.marshallXmlToModelProperties( domainModel.getInputStream(), ProjectUri.baseUri, uris );
+        interpolateModelProperties( modelProperties, interpolatorProperties, domainModel);
+
+        return ModelMarshaller.unmarshalModelPropertiesToXml( modelProperties, ProjectUri.baseUri );
+    }
+
+    public static Model interpolateModel(Model model, List<InterpolatorProperty> interpolatorProperties, File projectDirectory)
+        throws IOException
+    {
+        String pomXml = interpolateModelAsString( model, interpolatorProperties, projectDirectory );
+        PomClassicDomainModel domainModel = new PomClassicDomainModel( new ByteArrayInputStream( pomXml.getBytes() ));
+        return domainModel.getModel();
+    }
+
+    private static void interpolateModelProperties(List<ModelProperty> modelProperties,
+                                                   List<InterpolatorProperty> interpolatorProperties,
+                                                   PomClassicDomainModel domainModel)
+    {
+        Map<String, String> aliases = new HashMap<String, String>();
+        aliases.put( "project.", "pom.");
+
+        List<InterpolatorProperty> ips = new ArrayList<InterpolatorProperty>(interpolatorProperties);
+        ips.addAll(ModelTransformerContext.createInterpolatorProperties(modelProperties, ProjectUri.baseUri, aliases,
+                        false, false));
+
+        if(domainModel.isPomInBuild())
+        {
+            ips.add(new InterpolatorProperty("${project.basedir}", domainModel.getProjectDirectory().getAbsolutePath()));
+            ips.add(new InterpolatorProperty("${basedir}", domainModel.getProjectDirectory().getAbsolutePath()));
+            ips.add(new InterpolatorProperty("${pom.basedir}", domainModel.getProjectDirectory().getAbsolutePath()));
+
+        }
+
+        for(ModelProperty mp : modelProperties)
+        {
+            if(mp.getUri().startsWith(ProjectUri.properties) && mp.getValue() != null )
+            {
+                String uri = mp.getUri();
+                ips.add( new InterpolatorProperty( "${" + uri.substring( uri.lastIndexOf( "/" ) + 1,
+                        uri.length() ) + "}", mp.getValue() ) );
             }
-                       */
         }
 
-        return modelProperties;
+        ModelTransformerContext.interpolateModelProperties( modelProperties, ips );
     }
 
     private static boolean hasExecutionId( ModelContainer executionContainer )
@@ -596,7 +660,7 @@
             if ( mp.getUri().startsWith( ProjectUri.DependencyManagement.xUri ) )
             {
                 transformedProperties.add( new ModelProperty(
-                    mp.getUri().replace( ProjectUri.DependencyManagement.xUri, ProjectUri.xUri ), mp.getValue() ) );
+                    mp.getUri().replace( ProjectUri.DependencyManagement.xUri, ProjectUri.xUri ), mp.getResolvedValue() ) );
             }
         }
         return transformedProperties;
@@ -611,7 +675,7 @@
             {
                 transformedProperties.add( new ModelProperty(
                     mp.getUri().replace( ProjectUri.Build.PluginManagement.xUri, ProjectUri.Build.xUri ),
-                    mp.getValue() ) );
+                    mp.getResolvedValue() ) );
             }
         }
         return transformedProperties;

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java Sat Sep 13 02:28:23 2008
@@ -139,6 +139,8 @@
         }
 
         PomClassicDomainModel domainModel = new PomClassicDomainModel( pom );
+        domainModel.setProjectDirectory( projectDirectory );
+
         List<DomainModel> domainModels = new ArrayList<DomainModel>();
         domainModels.add( domainModel );
 
@@ -160,9 +162,6 @@
                 PomClassicDomainModel dm = (PomClassicDomainModel) mavenParents.get( 0 );
                 parentFile = dm.getFile();
                 domainModel.setParentFile( parentFile );
-                // mavenParent = buildFromLocalPath( dm.getInputStream(), inheritedModels,
-                //        importModels, interpolatorProperties, resolver, projectDirectory);
-                // mavenParent.setFile(dm.getFile());
             }
 
             domainModels.addAll( mavenParents );
@@ -182,7 +181,6 @@
                                                                                                 transformer,
                                                                                                 importModels,
                                                                                                 properties ) );
-        // System.out.println(transformedDomainModel.asString());
         try
         {
             MavenProject mavenProject = new MavenProject( transformedDomainModel.getModel(), artifactFactory,
@@ -305,6 +303,8 @@
         }
 
         PomClassicDomainModel parentDomainModel = new PomClassicDomainModel( parentFile );
+        parentDomainModel.setProjectDirectory( parentFile.getParentFile() );
+
         if ( !parentDomainModel.matchesParent( domainModel.getModel().getParent() ) )
         {
             logger.warn( "Parent pom ids do not match: Parent File = " + parentFile.getAbsolutePath() +

Modified: maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml Sat Sep 13 02:28:23 2008
@@ -50,20 +50,6 @@
         </requirement>
       </requirements>
     </component>
-<!--
-     |
-     |
-     |
-     -->
-    <component>
-      <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
-      <implementation>org.apache.maven.project.interpolation.RegexBasedModelInterpolator</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.project.path.PathTranslator</role>
-        </requirement>
-      </requirements>
-    </component>
 
 <!--
      |
@@ -119,9 +105,6 @@
           <role>org.apache.maven.profiles.MavenProfilesBuilder</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.project.validation.ModelValidator</role>
         </requirement>
         <requirement>

Modified: maven/components/trunk/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml (original)
+++ maven/components/trunk/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml Sat Sep 13 02:28:23 2008
@@ -55,7 +55,7 @@
     <finalName>${project.artifactId}-${project.version}</finalName>
     <testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
     <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
-    <scriptSourceDirectory>${project.basedir}/src/main/scripts</scriptSourceDirectory>
+    <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
     <testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
     <resources>
       <resource>

Modified: maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml (original)
+++ maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml Sat Sep 13 02:28:23 2008
@@ -134,9 +134,6 @@
           <role>org.apache.maven.profiles.MavenProfilesBuilder</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.project.validation.ModelValidator</role>
         </requirement>
         <requirement>

Modified: maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml (original)
+++ maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml Sat Sep 13 02:28:23 2008
@@ -131,9 +131,6 @@
           <role>org.apache.maven.profiles.MavenProfilesBuilder</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.interpolation.ModelInterpolator</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.project.validation.ModelValidator</role>
         </requirement>
         <requirement>

Modified: maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/InterpolatorProperty.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/InterpolatorProperty.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/InterpolatorProperty.java (original)
+++ maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/InterpolatorProperty.java Sat Sep 13 02:28:23 2008
@@ -1,5 +1,7 @@
 package org.apache.maven.shared.model;
 
+import java.util.*;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -34,6 +36,7 @@
      */
     private final String value;
 
+
     /**
      * Constructor
      *
@@ -112,4 +115,24 @@
         return key.hashCode();
     }
 
+    public String toString()
+    {
+        return "Key = " + key + ", Value = " + value +  ", Hash = " +
+            this.hashCode();
+    }
+
+    public static List<InterpolatorProperty> toInterpolatorProperties( Properties properties )
+    {
+        if( properties == null )
+        {
+            throw new IllegalArgumentException( "properties: null" );
+        }
+
+        List<InterpolatorProperty> interpolatorProperties = new ArrayList<InterpolatorProperty>();
+        for ( Map.Entry<Object, Object> e : properties.entrySet() )
+        {
+            interpolatorProperties.add( new InterpolatorProperty( (String) e.getKey(), (String) e.getValue()) );
+        }
+        return interpolatorProperties;
+    }
 }

Modified: maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java (original)
+++ maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java Sat Sep 13 02:28:23 2008
@@ -239,7 +239,7 @@
                 continue;
             }
 
-            //String val = (mp.getValue() != null) ? "\"" + mp.getValue() + "\"" : null;
+            //String val = (mp.getResolvedValue() != null) ? "\"" + mp.getResolvedValue() + "\"" : null;
             //   System.out.println("new ModelProperty(\"" + mp.getUri() +"\" , " + val +"),");
             if ( !uri.startsWith( baseUri ) )
             {
@@ -346,7 +346,7 @@
             {
                 sb.append( " " ).append(
                     attribute.getUri().substring( attribute.getUri().indexOf( "#property/" ) + 10 ) ).append( "=\"" )
-                    .append( attribute.getValue() ).append( "\" " );
+                    .append( attribute.getResolvedValue() ).append( "\" " );
             }
         }
         sb.append( ">" );

Modified: maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformer.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformer.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformer.java (original)
+++ maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformer.java Sat Sep 13 02:28:23 2008
@@ -49,7 +49,8 @@
      * @param domainModels list of domain models to transform to a list of model properties. List may not be null.
      * @return list of model properties
      */
-    List<ModelProperty> transformToModelProperties( List<DomainModel> domainModels )
+    List<ModelProperty> transformToModelProperties( List<DomainModel> domainModels,
+                                                    List<InterpolatorProperty> interpolatorProperties)
         throws IOException;
 
 }

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=694907&r1=694906&r2=694907&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 Sat Sep 13 02:28:23 2008
@@ -41,6 +41,9 @@
     private final static List<InterpolatorProperty> systemInterpolatorProperties =
         new ArrayList<InterpolatorProperty>();
 
+    private final static List<InterpolatorProperty> environmentInterpolatorProperties =
+        new ArrayList<InterpolatorProperty>();
+
     static
     {
         for ( Map.Entry<Object, Object> e : System.getProperties().entrySet() )
@@ -51,7 +54,7 @@
 
         for ( Map.Entry<String, String> e : System.getenv().entrySet() )
         {
-            systemInterpolatorProperties.add( new InterpolatorProperty( "${env." + e.getKey() + "}", e.getValue() ) );
+            environmentInterpolatorProperties.add( new InterpolatorProperty( "${env." + e.getKey() + "}", e.getValue() ) );
         }
     }
 
@@ -72,6 +75,84 @@
         }
     }
 
+    public static List<InterpolatorProperty> createInterpolatorProperties(List<ModelProperty> modelProperties,
+                                                                      String baseUriForModel,
+                                                                      Map<String, String> aliases,
+                                                                      boolean includeSystemProperties,
+                                                                      boolean includeEnvironmentProperties)
+    {
+        if(modelProperties == null)
+        {
+            throw new IllegalArgumentException("modelProperties: null");
+        }
+
+        if(baseUriForModel == null)
+        {
+            throw new IllegalArgumentException( "baseUriForModel: null");
+        }
+
+        List<InterpolatorProperty> interpolatorProperties
+                = new ArrayList<InterpolatorProperty>( );
+
+        if( includeSystemProperties )
+        {
+            interpolatorProperties.addAll( systemInterpolatorProperties );
+        }
+
+        if( includeEnvironmentProperties )
+        {
+            interpolatorProperties.addAll( environmentInterpolatorProperties );
+        }
+
+        for ( ModelProperty mp : modelProperties )
+        {
+            InterpolatorProperty ip = mp.asInterpolatorProperty( baseUriForModel );
+            if ( ip != null )
+            {
+                interpolatorProperties.add( ip );
+                for ( Map.Entry<String, String> a : aliases.entrySet() )
+                {
+                    interpolatorProperties.add( new InterpolatorProperty(
+                            ip.getKey().replaceAll( a.getKey(), a.getValue()),
+                            ip.getValue().replaceAll( a.getKey(), a.getValue()) ) );
+                }
+            }
+        }
+        return interpolatorProperties;
+    }
+
+    public static void interpolateModelProperties(List<ModelProperty> modelProperties, 
+                                                  List<InterpolatorProperty> interpolatorProperties )
+    {
+
+        List<ModelProperty> unresolvedProperties = new ArrayList<ModelProperty>();
+        for ( ModelProperty mp : modelProperties )
+        {
+            if ( !mp.isResolved() )
+            {
+                unresolvedProperties.add( mp );
+            }
+        }
+
+        for ( InterpolatorProperty ip : interpolatorProperties )
+        {
+            for ( ModelProperty mp : unresolvedProperties )
+            {
+                  mp.resolveWith(ip);
+            }
+        }
+
+
+        for ( InterpolatorProperty ip : interpolatorProperties )
+        {
+            for ( ModelProperty mp : unresolvedProperties )
+            {
+                  mp.resolveWith(ip);
+            }
+        }
+    }
+
+
     /**
      * Transforms the specified model properties using the specified transformers.
      *
@@ -115,13 +196,12 @@
      */
     public DomainModel transform(List<DomainModel> domainModels, ModelTransformer fromModelTransformer,
                                  ModelTransformer toModelTransformer,
-                                 Collection<ImportModel> importModels, Collection<InterpolatorProperty> interpolatorProperties)
+                                 Collection<ImportModel> importModels, List<InterpolatorProperty> interpolatorProperties)
         throws IOException
     {
-        List<InterpolatorProperty> properties = new ArrayList<InterpolatorProperty>( interpolatorProperties );
 
         List<ModelProperty> transformedProperties =
-                importModelProperties(importModels, fromModelTransformer.transformToModelProperties( domainModels ));
+                importModelProperties(importModels, fromModelTransformer.transformToModelProperties( domainModels, interpolatorProperties ));
 
         String baseUriForModel = fromModelTransformer.getBaseUri();
         List<ModelProperty> modelProperties =
@@ -183,38 +263,9 @@
             }
         }
 
-        //interpolator
-        List<ModelProperty> mps = modelDataSource.getModelProperties();
-
-        for ( ModelProperty mp : mps )
-        {
-            InterpolatorProperty ip = mp.asInterpolatorProperty( baseUriForModel );
-            if ( ip != null )
-            {
-                properties.add( ip );
-            }
-        }
-
-        List<ModelProperty> unresolvedProperties = new ArrayList<ModelProperty>();
-        for ( ModelProperty mp : mps )
-        {
-            if ( !mp.isResolved() )
-            {
-                unresolvedProperties.add( mp );
-            }
-        }
 
-        /*
-        for ( InterpolatorProperty ip : properties )
-        {
-            for ( ModelProperty mp : unresolvedProperties )
-            {
-                  mp.resolveWith(ip);
-                  System.out.println(mp);
-                 System.out.println("-------------------");
-            }
-        }
-        */
+        List<ModelProperty> mps = modelDataSource.getModelProperties();
+        //interpolateModelProperties( mps, baseUriForModel );
         mps = sort( mps, baseUriForModel );
 
         try
@@ -254,7 +305,7 @@
         for(ModelProperty mp: modelProperties) {
             if(mp.getUri().endsWith("importModel")) {
                 for(ImportModel im : importModels) {
-                    if(im.getId().equals(mp.getValue())) {
+                    if(im.getId().equals(mp.getResolvedValue())) {
                         properties.addAll(im.getModelProperties());
                     }
                 }
@@ -322,7 +373,7 @@
         List<ModelProperty> mps = new ArrayList<ModelProperty>();
         for(ModelProperty mp : modelProperties)
         {
-            if(mp.getValue() != null && mp.getValue().trim().equals("") && isLeafNode( mp, modelProperties) )
+            if(mp.getResolvedValue() != null && mp.getResolvedValue().trim().equals("") && isLeafNode( mp, modelProperties) )
             {
                 mps.add( new ModelProperty(mp.getUri(), null) );
             }

Modified: maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java (original)
+++ maven/components/trunk/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java Sat Sep 13 02:28:23 2008
@@ -347,7 +347,7 @@
         for ( ModelProperty mp : m )
         {
             String x = mp.getUri();
-            if ( x.endsWith( "#property/combine.children" ) && mp.getValue().equals( "append" ) )
+            if ( x.endsWith( "#property/combine.children" ) && mp.getResolvedValue().equals( "append" ) )
             {
                 combineChildrenUris.add( x.substring( 0, x.length() - 26 ) );
             }

Modified: maven/components/trunk/maven-shared-model/src/test/java/org/apache/maven/shared/model/ModelMarshallerTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-shared-model/src/test/java/org/apache/maven/shared/model/ModelMarshallerTest.java?rev=694907&r1=694906&r2=694907&view=diff
==============================================================================
--- maven/components/trunk/maven-shared-model/src/test/java/org/apache/maven/shared/model/ModelMarshallerTest.java (original)
+++ maven/components/trunk/maven-shared-model/src/test/java/org/apache/maven/shared/model/ModelMarshallerTest.java Sat Sep 13 02:28:23 2008
@@ -95,7 +95,7 @@
         assertEquals( 2, modelProperties.size() );
         assertEquals( "http://apache.org/maven/project", modelProperties.get( 0 ).getUri() );
         assertEquals( "http://apache.org/maven/project/version", modelProperties.get( 1 ).getUri() );
-        assertEquals( "1.1", modelProperties.get( 1 ).getValue() );
+        assertEquals( "1.1", modelProperties.get( 1 ).getResolvedValue() );
     }
 
     /*