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 05:02:00 UTC

svn commit: r727267 - in /maven/components/trunk: maven-embedder/src/main/java/org/apache/maven/cli/ maven-project/src/main/java/org/apache/maven/project/ maven-project/src/main/java/org/apache/maven/project/builder/ maven-project/src/main/java/org/apa...

Author: jvanzyl
Date: Tue Dec 16 20:01:59 2008
New Revision: 727267

URL: http://svn.apache.org/viewvc?rev=727267&view=rev
Log:
o remove some superfluous reader creation in the project builder
o remove profile handling from the construction of the super project, there are no profiles in it anymore (and shouldn't be in the future)

Modified:
    maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java
    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/builder/ProjectBuilder.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java

Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java?rev=727267&r1=727266&r2=727267&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java (original)
+++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java Tue Dec 16 20:01:59 2008
@@ -298,8 +298,7 @@
         executionProperties.putAll( System.getProperties() );
     }
 
-    private static void setCliProperty( String property,
-                                        Properties executionProperties )
+    private static void setCliProperty( String property, Properties executionProperties )
     {
         String name;
 

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=727267&r1=727266&r2=727267&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 Tue Dec 16 20:01:59 2008
@@ -22,7 +22,6 @@
 import java.io.File;
 import java.io.IOException;
 import java.io.Reader;
-import java.io.StringReader;
 import java.net.URL;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -52,8 +51,9 @@
 import org.apache.maven.profiles.activation.ProfileActivationException;
 import org.apache.maven.profiles.build.ProfileAdvisor;
 import org.apache.maven.project.artifact.InvalidDependencyVersionException;
-import org.apache.maven.project.builder.Interpolator;
 import org.apache.maven.project.builder.DefaultPomArtifactResolver;
+import org.apache.maven.project.builder.Interpolator;
+import org.apache.maven.project.builder.PomArtifactResolver;
 import org.apache.maven.project.builder.PomInterpolatorTag;
 import org.apache.maven.project.builder.ProjectBuilder;
 import org.apache.maven.project.validation.ModelValidationResult;
@@ -67,7 +67,6 @@
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.StringUtils;
-import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 
 /**
@@ -139,9 +138,10 @@
         throws ProjectBuildingException
     {
         MavenProject project = readModelFromLocalPath( "unknown", projectDescriptor, new DefaultPomArtifactResolver( config.getLocalRepository(), mavenTools
-            .buildArtifactRepositories( getSuperProject( config, projectDescriptor, true ).getModel() ), artifactResolver ), config );
+            .buildArtifactRepositories( getSuperModel() ), artifactResolver ), config );
 
         project.setFile( projectDescriptor );
+        
         project = buildWithProfiles( project.getModel(), config, projectDescriptor, project.getParentFile(), true );
 
         Build build = project.getBuild();
@@ -174,7 +174,7 @@
         }
     }
     
-    // This is used by the RR plugin
+    //!! This is used by the RR plugin
     public MavenProject buildFromRepository( Artifact artifact, List remoteArtifactRepositories, ArtifactRepository localRepository, boolean allowStubs )
         throws ProjectBuildingException
     {
@@ -197,7 +197,7 @@
         ProjectBuilderConfiguration config = new DefaultProjectBuilderConfiguration().setLocalRepository( localRepository );
 
         List<ArtifactRepository> artifactRepositories = new ArrayList<ArtifactRepository>( remoteArtifactRepositories );
-        artifactRepositories.addAll( mavenTools.buildArtifactRepositories( getSuperProject( config, artifact.getFile(), false ).getModel() ) );
+        artifactRepositories.addAll( mavenTools.buildArtifactRepositories( getSuperModel() ) );
 
         project = readModelFromLocalPath( "unknown", artifact.getFile(), new DefaultPomArtifactResolver( config.getLocalRepository(), artifactRepositories, artifactResolver ), config );
         project = buildWithProfiles( project.getModel(), config, artifact.getFile(), project.getParentFile(), false );
@@ -281,8 +281,7 @@
         }
         catch (IOException e)
         {
-            throw new ProjectBuildingException(STANDALONE_SUPERPOM_GROUPID + ":" + STANDALONE_SUPERPOM_ARTIFACTID,
-                                                "Interpolation failure:", e);
+            throw new ProjectBuildingException(STANDALONE_SUPERPOM_GROUPID + ":" + STANDALONE_SUPERPOM_ARTIFACTID, "Interpolation failure:", e);
         }
 
         MavenProject project;
@@ -364,7 +363,9 @@
         String projectId = safeVersionlessKey( model.getGroupId(), model.getArtifactId() );
 
         ProfileActivationContext profileActivationContext;
+        
         ProfileManager externalProfileManager = config.getGlobalProfileManager();
+        
         if ( externalProfileManager != null )
         {
             // used to trigger the caching of SystemProperties in the container context...
@@ -385,6 +386,7 @@
         }
 
         MavenProject project;
+        
         try
         {
             project = constructMavenProjectFromModel( model, projectDescriptor, parentDescriptor, config );
@@ -395,10 +397,11 @@
         }
 
         List<Profile> projectProfiles = new ArrayList<Profile>();
-        projectProfiles.addAll( profileAdvisor.applyActivatedProfiles( project.getModel(), project.getFile(),
-                                                                       isReactorProject, profileActivationContext ) );
-        projectProfiles.addAll( profileAdvisor.applyActivatedExternalProfiles( project.getModel(), project.getFile(),
-                                                                               externalProfileManager ) );
+        
+        projectProfiles.addAll( profileAdvisor.applyActivatedProfiles( project.getModel(), project.getFile(), isReactorProject, profileActivationContext ) );
+        
+        projectProfiles.addAll( profileAdvisor.applyActivatedExternalProfiles( project.getModel(), project.getFile(), externalProfileManager ) );
+        
         project.setActiveProfiles( projectProfiles );
 
         return project;
@@ -420,105 +423,60 @@
         return project;
     }
 
-    private MavenProject getSuperProject( ProjectBuilderConfiguration config, File projectDescriptor,
-                                          boolean isReactorProject )
-        throws ProjectBuildingException
+    private MavenProject superProject;
+    
+    private MavenProject getSuperProject( ProjectBuilderConfiguration config, File projectDescriptor )
     {
-
-        MavenProject superProject;
+        if ( superProject != null )
+        {
+            return superProject;
+        }
+        
         Model model = getSuperModel();
+
         try
         {
             superProject = new MavenProject( model, artifactFactory, mavenTools, this, config );
         }
         catch ( InvalidRepositoryException e )
         {
-            throw new ProjectBuildingException( STANDALONE_SUPERPOM_GROUPID + ":" + STANDALONE_SUPERPOM_ARTIFACTID,
-                                                "Maven super-POM contains an invalid repository!", e );
-        }
-
-        String projectId = safeVersionlessKey( model.getGroupId(), model.getArtifactId() );
-
-        ProfileActivationContext profileActivationContext;
-        ProfileManager externalProfileManager = config.getGlobalProfileManager();
-        if ( externalProfileManager != null )
-        {
-            // used to trigger the caching of SystemProperties in the container context...
-            try
-            {
-                externalProfileManager.getActiveProfiles();
-            }
-            catch ( ProfileActivationException e )
-            {
-                throw new ProjectBuildingException( projectId, "Failed to activate external profiles.",
-                                                    projectDescriptor, e );
-            }
-            profileActivationContext = externalProfileManager.getProfileActivationContext();
-        }
-        else
-        {
-            profileActivationContext = new DefaultProfileActivationContext( config.getExecutionProperties(), false );
+            // Not going to happen as this exception is thrown when checking distributionManagement and the super pom
+            // doesn't have a distributionManagement section.
         }
 
-        List<Profile> superProjectProfiles = new ArrayList<Profile>();
-        superProjectProfiles.addAll( profileAdvisor.applyActivatedProfiles( model, projectDescriptor, isReactorProject,
-                                                                            profileActivationContext ) );
-        superProjectProfiles.addAll(
-            profileAdvisor.applyActivatedExternalProfiles( model, projectDescriptor, externalProfileManager ) );
-        superProject.setActiveProfiles( superProjectProfiles );
-
         return superProject;
-    }
+    }    
 
     private Model superModel;
 
     private Model getSuperModel()
-        throws ProjectBuildingException
     {
         if ( superModel != null )
         {
             return superModel;
         }
 
-        URL url = DefaultMavenProjectBuilder.class.getResource( "pom-" + MAVEN_MODEL_VERSION + ".xml" );
-        
-        String projectId = safeVersionlessKey( STANDALONE_SUPERPOM_GROUPID, STANDALONE_SUPERPOM_ARTIFACTID );
-
         Reader reader = null;
+        
         try
         {
-            reader = ReaderFactory.newXmlReader( url.openStream() );
-            String modelSource = IOUtil.toString( reader );
-
-            if ( modelSource.indexOf( "<modelVersion>" + MAVEN_MODEL_VERSION ) < 0 )
-            {
-                throw new InvalidProjectModelException( projectId, "Not a v" + MAVEN_MODEL_VERSION + " POM.", new File( "." ) );
-            }
-
-            StringReader sReader = new StringReader( modelSource );
-
-            superModel = modelReader.read( sReader, STRICT_MODEL_PARSING );
+            reader = ReaderFactory.newXmlReader( getClass().getResource( "pom-" + MAVEN_MODEL_VERSION + ".xml" ) );
             
-            return superModel;
+            superModel = modelReader.read( reader, STRICT_MODEL_PARSING );            
         }
-        catch ( XmlPullParserException e )
+        catch ( Exception e )
         {
-            throw new InvalidProjectModelException( projectId, "Parse error reading POM. Reason: " + e.getMessage(),
-                                                    e );
-        }
-        catch ( IOException e )
-        {
-            throw new ProjectBuildingException( projectId, "Failed build model from URL \'" + url.toExternalForm() +
-                "\'\nError: \'" + e.getLocalizedMessage() + "\'", e );
+            // Not going to happen we're reading the super pom embedded in the JAR
         }
         finally
         {
-            IOUtil.close( reader );
+            IOUtil.close( reader );            
         }
+        
+        return superModel;        
     }
 
-    private MavenProject readModelFromLocalPath( String projectId, File projectDescriptor, DefaultPomArtifactResolver resolver,
-                                                 ProjectBuilderConfiguration config )
+    private MavenProject readModelFromLocalPath( String projectId, File projectDescriptor, PomArtifactResolver resolver, ProjectBuilderConfiguration config )
         throws ProjectBuildingException
     {
         if ( projectDescriptor == null )
@@ -548,7 +506,7 @@
         try
         {
             mavenProject = projectBuilder.buildFromLocalPath( projectDescriptor, 
-                                                              Arrays.asList( getSuperProject( config, projectDescriptor, true ).getModel() ), 
+                                                              Arrays.asList( getSuperProject( config, projectDescriptor ).getModel() ), 
                                                               interpolatorProperties, 
                                                               resolver,
                                                               config );

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=727267&r1=727266&r2=727267&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 Tue Dec 16 20:01:59 2008
@@ -35,7 +35,7 @@
 public interface ProjectBuilder
 {
     public PomClassicDomainModel buildModel( File pom, 
-                                             List<Model> inheritedModels,
+                                             List<Model> mixins,
                                              Collection<InterpolatorProperty> interpolatorProperties,
                                              PomArtifactResolver resolver ) 
         throws IOException;       
@@ -53,7 +53,7 @@
      * @throws IOException if there is a problem in the construction of the maven project
      */
     MavenProject buildFromLocalPath( File pom, 
-                                     List<Model> inheritedModels, 
+                                     List<Model> mixins, 
                                      Collection<InterpolatorProperty> interpolatorProperties,
                                      PomArtifactResolver resolver, 
                                      ProjectBuilderConfiguration projectBuilderConfiguration )

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=727267&r1=727266&r2=727267&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 Tue Dec 16 20:01:59 2008
@@ -37,15 +37,12 @@
 import org.apache.maven.project.ProjectBuilderConfiguration;
 import org.apache.maven.project.builder.ArtifactModelContainerFactory;
 import org.apache.maven.project.builder.IdModelContainerFactory;
-import org.apache.maven.project.builder.DefaultPomArtifactResolver;
 import org.apache.maven.project.builder.PomArtifactResolver;
 import org.apache.maven.project.builder.PomClassicDomainModel;
 import org.apache.maven.project.builder.PomClassicDomainModelFactory;
 import org.apache.maven.project.builder.PomClassicTransformer;
 import org.apache.maven.project.builder.ProjectBuilder;
-import org.apache.maven.project.validation.ModelValidator;
 import org.apache.maven.shared.model.DomainModel;
-import org.apache.maven.shared.model.ImportModel;
 import org.apache.maven.shared.model.InterpolatorProperty;
 import org.apache.maven.shared.model.ModelEventListener;
 import org.apache.maven.shared.model.ModelTransformerContext;
@@ -65,9 +62,6 @@
     private ArtifactFactory artifactFactory;
     
     @Requirement
-    private ModelValidator validator;
-
-    @Requirement
     private MavenTools mavenTools;
        
     @Requirement
@@ -75,7 +69,7 @@
 
     private Logger logger;
     
-    public PomClassicDomainModel buildModel( File pom, List<Model> inheritedModels,
+    public PomClassicDomainModel buildModel( File pom, List<Model> mixins,
                                              Collection<InterpolatorProperty> interpolatorProperties,
                                              PomArtifactResolver resolver ) 
         throws IOException    
@@ -90,14 +84,14 @@
             throw new IllegalArgumentException( "resolver: null" );
         }
 
-        if ( inheritedModels == null )
+        if ( mixins == null )
         {
-            inheritedModels = new ArrayList<Model>();
+            mixins = new ArrayList<Model>();
         }
         else
         {
-            inheritedModels = new ArrayList<Model>( inheritedModels );
-            Collections.reverse( inheritedModels );
+            mixins = new ArrayList<Model>( mixins );
+            Collections.reverse( mixins );
         }
 
         List<InterpolatorProperty> properties;
@@ -139,7 +133,7 @@
             domainModels.addAll( mavenParents );
         }
 
-        for ( Model model : inheritedModels )
+        for ( Model model : mixins )
         {
             domainModels.add( new PomClassicDomainModel( model ) );
         }
@@ -209,7 +203,6 @@
         }
         catch ( IOException e )
         {
-            e.printStackTrace();
             return false;
         }
     }

Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java?rev=727267&r1=727266&r2=727267&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java Tue Dec 16 20:01:59 2008
@@ -19,11 +19,11 @@
  * under the License.
  */
 
-import org.apache.maven.artifact.Artifact;
-
 import java.io.File;
 import java.util.Iterator;
 
+import org.apache.maven.artifact.Artifact;
+
 /**
  * @todo relocate to maven-artifact in entirety
  */