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();