You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2008/12/14 07:17:06 UTC
svn commit: r726381 - in
/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder:
Interpolator.java PomClassicTransformer.java impl/DefaultProjectBuilder.java
Author: jvanzyl
Date: Sat Dec 13 22:17:05 2008
New Revision: 726381
URL: http://svn.apache.org/viewvc?rev=726381&view=rev
Log:
o preparing to refactor the plugin management and plugin executions calculations
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/Interpolator.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
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/Interpolator.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/Interpolator.java?rev=726381&r1=726380&r2=726381&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/Interpolator.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/Interpolator.java Sat Dec 13 22:17:05 2008
@@ -1,6 +1,3 @@
-/**
- *
- */
package org.apache.maven.project.builder;
import java.io.ByteArrayInputStream;
@@ -19,29 +16,27 @@
import org.apache.maven.shared.model.ModelProperty;
import org.apache.maven.shared.model.ModelTransformerContext;
-public class Interpolator {
+public class Interpolator
+{
+ // Only used by the plugin manager
public static String interpolateXmlString( String xml, List<InterpolatorProperty> interpolatorProperties )
- throws IOException
+ throws IOException
{
- List<ModelProperty> modelProperties =
- ModelMarshaller.marshallXmlToModelProperties( new ByteArrayInputStream(xml.getBytes()), ProjectUri.baseUri,
- PomTransformer.URIS );
+ List<ModelProperty> modelProperties = ModelMarshaller.marshallXmlToModelProperties( new ByteArrayInputStream( xml.getBytes() ), ProjectUri.baseUri, PomTransformer.URIS );
Map<String, String> aliases = new HashMap<String, String>();
- aliases.put( "project.", "pom.");
+ aliases.put( "project.", "pom." );
- List<InterpolatorProperty> ips = new ArrayList<InterpolatorProperty>(interpolatorProperties);
- ips.addAll(ModelTransformerContext.createInterpolatorProperties(modelProperties, ProjectUri.baseUri, aliases,
- PomInterpolatorTag.PROJECT_PROPERTIES.name(), false, false));
+ List<InterpolatorProperty> ips = new ArrayList<InterpolatorProperty>( interpolatorProperties );
+ ips.addAll( ModelTransformerContext.createInterpolatorProperties( modelProperties, ProjectUri.baseUri, aliases, PomInterpolatorTag.PROJECT_PROPERTIES.name(), false, false ) );
- for(ModelProperty mp : modelProperties)
+ for ( ModelProperty mp : modelProperties )
{
- if(mp.getUri().startsWith(ProjectUri.properties) && mp.getValue() != null )
+ 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() ) );
+ ips.add( new InterpolatorProperty( "${" + uri.substring( uri.lastIndexOf( "/" ) + 1, uri.length() ) + "}", mp.getValue() ) );
}
}
@@ -49,23 +44,22 @@
return ModelMarshaller.unmarshalModelPropertiesToXml( modelProperties, ProjectUri.baseUri );
}
- public static String interpolateModelAsString(Model model, List<InterpolatorProperty> interpolatorProperties, File projectDirectory)
- throws IOException
+ private 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, PomTransformer.URIS );
- interpolateModelProperties( modelProperties, interpolatorProperties, domainModel);
+ List<ModelProperty> modelProperties = ModelMarshaller.marshallXmlToModelProperties( domainModel.getInputStream(), ProjectUri.baseUri, PomTransformer.URIS );
+ interpolateModelProperties( modelProperties, interpolatorProperties, domainModel );
return ModelMarshaller.unmarshalModelPropertiesToXml( modelProperties, ProjectUri.baseUri );
}
- public static Model interpolateModel(Model model, List<InterpolatorProperty> interpolatorProperties, File projectDirectory)
+ 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() ));
+ PomClassicDomainModel domainModel = new PomClassicDomainModel( new ByteArrayInputStream( pomXml.getBytes() ) );
return domainModel.getModel();
}
@@ -79,7 +73,7 @@
static
{
- aliases.put( "\\$\\{project\\.", "\\$\\{pom\\.");
+ aliases.put( "\\$\\{project\\.", "\\$\\{pom\\." );
addProjectAlias( "modelVersion", true );
addProjectAlias( "groupId", true );
addProjectAlias( "artifactId", true );
@@ -100,87 +94,81 @@
addProjectAlias( "ciManagement", false );
}
- public static void interpolateModelProperties(List<ModelProperty> modelProperties,
- List<InterpolatorProperty> interpolatorProperties,
- PomClassicDomainModel domainModel)
- throws IOException
+ public static void interpolateModelProperties( List<ModelProperty> modelProperties, List<InterpolatorProperty> interpolatorProperties, PomClassicDomainModel domainModel )
+ throws IOException
{
- if(!containsProjectVersion(interpolatorProperties))
+ if ( !containsProjectVersion( interpolatorProperties ) )
{
- aliases.put("\\$\\{project.version\\}", "\\$\\{version\\}");
+ aliases.put( "\\$\\{project.version\\}", "\\$\\{version\\}" );
}
List<ModelProperty> firstPassModelProperties = new ArrayList<ModelProperty>();
List<ModelProperty> secondPassModelProperties = new ArrayList<ModelProperty>();
- ModelProperty buildProperty = new ModelProperty(ProjectUri.Build.xUri, null);
- for(ModelProperty mp : modelProperties)
+ ModelProperty buildProperty = new ModelProperty( ProjectUri.Build.xUri, null );
+ for ( ModelProperty mp : modelProperties )
{
- if( mp.getValue() != null && !mp.getUri().contains( "#property" ) && !mp.getUri().contains( "#collection" ))
+ if ( mp.getValue() != null && !mp.getUri().contains( "#property" ) && !mp.getUri().contains( "#collection" ) )
{
- if( (!buildProperty.isParentOf( mp ) && !mp.getUri().equals(ProjectUri.Reporting.outputDirectory)
- || mp.getUri().equals(ProjectUri.Build.finalName ) ))
+ if ( ( !buildProperty.isParentOf( mp ) && !mp.getUri().equals( ProjectUri.Reporting.outputDirectory ) || mp.getUri().equals( ProjectUri.Build.finalName ) ) )
{
- firstPassModelProperties.add(mp);
+ firstPassModelProperties.add( mp );
}
else
{
- secondPassModelProperties.add(mp);
+ secondPassModelProperties.add( mp );
}
}
}
-
List<InterpolatorProperty> standardInterpolatorProperties = new ArrayList<InterpolatorProperty>();
- if(domainModel.isPomInBuild())
+ if ( domainModel.isPomInBuild() )
{
String basedir = domainModel.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() ));
+ 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() ) );
}
- for(ModelProperty mp : modelProperties)
+ for ( ModelProperty mp : modelProperties )
{
- if(mp.getUri().startsWith(ProjectUri.properties) && mp.getValue() != null )
+ if ( mp.getUri().startsWith( ProjectUri.properties ) && mp.getValue() != null )
{
String uri = mp.getUri();
- standardInterpolatorProperties.add( new InterpolatorProperty( "${" + uri.substring( uri.lastIndexOf( "/" ) + 1,
- uri.length() ) + "}", mp.getValue(), PomInterpolatorTag.PROJECT_PROPERTIES.name() ) );
+ standardInterpolatorProperties.add( new InterpolatorProperty( "${" + uri.substring( uri.lastIndexOf( "/" ) + 1, uri.length() ) + "}", mp.getValue(),
+ PomInterpolatorTag.PROJECT_PROPERTIES.name() ) );
}
}
//FIRST PASS - Withhold using build directories as interpolator properties
- List<InterpolatorProperty> ips1 = new ArrayList<InterpolatorProperty>(interpolatorProperties);
- ips1.addAll(standardInterpolatorProperties);
- ips1.addAll(ModelTransformerContext.createInterpolatorProperties(firstPassModelProperties, ProjectUri.baseUri, aliases,
- PomInterpolatorTag.PROJECT_PROPERTIES.name(), false, false));
- Collections.sort(ips1, new Comparator<InterpolatorProperty>()
+ List<InterpolatorProperty> ips1 = new ArrayList<InterpolatorProperty>( interpolatorProperties );
+ ips1.addAll( standardInterpolatorProperties );
+ ips1.addAll( ModelTransformerContext.createInterpolatorProperties( firstPassModelProperties, ProjectUri.baseUri, aliases, PomInterpolatorTag.PROJECT_PROPERTIES.name(), false, false ) );
+ Collections.sort( ips1, new Comparator<InterpolatorProperty>()
{
- public int compare(InterpolatorProperty o, InterpolatorProperty o1) {
- return PomInterpolatorTag.valueOf(o.getTag()).compareTo(PomInterpolatorTag.valueOf(o1.getTag()));
+ public int compare( InterpolatorProperty o, InterpolatorProperty o1 )
+ {
+ return PomInterpolatorTag.valueOf( o.getTag() ).compareTo( PomInterpolatorTag.valueOf( o1.getTag() ) );
}
- });
+ } );
ModelTransformerContext.interpolateModelProperties( modelProperties, ips1 );
//SECOND PASS - Set absolute paths on build directories
- if( domainModel.isPomInBuild() )
- { String basedir = domainModel.getProjectDirectory().getAbsolutePath();
+ if ( domainModel.isPomInBuild() )
+ {
+ String basedir = domainModel.getProjectDirectory().getAbsolutePath();
Map<ModelProperty, ModelProperty> buildDirectories = new HashMap<ModelProperty, ModelProperty>();
- for(ModelProperty mp : secondPassModelProperties)
+ for ( ModelProperty mp : secondPassModelProperties )
{
- if(mp.getUri().startsWith( ProjectUri.Build.xUri ) || mp.getUri().equals( ProjectUri.Reporting.outputDirectory ))
+ 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()));
+ buildDirectories.put( mp, new ModelProperty( mp.getUri(), new File( basedir, file.getPath() ).getAbsolutePath() ) );
}
}
}
@@ -188,31 +176,30 @@
for ( Map.Entry<ModelProperty, ModelProperty> e : buildDirectories.entrySet() )
{
secondPassModelProperties.remove( e.getKey() );
- secondPassModelProperties.add(e.getValue() );
+ secondPassModelProperties.add( e.getValue() );
}
}
//THIRD PASS - Use build directories as interpolator properties
- List<InterpolatorProperty> ips2 = new ArrayList<InterpolatorProperty>(interpolatorProperties);
- ips2.addAll(standardInterpolatorProperties);
- ips2.addAll(ModelTransformerContext.createInterpolatorProperties(secondPassModelProperties, ProjectUri.baseUri, aliases,
- PomInterpolatorTag.PROJECT_PROPERTIES.name(), false, false));
- ips2.addAll(interpolatorProperties);
- Collections.sort(ips2, new Comparator<InterpolatorProperty>()
+ List<InterpolatorProperty> ips2 = new ArrayList<InterpolatorProperty>( interpolatorProperties );
+ ips2.addAll( standardInterpolatorProperties );
+ ips2.addAll( ModelTransformerContext.createInterpolatorProperties( secondPassModelProperties, ProjectUri.baseUri, aliases, PomInterpolatorTag.PROJECT_PROPERTIES.name(), false, false ) );
+ ips2.addAll( interpolatorProperties );
+ Collections.sort( ips2, new Comparator<InterpolatorProperty>()
{
- public int compare(InterpolatorProperty o, InterpolatorProperty o1) {
- return PomInterpolatorTag.valueOf(o.getTag()).compareTo(PomInterpolatorTag.valueOf(o1.getTag()));
+ public int compare( InterpolatorProperty o, InterpolatorProperty o1 )
+ {
+ return PomInterpolatorTag.valueOf( o.getTag() ).compareTo( PomInterpolatorTag.valueOf( o1.getTag() ) );
}
- });
+ } );
ModelTransformerContext.interpolateModelProperties( modelProperties, ips2 );
}
private static boolean containsProjectVersion( List<InterpolatorProperty> interpolatorProperties )
{
- InterpolatorProperty versionInterpolatorProperty =
- new ModelProperty( ProjectUri.version, "").asInterpolatorProperty( ProjectUri.baseUri);
- for( InterpolatorProperty ip : interpolatorProperties)
+ InterpolatorProperty versionInterpolatorProperty = new ModelProperty( ProjectUri.version, "" ).asInterpolatorProperty( ProjectUri.baseUri );
+ for ( InterpolatorProperty ip : interpolatorProperties )
{
if ( ip.equals( versionInterpolatorProperty ) )
{
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=726381&r1=726380&r2=726381&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 Dec 13 22:17:05 2008
@@ -19,10 +19,13 @@
* under the License.
*/
-import org.apache.maven.shared.model.*;
-
import java.io.IOException;
-import java.util.*;
+import java.util.List;
+
+import org.apache.maven.shared.model.DomainModel;
+import org.apache.maven.shared.model.DomainModelFactory;
+import org.apache.maven.shared.model.InterpolatorProperty;
+import org.apache.maven.shared.model.ModelProperty;
/**
* Provides methods for transforming model properties into a domain model for the pom classic format and vice versa.
@@ -43,6 +46,5 @@
{
Interpolator.interpolateModelProperties( modelProperties, interpolatorProperties, (PomClassicDomainModel) domainModel);
}
-
}
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=726381&r1=726380&r2=726381&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 Dec 13 22:17:05 2008
@@ -81,20 +81,6 @@
}
/**
- * Constructor
- *
- * @param artifactFactory the artifact factory
- */
- protected DefaultProjectBuilder( ArtifactFactory artifactFactory )
- {
- if ( artifactFactory == null )
- {
- throw new IllegalArgumentException( "artifactFactory: null" );
- }
- this.artifactFactory = artifactFactory;
- }
-
- /**
* @see ProjectBuilder#buildFromLocalPath(java.io.InputStream, java.util.List, java.util.Collection, java.util.Collection, org.apache.maven.project.builder.PomArtifactResolver, java.io.File, org.apache.maven.project.ProjectBuilderConfiguration)
*/
public MavenProject buildFromLocalPath( InputStream pom, List<Model> inheritedModels,
@@ -186,8 +172,10 @@
listeners ) );
try
{
- MavenProject mavenProject = new MavenProject( transformedDomainModel.getModel(), artifactFactory,
- mavenTools, null,
+ MavenProject mavenProject = new MavenProject( transformedDomainModel.getModel(),
+ artifactFactory,
+ mavenTools,
+ null,
projectBuilderConfiguration );
mavenProject.setParentFile( parentFile );
return mavenProject;
@@ -227,11 +215,6 @@
PomArtifactResolver artifactResolver )
throws IOException
{
- if ( artifactFactory == null )
- {
- throw new IllegalArgumentException( "artifactFactory: not initialized" );
- }
-
List<DomainModel> domainModels = new ArrayList<DomainModel>();
Parent parent = domainModel.getModel().getParent();
@@ -241,8 +224,8 @@
return domainModels;
}
- Artifact artifactParent =
- artifactFactory.createParentArtifact( parent.getGroupId(), parent.getArtifactId(), parent.getVersion() );
+ Artifact artifactParent = artifactFactory.createParentArtifact( parent.getGroupId(), parent.getArtifactId(), parent.getVersion() );
+
artifactResolver.resolve( artifactParent );
PomClassicDomainModel parentDomainModel = new PomClassicDomainModel( artifactParent.getFile() );
@@ -273,12 +256,6 @@
File projectDirectory )
throws IOException
{
-
- if ( artifactFactory == null )
- {
- throw new IllegalArgumentException( "artifactFactory: not initialized" );
- }
-
List<DomainModel> domainModels = new ArrayList<DomainModel>();
Parent parent = domainModel.getModel().getParent();