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/17 09:08:56 UTC

svn commit: r727311 - in /maven/components/trunk/maven-project/src/main/java/org/apache/maven/project: DefaultMavenProjectBuilder.java MavenProjectBuilder.java builder/ProjectBuilder.java builder/impl/DefaultProjectBuilder.java

Author: jvanzyl
Date: Wed Dec 17 00:08:56 2008
New Revision: 727311

URL: http://svn.apache.org/viewvc?rev=727311&view=rev
Log:
o super model construction moved into the project builder so that all pure inheritance can be handled therein. Then the only thing we're left with is the mixins


Modified:
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.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/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=727311&r1=727310&r2=727311&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Wed Dec 17 00:08:56 2008
@@ -21,7 +21,6 @@
 
 import java.io.File;
 import java.io.IOException;
-import java.io.Reader;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -42,7 +41,6 @@
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Profile;
-import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.maven.profiles.MavenProfilesBuilder;
 import org.apache.maven.profiles.ProfileManager;
 import org.apache.maven.profiles.activation.DefaultProfileActivationContext;
@@ -61,9 +59,6 @@
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.LogEnabled;
 import org.codehaus.plexus.logging.Logger;
-import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
-import org.codehaus.plexus.util.IOUtil;
-import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.StringUtils;
 
 
@@ -72,7 +67,7 @@
  */
 @Component(role = MavenProjectBuilder.class)
 public class DefaultMavenProjectBuilder
