Author: jdcasey
Date: Tue Mar  7 19:29:41 2006
New Revision: 384108

URL: http://svn.apache.org/viewcvs?rev=384108&view=rev
Log:
(Merged from 384104.) [MNG-2124] Re-adding the cache check for parent POMs in 
assembleLineage(..) when building in a multimodule scenario (if they're part of 
the same build, but not yet in the local repo) before checking the parent's 
relativePath value or hitting the repository system to look for them.

Added:
    maven/components/trunk/maven-core-it/it0099/
      - copied from r384104, 
maven/components/branches/maven-2.0.x/maven-core-it/it0099/
    maven/components/trunk/maven-core-it/it0099/child/
      - copied from r384104, 
maven/components/branches/maven-2.0.x/maven-core-it/it0099/child/
    maven/components/trunk/maven-core-it/it0099/child/pom.xml
      - copied unchanged from r384104, 
maven/components/branches/maven-2.0.x/maven-core-it/it0099/child/pom.xml
    maven/components/trunk/maven-core-it/it0099/goals.txt
      - copied unchanged from r384104, 
maven/components/branches/maven-2.0.x/maven-core-it/it0099/goals.txt
    maven/components/trunk/maven-core-it/it0099/pom.xml
      - copied unchanged from r384104, 
maven/components/branches/maven-2.0.x/maven-core-it/it0099/pom.xml
    maven/components/trunk/maven-core-it/it0099/prebuild-hook.txt
      - copied unchanged from r384104, 
maven/components/branches/maven-2.0.x/maven-core-it/it0099/prebuild-hook.txt
Modified:
    maven/components/trunk/maven-core-it/README.txt
    maven/components/trunk/maven-core-it/integration-tests.txt
    
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java

Modified: maven/components/trunk/maven-core-it/README.txt
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/README.txt?rev=384108&r1=384107&r2=384108&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it/README.txt (original)
+++ maven/components/trunk/maven-core-it/README.txt Tue Mar  7 19:29:41 2006
@@ -265,6 +265,9 @@
 
 it0098: Test that quoted system properties are processed correctly. [MNG-1415]
 
+it0099: Test that parent-POMs cached during a build are available as parents
+        to other POMs in the multimodule build. [MNG-2124]
+
 -------------------------------------------------------------------------------
 
 - generated sources

Modified: maven/components/trunk/maven-core-it/integration-tests.txt
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/integration-tests.txt?rev=384108&r1=384107&r2=384108&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it/integration-tests.txt (original)
+++ maven/components/trunk/maven-core-it/integration-tests.txt Tue Mar  7 
19:29:41 2006
@@ -1,3 +1,4 @@
+it0099
 it0098
 it0097
 it0096

Modified: 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=384108&r1=384107&r2=384108&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 Mar  7 19:29:41 2006
@@ -690,10 +690,13 @@
         
         Model previous = superProject.getModel();
 
+//        System.out.println( "Assembling inheritance..." );
+        
         for ( Iterator i = lineage.iterator(); i.hasNext(); )
         {
             MavenProject currentProject = (MavenProject) i.next();
 
+//            System.out.println( "Assembling inheritance: " + 
previousProject.getId() + "(" + previousProject.getName() + ")" + " <- " + 
currentProject.getId() + "(" + currentProject.getName() + ")" );
             Model current = currentProject.getModel();
             
             String pathAdjustment = null;
@@ -711,6 +714,8 @@
 
             previous = current;
             previousProject = currentProject;
+            
+//            System.out.println( "New parent project is: " + 
previousProject.getId() + "(" + previousProject.getName() + ")" );
         }
 
         // only add the super repository if it wasn't overridden by a profile 
or project
@@ -995,11 +1000,23 @@
                 throw new ProjectBuildingException( projectId, "Missing 
version element from parent element" );
             }
 
+            String parentKey = createCacheKey( parentModel.getGroupId(), 
parentModel.getArtifactId(), parentModel.getVersion() );
+            MavenProject parentProject = (MavenProject)projectCache.get( 
parentKey );
+
             // the only way this will have a value is if we find the parent on 
disk...
             File parentDescriptor = null;
-
-            model = null;
-
+            
+            if ( parentProject != null )
+            {
+                model = parentProject.getOriginalModel();
+                
+                parentDescriptor = parentProject.getFile();
+            }
+            else
+            {
+                model = null;
+            }
+            
             String parentRelativePath = parentModel.getRelativePath();
 
             // if we can't find a cached model matching the parent spec, then 
let's try to look on disk using
@@ -1108,14 +1125,16 @@
             {
                 parentProjectDir = parentDescriptor.getParentFile();
             }
-            MavenProject parent = assembleLineage( model, lineage, 
localRepository, parentProjectDir,
+            
+            parentProject = assembleLineage( model, lineage, localRepository, 
parentProjectDir,
                                                    parentSearchRepositories, 
aggregatedRemoteWagonRepositories,
                                                    externalProfileManager, 
strict );
-            parent.setFile( parentDescriptor );
+            parentProject.setFile( parentDescriptor );
 
-            project.setParent( parent );
+            project.setParent( parentProject );
 
             project.setParentArtifact( parentArtifact );
+            
         }
 
         return project;


Reply via email to