Author: sisbell
Date: Wed Apr 29 17:00:17 2009
New Revision: 769827

URL: http://svn.apache.org/viewvc?rev=769827&view=rev
Log:
Cleanup of interpolator, removing references to PomClassicDomainModel, these 
aren't needed anymore.

Removed:
    maven/components/branches/MNG-2766/maven-model-builder/src/test/
Modified:
    
maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
    
maven/components/branches/MNG-2766/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/DefaultInterpolator.java
    
maven/components/branches/MNG-2766/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/Interpolator.java
    
maven/components/branches/MNG-2766/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/PomInterpolatorTag.java

Modified: 
maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=769827&r1=769826&r2=769827&view=diff
==============================================================================
--- 
maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
 (original)
+++ 
maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
 Wed Apr 29 17:00:17 2009
@@ -417,7 +417,7 @@
         }
         try
         {
-            model = interpolator.interpolateDomainModel( domainModel, props 
).getModel();
+            model = interpolator.interpolateModel( model, props, 
domainModel.getProjectDirectory() );
         }
         catch ( IOException e )
         {
@@ -465,7 +465,6 @@
             
             List<InterpolatorProperty> interpolatorProperties = new 
ArrayList<InterpolatorProperty>();
             interpolatorProperties.addAll( 
InterpolatorProperty.toInterpolatorProperties( 
projectBuilderConfiguration.getExecutionProperties(), 
PomInterpolatorTag.EXECUTION_PROPERTIES.name() ) );
-            interpolatorProperties.addAll( 
InterpolatorProperty.toInterpolatorProperties( 
projectBuilderConfiguration.getUserProperties(), 
PomInterpolatorTag.USER_PROPERTIES.name() ) );
             
             ProfileManagerInfo profileInfo = new 
ProfileManagerInfo(interpolatorProperties, activeProfileIds, 
inactiveProfileIds);
             PomClassicDomainModel domainModel = new PomClassicDomainModel( 
pomFile );

Modified: 
maven/components/branches/MNG-2766/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/DefaultInterpolator.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/DefaultInterpolator.java?rev=769827&r1=769826&r2=769827&view=diff
==============================================================================
--- 
maven/components/branches/MNG-2766/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/DefaultInterpolator.java
 (original)
+++ 
maven/components/branches/MNG-2766/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/DefaultInterpolator.java
 Wed Apr 29 17:00:17 2009
@@ -1,9 +1,11 @@
 package org.apache.maven.model.interpolator;
 
 import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.Writer;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -29,39 +31,41 @@
 import org.apache.maven.model.ProjectUri;
 import org.apache.maven.model.Reporting;
 import org.apache.maven.model.Resource;
+import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
 import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.util.WriterFactory;
 
 @Component(role = Interpolator.class)
 public class DefaultInterpolator
     implements Interpolator
 {
-    public PomClassicDomainModel interpolateDomainModel( PomClassicDomainModel 
dm, Properties properties )
+    public Model interpolateModel( Model model, Properties properties, File 
projectDirectory )
         throws IOException
     {
-        List<InterpolatorProperty> props = new 
ArrayList<InterpolatorProperty>();
-        for ( Entry<Object, Object> e : properties.entrySet() )
+        if ( model == null )
         {
-            props.add( new InterpolatorProperty( (String) e.getKey(), (String) 
e.getValue(), PomInterpolatorTag.EXECUTION_PROPERTIES.toString() ) );
+            throw new IllegalArgumentException( "model: null" );
         }
-        return interpolateDomainModel( dm, props );
-    }
-
-    public PomClassicDomainModel interpolateDomainModel( PomClassicDomainModel 
dm, List<InterpolatorProperty> interpolatorProperties )
-        throws IOException
-    {
-
-        if ( dm == null )
+        
+        if(properties == null)
         {
-            throw new IllegalArgumentException( "dm: null" );
+               return model;
         }
+        
+        List<InterpolatorProperty>  interpolatorProperties = new 
ArrayList<InterpolatorProperty>();
+        for ( Entry<Object, Object> e : properties.entrySet() )
+        {
+                interpolatorProperties.add( new InterpolatorProperty( (String) 
e.getKey(), (String) e.getValue(), 
PomInterpolatorTag.EXECUTION_PROPERTIES.toString() ) );
+        }
+
         if ( !containsProjectVersion( interpolatorProperties ) )
         {
             aliases.put( "\\$\\{project.version\\}", "\\$\\{version\\}" );
         }
         //TODO: Insert customized logic for parsing
-        List<ModelProperty> modelProperties = getModelProperties( 
dm.getInputStream() );
+        List<ModelProperty> modelProperties = getModelProperties( model );
 
-        if ( "jar".equals( dm.getModel().getPackaging() ) )
+        if ( "jar".equals( model.getPackaging() ) )
         {
             modelProperties.add( new ModelProperty( ProjectUri.packaging, 
"jar" ) );
         }
@@ -88,17 +92,14 @@
 
         List<InterpolatorProperty> standardInterpolatorProperties = new 
ArrayList<InterpolatorProperty>();
 
-        if ( dm.isPomInBuild() )
-        {
-            String basedir = dm.getProjectDirectory().getAbsolutePath();
-            standardInterpolatorProperties.add( new InterpolatorProperty( 
"${project.basedir}", basedir, PomInterpolatorTag.PROJECT_PROPERTIES.name() ) );
-            standardInterpolatorProperties.add( new InterpolatorProperty( 
"${basedir}", basedir, PomInterpolatorTag.PROJECT_PROPERTIES.name() ) );
-            standardInterpolatorProperties.add( new InterpolatorProperty( 
"${pom.basedir}", basedir, PomInterpolatorTag.PROJECT_PROPERTIES.name() ) );
-
-            String baseuri = dm.getProjectDirectory().toURI().toString();
-            standardInterpolatorProperties.add( new InterpolatorProperty( 
"${project.baseUri}", baseuri, PomInterpolatorTag.PROJECT_PROPERTIES.name() ) );
-            standardInterpolatorProperties.add( new InterpolatorProperty( 
"${pom.baseUri}", baseuri, PomInterpolatorTag.PROJECT_PROPERTIES.name() ) );
-        }
+        String basedir = projectDirectory.getAbsolutePath();
+        standardInterpolatorProperties.add( new InterpolatorProperty( 
"${project.basedir}", basedir, PomInterpolatorTag.PROJECT_PROPERTIES.name() ) );
+        standardInterpolatorProperties.add( new InterpolatorProperty( 
"${basedir}", basedir, PomInterpolatorTag.PROJECT_PROPERTIES.name() ) );
+        standardInterpolatorProperties.add( new InterpolatorProperty( 
"${pom.basedir}", basedir, PomInterpolatorTag.PROJECT_PROPERTIES.name() ) );
+
+        String baseuri = projectDirectory.toURI().toString();
+        standardInterpolatorProperties.add( new InterpolatorProperty( 
"${project.baseUri}", baseuri, PomInterpolatorTag.PROJECT_PROPERTIES.name() ) );
+        standardInterpolatorProperties.add( new InterpolatorProperty( 
"${pom.baseUri}", baseuri, PomInterpolatorTag.PROJECT_PROPERTIES.name() ) );
 
         for ( ModelProperty mp : modelProperties )
         {
@@ -129,28 +130,24 @@
 
         interpolateModelProperties( modelProperties, ips1 );
 
-        // SECOND PASS - Set absolute paths on build directories
-        if ( dm.isPomInBuild() )
+        Map<ModelProperty, ModelProperty> buildDirectories = new 
HashMap<ModelProperty, ModelProperty>();
+        for ( ModelProperty mp : secondPassModelProperties )
         {
-            String basedir = dm.getProjectDirectory().getAbsolutePath();
-            Map<ModelProperty, ModelProperty> buildDirectories = new 
HashMap<ModelProperty, ModelProperty>();
-            for ( ModelProperty mp : secondPassModelProperties )
-            {
-                if ( mp.getUri().startsWith( ProjectUri.Build.xUri ) || 
mp.getUri().equals( ProjectUri.Reporting.outputDirectory ) )
-                {
-                    File file = new File( mp.getResolvedValue() );
-                    if ( !file.isAbsolute() && 
!mp.getResolvedValue().startsWith( "${project.build." ) && 
!mp.getResolvedValue().equals( "${project.basedir}" ) )
-                    {
-                        buildDirectories.put( mp, new ModelProperty( 
mp.getUri(), new File( basedir, file.getPath() ).getAbsolutePath() ) );
-                    }
-                }
-            }
-            for ( Map.Entry<ModelProperty, ModelProperty> e : 
buildDirectories.entrySet() )
-            {
-                secondPassModelProperties.remove( e.getKey() );
-                secondPassModelProperties.add( e.getValue() );
-            }
+               if ( mp.getUri().startsWith( ProjectUri.Build.xUri ) || 
mp.getUri().equals( ProjectUri.Reporting.outputDirectory ) )
+               {
+                       File file = new File( mp.getResolvedValue() );
+                       if ( !file.isAbsolute() && 
!mp.getResolvedValue().startsWith( "${project.build." ) && 
!mp.getResolvedValue().equals( "${project.basedir}" ) )
+                       {
+                               buildDirectories.put( mp, new ModelProperty( 
mp.getUri(), new File( basedir, file.getPath() ).getAbsolutePath() ) );
+                       }
+               }
         }
+        for ( Map.Entry<ModelProperty, ModelProperty> e : 
buildDirectories.entrySet() )
+        {
+               secondPassModelProperties.remove( e.getKey() );
+               secondPassModelProperties.add( e.getValue() );
+        }
+
 
         // THIRD PASS - Use build directories as interpolator properties
         List<InterpolatorProperty> ips2 = new ArrayList<InterpolatorProperty>( 
interpolatorProperties );
@@ -175,30 +172,17 @@
         try
         {
             String xml = unmarshalModelPropertiesToXml( modelProperties, 
ProjectUri.baseUri );
-            PomClassicDomainModel domainModel = new PomClassicDomainModel( new 
ByteArrayInputStream( xml.getBytes( "UTF-8" ) ) );
-            if ( dm.getProjectDirectory() != null )
+            Model m = new PomClassicDomainModel( new ByteArrayInputStream( 
xml.getBytes( "UTF-8" ) ) ).getModel();
+            if ( projectDirectory != null )
             {
-                alignPaths( domainModel.getModel(), dm.getProjectDirectory() );
+                alignPaths( m, projectDirectory );
             }
-            return domainModel;
+            return m;
         }
         catch ( IOException e )
         {
             throw new IllegalStateException( "Unmarshalling of model 
properties failed", e );
         }
-
-        /*
-        for(ModelProperty mp : modelProperties)
-        {
-               if((mp.getValue() != null) && 
!mp.getValue().equals(mp.getResolvedValue()))
-               {
-                       if(mp.getUri().equals(ProjectUri.version))
-                       {
-                               
-                       }
-               }
-        }
-        */
     }
 
     /**
@@ -350,9 +334,27 @@
         return ips;
     }
 
-    private static List<ModelProperty> getModelProperties( InputStream is )
+    
+    private static List<ModelProperty> getModelProperties( Model model )
         throws IOException
     {
+       
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        Writer out = null;
+        MavenXpp3Writer writer = new MavenXpp3Writer();
+        try
+        {
+            out = WriterFactory.newXmlWriter( baos );
+            writer.write( out, model );
+        }
+        finally
+        {
+            if ( out != null )
+            {
+                out.close();
+            }
+        }
+       
         Set<String> s = new HashSet<String>();
         //TODO: Should add all collections from ProjectUri
         s.addAll( URIS );
@@ -378,7 +380,7 @@
         s.add( ProjectUri.Profiles.Profile.Dependencies.xUri );
         s.add( ProjectUri.Profiles.Profile.Build.Plugins.Plugin.configuration 
);
 
-        return new ArrayList<ModelProperty>( marshallXmlToModelProperties( is, 
ProjectUri.baseUri, s ) );
+        return new ArrayList<ModelProperty>( marshallXmlToModelProperties(  
new ByteArrayInputStream(baos.toByteArray()), ProjectUri.baseUri, s ) );
     }
 
     /**
@@ -414,8 +416,6 @@
                 continue;
             }
 
-            //String val = (mp.getResolvedValue() != null) ? "\"" + 
mp.getResolvedValue() + "\"" : null;
-            //   System.out.println("new ModelProperty(\"" + mp.getUri() +"\" 
, " + val +"),");
             if ( !uri.startsWith( baseUri ) )
             {
                 throw new IllegalArgumentException( "Passed in model property 
that does not match baseUri: Property URI = " + uri + ", Base URI = " + baseUri 
);

Modified: 
maven/components/branches/MNG-2766/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/Interpolator.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/Interpolator.java?rev=769827&r1=769826&r2=769827&view=diff
==============================================================================
--- 
maven/components/branches/MNG-2766/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/Interpolator.java
 (original)
+++ 
maven/components/branches/MNG-2766/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/Interpolator.java
 Wed Apr 29 17:00:17 2009
@@ -1,12 +1,13 @@
 package org.apache.maven.model.interpolator;
 
+import java.io.File;
 import java.io.IOException;
 import java.util.Properties;
 
-import org.apache.maven.model.PomClassicDomainModel;
+import org.apache.maven.model.Model;
 
 public interface Interpolator 
 {
-    PomClassicDomainModel interpolateDomainModel( PomClassicDomainModel dm, 
Properties interpolatorProperties )
+       Model interpolateModel( Model model, Properties properties, File 
projectDirectory )
         throws IOException;
 }

Modified: 
maven/components/branches/MNG-2766/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/PomInterpolatorTag.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/PomInterpolatorTag.java?rev=769827&r1=769826&r2=769827&view=diff
==============================================================================
--- 
maven/components/branches/MNG-2766/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/PomInterpolatorTag.java
 (original)
+++ 
maven/components/branches/MNG-2766/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/PomInterpolatorTag.java
 Wed Apr 29 17:00:17 2009
@@ -1,11 +1,7 @@
 package org.apache.maven.model.interpolator;
 
-
 public enum PomInterpolatorTag
 {
-
-    USER_PROPERTIES,
-
     PROJECT_PROPERTIES,
 
     EXECUTION_PROPERTIES


Reply via email to