-    implements MavenProjectBuilder, Initializable, LogEnabled
+    implements MavenProjectBuilder, LogEnabled
 {
     @Requirement
     protected MavenProfilesBuilder profilesBuilder;
@@ -89,8 +84,6 @@
     @Requirement
     private ProjectBuilder projectBuilder;
     
-    private MavenXpp3Reader modelReader;
-
     private Logger logger;
     
     @Requirement
@@ -109,15 +102,8 @@
 
     private Map processedProjectCache = new HashMap();
 
-    private static final String MAVEN_MODEL_VERSION = "4.0.0";
-
     private static HashMap<String, MavenProject> hm = new HashMap<String, MavenProject>();    
     
-    public void initialize()
-    {
-        modelReader = new MavenXpp3Reader();
-    }
-
     // ----------------------------------------------------------------------
     // MavenProjectBuilder Implementation
     // ----------------------------------------------------------------------
@@ -134,8 +120,8 @@
     
     public MavenProject build( File projectDescriptor, ProjectBuilderConfiguration config )
         throws ProjectBuildingException
-    {
-        List repositories = mavenTools.buildArtifactRepositories( getSuperModel() );
+    {        
+        List repositories = mavenTools.buildArtifactRepositories( projectBuilder.getSuperModel() );
         
         MavenProject project = readModelFromLocalPath( "unknown", 
                                                        projectDescriptor, 
@@ -199,7 +185,7 @@
         ProjectBuilderConfiguration config = new DefaultProjectBuilderConfiguration().setLocalRepository( localRepository );
 
         List<ArtifactRepository> artifactRepositories = new ArrayList<ArtifactRepository>( remoteArtifactRepositories );
-        artifactRepositories.addAll( mavenTools.buildArtifactRepositories( getSuperModel() ) );
+        artifactRepositories.addAll( mavenTools.buildArtifactRepositories( projectBuilder.getSuperModel() ) );
 
         project = readModelFromLocalPath( "unknown", artifact.getFile(), new DefaultPomArtifactResolver( config.getLocalRepository(), artifactRepositories, artifactResolver ), config );
         project = buildWithProfiles( project.getModel(), config, artifact.getFile(), project.getParentFile(), false );
@@ -220,7 +206,7 @@
     public MavenProject buildStandaloneSuperProject( ProjectBuilderConfiguration config )
         throws ProjectBuildingException
     {
-        Model superModel = getSuperModel();
+        Model superModel = projectBuilder.getSuperModel();
                        
         MavenProject project = null;
         
@@ -358,7 +344,7 @@
             return superProject;
         }
         
-        Model model = getSuperModel();
+        Model model = projectBuilder.getSuperModel();
 
         try
         {
@@ -373,35 +359,6 @@
         return superProject;
     }    
 
-    private Model superModel;
-
-    private Model getSuperModel()
-    {
-        if ( superModel != null )
-        {
-            return superModel;
-        }
-
-        Reader reader = null;
-        
-        try
-        {
-            reader = ReaderFactory.newXmlReader( getClass().getResource( "pom-" + MAVEN_MODEL_VERSION + ".xml" ) );
-                        
-            superModel = modelReader.read( reader, STRICT_MODEL_PARSING );                  
-        }
-        catch ( Exception e )
-        {
-            // Not going to happen we're reading the super pom embedded in the JAR
-        }
-        finally
-        {
-            IOUtil.close( reader );            
-        }
-        
-        return superModel;        
-    }
-
     private MavenProject readModelFromLocalPath( String projectId, File projectDescriptor, PomArtifactResolver resolver, ProjectBuilderConfiguration config )
         throws ProjectBuildingException
     {
@@ -424,15 +381,13 @@
                 new SimpleDateFormat("yyyyMMdd-hhmm").format( config.getBuildStartTime() ),
                 PomInterpolatorTag.PROJECT_PROPERTIES.name()));
         }
-
-        interpolatorProperties.add(new InterpolatorProperty("${mavenVersion}", MavenProjectBuilder.STANDALONE_SUPERPOM_VERSION, PomInterpolatorTag.EXECUTION_PROPERTIES.name()));
         
         MavenProject mavenProject;
         
         try
         {
             mavenProject = projectBuilder.buildFromLocalPath( projectDescriptor, 
-                                                              Arrays.asList( getSuperModel() ), 
+                                                              Arrays.asList( projectBuilder.getSuperModel() ), 
                                                               interpolatorProperties, 
                                                               resolver,
                                                               config );

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java?rev=727311&r1=727310&r2=727311&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java Wed Dec 17 00:08:56 2008
@@ -24,12 +24,6 @@
 
 public interface MavenProjectBuilder
 {
-    String STANDALONE_SUPERPOM_GROUPID = "org.apache.maven";
-
-    String STANDALONE_SUPERPOM_ARTIFACTID = "super-pom";
-
-    String STANDALONE_SUPERPOM_VERSION = "3.0-SNAPSHOT";
-
     boolean STRICT_MODEL_PARSING = true;
 
     // Used directly by plugins

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java?rev=727311&r1=727310&r2=727311&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java Wed Dec 17 00:08:56 2008
@@ -59,4 +59,5 @@
                                      ProjectBuilderConfiguration projectBuilderConfiguration )
         throws IOException;
 
+    Model getSuperModel();
 }

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=727311&r1=727310&r2=727311&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 Wed Dec 17 00:08:56 2008
@@ -21,6 +21,7 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.io.Reader;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -33,6 +34,7 @@
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Parent;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.ProjectBuilderConfiguration;
 import org.apache.maven.project.builder.ArtifactModelContainerFactory;
@@ -50,6 +52,8 @@
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.LogEnabled;
 import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.ReaderFactory;
 
 /**
  * Default implementation of the project builder.
@@ -69,7 +73,8 @@
 
     private Logger logger;
     
-    public PomClassicDomainModel buildModel( File pom, List<Model> mixins,
+    public PomClassicDomainModel buildModel( File pom, 
+                                             List<Model> mixins,
                                              Collection<InterpolatorProperty> interpolatorProperties,
                                              PomArtifactResolver resolver ) 
         throws IOException    
@@ -154,14 +159,15 @@
         return transformedDomainModel;
     }
     
-    public MavenProject buildFromLocalPath( File pom, List<Model> inheritedModels,
+    public MavenProject buildFromLocalPath( File pom, 
+                                            List<Model> mixins,
                                             Collection<InterpolatorProperty> interpolatorProperties,
                                             PomArtifactResolver resolver, 
                                             ProjectBuilderConfiguration projectBuilderConfiguration )
         throws IOException
     {
         PomClassicDomainModel domainModel = buildModel( pom, 
-                                                        inheritedModels, 
+                                                        mixins, 
                                                         interpolatorProperties, 
                                                         resolver ); 
         
@@ -310,9 +316,43 @@
         return domainModels;
     }
 
-
     public void enableLogging( Logger logger )
     {
         this.logger = logger;
     }
+
+    // Super Model Handling
+    
+    private static final String MAVEN_MODEL_VERSION = "4.0.0";
+
+    private MavenXpp3Reader modelReader = new MavenXpp3Reader();
+
+    private Model superModel;
+
+    public Model getSuperModel()
+    {
+        if ( superModel != null )
+        {
+            return superModel;
+        }
+
+        Reader reader = null;
+        
+        try
+        {
+            reader = ReaderFactory.newXmlReader( getClass().getClassLoader().getResource( "org/apache/maven/project/pom-" + MAVEN_MODEL_VERSION + ".xml" ) );
+                        
+            superModel = modelReader.read( reader, true );                  
+        }
+        catch ( Exception e )
+        {
+            // Not going to happen we're reading the super pom embedded in the JAR
+        }
+        finally
+        {
+            IOUtil.close( reader );            
+        }
+        
+        return superModel;        
+    }        
 }