You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2007/01/24 23:53:00 UTC

svn commit: r499603 - in /maven/components/trunk/maven-project/src/main/java/org/apache/maven/project: DefaultMavenProjectBuilder.java build/model/DefaultModelLineageBuilder.java

Author: jdcasey
Date: Wed Jan 24 14:53:00 2007
New Revision: 499603

URL: http://svn.apache.org/viewvc?view=rev&rev=499603
Log:
Fixing project inheritance and profile-injection now that we've moved to the model lineage builder. Iteration was backward.

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/build/model/DefaultModelLineageBuilder.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?view=diff&rev=499603&r1=499602&r2=499603
==============================================================================
--- 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 Jan 24 14:53:00 2007
@@ -25,7 +25,6 @@
 import org.apache.maven.artifact.manager.WagonManager;
 import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
 import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
 import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
 import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
@@ -52,10 +51,10 @@
 import org.apache.maven.project.build.model.DefaultModelLineage;
 import org.apache.maven.project.build.model.ModelLineage;
 import org.apache.maven.project.build.model.ModelLineageBuilder;
+import org.apache.maven.project.build.model.ModelLineageIterator;
 import org.apache.maven.project.build.profile.ProfileAdvisor;
 import org.apache.maven.project.inheritance.ModelInheritanceAssembler;
 import org.apache.maven.project.injection.ModelDefaultsInjector;
-import org.apache.maven.project.injection.ProfileInjector;
 import org.apache.maven.project.interpolation.ModelInterpolationException;
 import org.apache.maven.project.interpolation.ModelInterpolator;
 import org.apache.maven.project.path.PathTranslator;
@@ -1031,14 +1030,11 @@
             explicitlyInactive = Collections.EMPTY_LIST;
         }
         
-        List models = modelLineage.getModelsInDescendingOrder();
-        List poms = modelLineage.getFilesInDescendingOrder();
-        
         MavenProject lastProject = null;
-        for( int i = 0; i < models.size(); i++ )
+        for ( ModelLineageIterator it = modelLineage.lineageIterator(); it.hasNext(); )
         {
-            Model currentModel = (Model) models.get( i );
-            File currentPom = (File) poms.get( i );
+            Model currentModel = (Model) it.next();
+            File currentPom = it.getPOMFile();
             
             MavenProject project = new MavenProject( currentModel );
             project.setFile( currentPom );
@@ -1046,23 +1042,23 @@
             projectContext.setCurrentProject( project );
             projectContext.store( buildContextManager );
 
-            project.setActiveProfiles( profileAdvisor.applyActivatedProfiles( model, projectDir, explicitlyActive,
+            project.setActiveProfiles( profileAdvisor.applyActivatedProfiles( currentModel, projectDir, explicitlyActive,
                                                                               explicitlyInactive ) );
             
             if ( lastProject != null )
             {
-                project.setParent( lastProject );
+                lastProject.setParent( project );
                 
-                project.setParentArtifact( artifactFactory.createParentArtifact( lastProject.getGroupId(), lastProject
-                    .getArtifactId(), lastProject.getVersion() ) );
+                lastProject.setParentArtifact( artifactFactory.createParentArtifact( project.getGroupId(), project
+                    .getArtifactId(), project.getVersion() ) );
             }
             
-            lineage.addLast( project );
+            lineage.addFirst( project );
             
             lastProject = project;
         }
 
-        MavenProject result = (MavenProject) lineage.get( lineage.size() - 1 );
+        MavenProject result = (MavenProject) lineage.getLast();
         
         if ( externalProfileManager != null )
         {

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java?view=diff&rev=499603&r1=499602&r2=499603
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java Wed Jan 24 14:53:00 2007
@@ -157,9 +157,16 @@
      * Model instance in the given Map before returning it. The skipCache flag controls whether the
      * Model instance is actually cached.
      */
-    private Model readModel( File pomFile, Map cachedPomFilesByModelId, boolean skipCache )
+    private Model readModel( File pom, Map cachedPomFilesByModelId, boolean skipCache )
         throws ProjectBuildingException
     {
+        File pomFile = pom;
+        if ( pom.isDirectory() )
+        {
+            pomFile = new File( pom, "pom.xml" );
+            getLogger().debug( "readModel(..): POM: " + pom + " is a directory. Trying: " + pomFile + " instead." );
+        }
+        
         Model model;
         FileReader reader = null;