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