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 2009/04/29 19:00:18 UTC

svn commit: r769827 - in /maven/components/branches/MNG-2766: maven-core/src/main/java/org/apache/maven/project/ maven-model-builder/src/main/java/org/apache/maven/model/interpolator/ maven-model-builder/src/test/

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