Author: jdcasey
Date: Fri Jun  1 15:31:22 2007
New Revision: 543649

URL: http://svn.apache.org/viewvc?view=rev&rev=543649
Log:
[MNG-2619] applied patch to fix the middle-pom problem.

Added:
    
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/
    
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/child/
    
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/child/grandchild/
    
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/child/grandchild/pom.xml
   (with props)
    
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/child/pom.xml
   (with props)
    
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/pom.xml
   (with props)
Modified:
    
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
    
maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java

Modified: 
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?view=diff&rev=543649&r1=543648&r2=543649
==============================================================================
--- 
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
 (original)
+++ 
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
 Fri Jun  1 15:31:22 2007
@@ -741,8 +741,6 @@
             }
         }
 
-        Model originalModel = ModelUtils.cloneModel( model );
-
         MavenProject project = null;
         try
         {
@@ -754,11 +752,6 @@
             throw new ProjectBuildingException( projectId, e.getMessage(), e );
         }
 
-        project.setOriginalModel( originalModel );
-
-        rawProjectCache.put( createCacheKey( project.getGroupId(), 
project.getArtifactId(), project.getVersion() ),
-                             new MavenProject( project ) );
-
         // we don't have to force the collision exception for superModel here, 
it's already been done in getSuperModel()
         MavenProject previousProject = superProject;
 
@@ -1034,6 +1027,9 @@
                                           boolean strict )
         throws ProjectBuildingException, InvalidRepositoryException
     {
+        Model originalModel = ModelUtils.cloneModel( model );
+
+
         if ( !model.getRepositories().isEmpty() )
         {
             List respositories = buildArtifactRepositories( model );
@@ -1089,7 +1085,8 @@
         MavenProject project = new MavenProject( model );
 
         project.setActiveProfiles( activeProfiles );
-
+        project.setOriginalModel( originalModel );
+        
         lineage.addFirst( project );
 
         Parent parentModel = model.getParent();
@@ -1288,6 +1285,8 @@
 
             project.setParentArtifact( parentArtifact );
         }
+
+        rawProjectCache.put( createCacheKey( project.getGroupId(), 
project.getArtifactId(), project.getVersion() ), new MavenProject( project ) );
 
         return project;
     }

Modified: 
maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java?view=diff&rev=543649&r1=543648&r2=543649
==============================================================================
--- 
maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
 (original)
+++ 
maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
 Fri Jun  1 15:31:22 2007
@@ -32,26 +32,21 @@
 import org.apache.maven.model.Repository;
 import org.apache.maven.profiles.DefaultProfileManager;
 import org.apache.maven.profiles.ProfileManager;
-import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
 
 public class DefaultMavenProjectBuilderTest
-    extends PlexusTestCase
+    extends AbstractMavenProjectTestCase
 {
 
     private List filesToDelete = new ArrayList();
 
     private File localRepoDir;
 
-    private DefaultMavenProjectBuilder projectBuilder;
-
     public void setUp()
         throws Exception
     {
         super.setUp();
 
-        projectBuilder = (DefaultMavenProjectBuilder) lookup( 
MavenProjectBuilder.ROLE );
-        
         localRepoDir = new File( System.getProperty( "java.io.tmpdir" ), 
"local-repo." + System.currentTimeMillis() );
         localRepoDir.mkdirs();
 
@@ -150,6 +145,22 @@
                       ( (Repository) repositories.get( 0 ) ).getId() );
     }
 
+    /**
+     * Check that we can build ok from the middle pom of a 
(parent,child,grandchild) heirarchy
+     * @throws Exception 
+     */
+    public void testBuildFromMiddlePom() throws Exception
+    {
+        File f1 = getTestFile( 
"src/test/resources/projects/grandchild-check/child/pom.xml");
+        File f2 = getTestFile( 
"src/test/resources/projects/grandchild-check/child/grandchild/pom.xml");
+
+        getProject( f1 );
+        
+        // it's the building of the grandchild project, having already cached 
the child project
+        // (but not the parent project), which causes the problem.
+        getProject( f2 );
+    }
+    
     protected ArtifactRepository getLocalRepository()
         throws Exception
     {

Added: 
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/child/grandchild/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/child/grandchild/pom.xml?view=auto&rev=543649
==============================================================================
--- 
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/child/grandchild/pom.xml
 (added)
+++ 
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/child/grandchild/pom.xml
 Fri Jun  1 15:31:22 2007
@@ -0,0 +1,10 @@
+<project>
+       <modelVersion>4.0.0</modelVersion>
+       <parent>
+       <groupId>grandchildtest</groupId>
+       <artifactId>child</artifactId>
+       <version>1</version>
+       </parent>
+       <artifactId>grandchild</artifactId>
+
+</project>

Propchange: 
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/child/grandchild/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/child/grandchild/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: 
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/child/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/child/pom.xml?view=auto&rev=543649
==============================================================================
--- 
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/child/pom.xml
 (added)
+++ 
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/child/pom.xml
 Fri Jun  1 15:31:22 2007
@@ -0,0 +1,13 @@
+<project>
+       <modelVersion>4.0.0</modelVersion>
+       <parent>
+       <groupId>grandchildtest</groupId>
+       <artifactId>root-pom</artifactId>
+       <version>1</version>
+       </parent>
+       <artifactId>child</artifactId>
+       <packaging>pom</packaging>
+  <modules>
+    <module>grandchild</module>
+  </modules>
+</project>

Propchange: 
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/child/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/child/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: 
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/pom.xml?view=auto&rev=543649
==============================================================================
--- 
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/pom.xml
 (added)
+++ 
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/pom.xml
 Fri Jun  1 15:31:22 2007
@@ -0,0 +1,7 @@
+<project>
+       <modelVersion>4.0.0</modelVersion>
+       <groupId>grandchildtest</groupId>
+       <artifactId>root-pom</artifactId>
+       <version>1</version>
+       <packaging>pom</packaging>
+</project>

Propchange: 
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/branches/maven-2.0.x/maven-project/src/test/resources/projects/grandchild-check/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"


Reply via email to