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/11/08 21:15:21 UTC

svn commit: r593287 - in /maven/components/trunk/maven-project/src: main/java/org/apache/maven/project/build/ test/java/org/apache/maven/project/inheritance/t03/ test/java/org/apache/maven/project/inheritance/t04/ test/java/org/apache/maven/project/inh...

Author: jdcasey
Date: Thu Nov  8 12:15:20 2007
New Revision: 593287

URL: http://svn.apache.org/viewvc?rev=593287&view=rev
Log:
Clean up the caching to use weak hashmaps, to conserve some memory in large builds.

Modified:
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/ProjectBuildCache.java
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t03/ProjectInheritanceTest.java
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t04/ProjectInheritanceTest.java
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t05/ProjectInheritanceTest.java
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t06/ProjectInheritanceTest.java
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t07/ProjectInheritanceTest.java
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t08/ProjectInheritanceTest.java
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t09/ProjectInheritanceTest.java
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t10/ProjectInheritanceTest.java
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t11/ProjectInheritanceTest.java

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/ProjectBuildCache.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/ProjectBuildCache.java?rev=593287&r1=593286&r2=593287&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/ProjectBuildCache.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/ProjectBuildCache.java Thu Nov  8 12:15:20 2007
@@ -30,6 +30,7 @@
 import java.io.File;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.WeakHashMap;
 
 /**
  * This cache is meant to provide a reference of the project instances that are in the current build
@@ -37,30 +38,30 @@
  * to store inter-project references as such in MavenProject instances. An ArtifactResolver instance
  * will be used that can utilize this cache, but will also wrap the "default" ArtifactResolver
  * instance, so that can be used as a target for replacement implementations.
- * 
+ *
  * To retrieve from the build context: buildContext.retrieve( new ProjectBuildCache( false ) );
- * 
+ *
  * @author jdcasey
  */
 public class ProjectBuildCache
     implements ManagedBuildData
 {
-    
+
     private static final String BUILD_CONTEXT_KEY = ProjectBuildCache.class.getName();
-    
+
     private static final String PROJECT_CACHE = "project-cache";
-    
+
     private static final String POM_FILE_CACHE = "pom-file-cache";
-    
+
     private Map projectCache;
-    
+
     private Map pomFileCache;
-    
+
     public ProjectBuildCache()
     {
         this( true );
     }
-    
+
     /**
      * @param liveInstance If false, this instance's state is meant to be retrieved from the build
      *   context. If true, this instance can serve as the authoritative instance where the cache is
@@ -70,26 +71,26 @@
     {
         if ( liveInstance )
         {
-            projectCache = new HashMap();
-            pomFileCache = new HashMap();
+            projectCache = new WeakHashMap();
+            pomFileCache = new WeakHashMap();
         }
     }
-    
+
     public void cacheProject( MavenProject project )
     {
         projectCache.put( generateCacheKey( project ), project );
     }
-    
+
     public MavenProject getCachedProject( String groupId, String artifactId, String version )
     {
         return (MavenProject) projectCache.get( generateCacheKey( groupId, artifactId, version ) );
     }
-    
+
     public MavenProject getCachedProject( Artifact artifact )
     {
         return (MavenProject) projectCache.get( generateCacheKey( artifact ) );
     }
-    
+
     public MavenProject getCachedProject( MavenProject exampleInstance )
     {
         return (MavenProject) projectCache.get( generateCacheKey( exampleInstance ) );
@@ -99,7 +100,7 @@
     {
         pomFileCache.put( generateCacheKey( model ), modelFile );
     }
-    
+
     public File getCachedModelFile( Artifact artifact )
     {
         return (File) pomFileCache.get( generateCacheKey( artifact ) );
@@ -118,10 +119,10 @@
     public Map getData()
     {
         Map data = new HashMap( 2 );
-        
+
         data.put( PROJECT_CACHE, projectCache );
         data.put( POM_FILE_CACHE, pomFileCache );
-        
+
         return data;
     }
 
@@ -132,8 +133,8 @@
 
     public void setData( Map data )
     {
-        this.projectCache = (Map) data.get( PROJECT_CACHE );
-        this.pomFileCache = (Map) data.get( POM_FILE_CACHE );
+        projectCache = (Map) data.get( PROJECT_CACHE );
+        pomFileCache = (Map) data.get( POM_FILE_CACHE );
     }
 
     public void store( BuildContextManager buildContextManager )
@@ -146,11 +147,11 @@
     public static ProjectBuildCache read( BuildContextManager buildContextManager )
     {
         BuildContext buildContext = buildContextManager.readBuildContext( true );
-        
+
         ProjectBuildCache cache = new ProjectBuildCache();
-        
+
         buildContext.retrieve( cache );
-        
+
         return cache;
     }
 
@@ -160,7 +161,7 @@
 
         String groupId = model.getGroupId();
 
-        if ( groupId == null && modelParent != null )
+        if ( ( groupId == null ) && ( modelParent != null ) )
         {
             groupId = modelParent.getGroupId();
         }
@@ -169,29 +170,29 @@
 
         String version = model.getVersion();
 
-        if ( version == null && modelParent != null )
+        if ( ( version == null ) && ( modelParent != null ) )
         {
             version = modelParent.getVersion();
         }
 
         return generateCacheKey( groupId, artifactId, version );
     }
-    
+
     private static String generateCacheKey( Parent parent )
     {
         return generateCacheKey( parent.getGroupId(), parent.getArtifactId(), parent.getVersion() );
     }
-    
+
     private static String generateCacheKey( Artifact artifact )
     {
         return generateCacheKey( artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion() );
     }
-    
+
     private static String generateCacheKey( MavenProject project )
     {
         return generateCacheKey( project.getGroupId(), project.getArtifactId(), project.getVersion() );
     }
-    
+
     private static String generateCacheKey( String groupId, String artifactId, String version )
     {
         return groupId + ":" + artifactId + ":" + version;

Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t03/ProjectInheritanceTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t03/ProjectInheritanceTest.java?rev=593287&r1=593286&r2=593287&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t03/ProjectInheritanceTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t03/ProjectInheritanceTest.java Thu Nov  8 12:15:20 2007
@@ -55,15 +55,15 @@
     {
         File localRepo = getLocalRepositoryPath();
         File pom0 = new File( localRepo, "p0/pom.xml" );
-        
+
         File pom0Basedir = pom0.getParentFile();
-        
+
         File pom1 = new File( pom0Basedir, "p1/pom.xml" );
-        
+
         // load everything...
         MavenProject project0 = getProject( pom0 );
         MavenProject project1 = getProject( pom1 );
 
-        assertEquals( pom0Basedir, project1.getParent().getBasedir() );
+        assertEquals( pom0Basedir, project1.getParent().getBasedir().getCanonicalFile() );
     }
 }

Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t04/ProjectInheritanceTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t04/ProjectInheritanceTest.java?rev=593287&r1=593286&r2=593287&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t04/ProjectInheritanceTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t04/ProjectInheritanceTest.java Thu Nov  8 12:15:20 2007
@@ -30,7 +30,7 @@
 /**
  * Verifies the version of a dependency listed in a parent's
  * dependencyManagement section is chosen over another version of the same
- * dependency, listed transitively.	
+ * dependency, listed transitively.
  *
  * @author <a href="mailto:pschneider@gmail.com">Patrick Schneider</a>
  * @version $Id$
@@ -65,12 +65,12 @@
         MavenProject project0 = getProjectWithDependencies( pom0 );
         MavenProject project1 = getProjectWithDependencies( pom1 );
 
-        assertEquals( pom0Basedir, project1.getParent().getBasedir() );
+        assertEquals( pom0Basedir, project1.getParent().getBasedir().getCanonicalFile() );
         Set set = project1.getArtifacts();
         assertNotNull("No artifacts", set);
         assertTrue("No Artifacts", set.size() > 0);
         assertTrue("Set size should be 3, is " + set.size(), set.size() == 3);
-        
+
         Iterator iter = set.iterator();
         while (iter.hasNext()) {
             Artifact artifact = (Artifact)iter.next();

Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t05/ProjectInheritanceTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t05/ProjectInheritanceTest.java?rev=593287&r1=593286&r2=593287&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t05/ProjectInheritanceTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t05/ProjectInheritanceTest.java Thu Nov  8 12:15:20 2007
@@ -61,7 +61,7 @@
         MavenProject project0 = getProjectWithDependencies( pom0 );
         MavenProject project1 = getProjectWithDependencies( pom1 );
 
-        assertEquals( pom0Basedir, project1.getParent().getBasedir() );
+        assertEquals( pom0Basedir, project1.getParent().getBasedir().getCanonicalFile() );
         Set set = project1.getArtifacts();
         assertNotNull("No artifacts", set);
         assertTrue("No Artifacts", set.size() > 0);

Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t06/ProjectInheritanceTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t06/ProjectInheritanceTest.java?rev=593287&r1=593286&r2=593287&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t06/ProjectInheritanceTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t06/ProjectInheritanceTest.java Thu Nov  8 12:15:20 2007
@@ -61,7 +61,7 @@
         MavenProject project0 = getProjectWithDependencies( pom0 );
         MavenProject project1 = getProjectWithDependencies( pom1 );
 
-        assertEquals( pom0Basedir, project1.getParent().getBasedir() );
+        assertEquals( pom0Basedir, project1.getParent().getBasedir().getCanonicalFile() );
         Set set = project1.getArtifacts();
         assertNotNull("No artifacts", set);
         assertTrue("No Artifacts", set.size() > 0);

Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t07/ProjectInheritanceTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t07/ProjectInheritanceTest.java?rev=593287&r1=593286&r2=593287&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t07/ProjectInheritanceTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t07/ProjectInheritanceTest.java Thu Nov  8 12:15:20 2007
@@ -19,22 +19,13 @@
  * under the License.
  */
 
-import java.io.File;
-import java.util.List;
-import java.util.Set;
-import java.util.Iterator;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.MailingList;
-import org.apache.maven.model.Plugin;
-import org.apache.maven.model.PluginExecution;
-import org.apache.maven.model.Dependency;
+import org.apache.maven.artifact.Artifact;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.inheritance.AbstractProjectInheritanceTestCase;
-import org.apache.maven.artifact.Artifact;
-import org.codehaus.plexus.util.xml.Xpp3Dom;
-import org.codehaus.plexus.logging.LoggerManager;
-import org.codehaus.plexus.logging.Logger;
+
+import java.io.File;
+import java.util.Iterator;
+import java.util.Set;
 
 /**
  * A test which demonstrates maven's dependency management
@@ -70,14 +61,14 @@
         MavenProject project0 = getProjectWithDependencies( pom0 );
         MavenProject project1 = getProjectWithDependencies( pom1 );
 
-        assertEquals( pom0Basedir, project1.getParent().getBasedir() );
+        assertEquals( pom0Basedir, project1.getParent().getBasedir().getCanonicalFile() );
         System.out.println("Project " + project1.getId() + " " + project1);
         Set set = project1.getArtifacts();
         assertNotNull("No artifacts", set);
         assertTrue("No Artifacts", set.size() > 0);
         Iterator iter = set.iterator();
         assertTrue("Set size should be 3, is " + set.size(), set.size() == 3);
-        
+
         while (iter.hasNext())
         {
             Artifact artifact = (Artifact)iter.next();

Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t08/ProjectInheritanceTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t08/ProjectInheritanceTest.java?rev=593287&r1=593286&r2=593287&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t08/ProjectInheritanceTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t08/ProjectInheritanceTest.java Thu Nov  8 12:15:20 2007
@@ -61,14 +61,14 @@
         MavenProject project0 = getProjectWithDependencies( pom0 );
         MavenProject project1 = getProjectWithDependencies( pom1 );
 
-        assertEquals( pom0Basedir, project1.getParent().getBasedir() );
+        assertEquals( pom0Basedir, project1.getParent().getBasedir().getCanonicalFile() );
         System.out.println("Project " + project1.getId() + " " + project1);
         Set set = project1.getArtifacts();
         assertNotNull("No artifacts", set);
         assertTrue("No Artifacts", set.size() > 0);
         Iterator iter = set.iterator();
         assertTrue("Set size should be 4, is " + set.size(), set.size() == 4);
-        
+
         while (iter.hasNext())
         {
             Artifact artifact = (Artifact)iter.next();

Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t09/ProjectInheritanceTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t09/ProjectInheritanceTest.java?rev=593287&r1=593286&r2=593287&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t09/ProjectInheritanceTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t09/ProjectInheritanceTest.java Thu Nov  8 12:15:20 2007
@@ -18,23 +18,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import java.io.File;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Iterator;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.MailingList;
-import org.apache.maven.model.Plugin;
-import org.apache.maven.model.PluginExecution;
-import org.apache.maven.model.Dependency;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.inheritance.AbstractProjectInheritanceTestCase;
-import org.apache.maven.artifact.Artifact;
-import org.codehaus.plexus.util.xml.Xpp3Dom;
-import org.codehaus.plexus.logging.LoggerManager;
-import org.codehaus.plexus.logging.Logger;
+
+import java.io.File;
+import java.util.Map;
 
 /**
  * Verifies exclusions listed in dependencyManagement are valid for
@@ -59,7 +47,7 @@
 
     /**
      * How the test project is set up:
-     * 
+     *
      * 1. dependencyManagement lists dependencies on a & b,
      *    with an exclusion on c in b.
      * 2. the child project lists a dependency on project a only
@@ -82,13 +70,13 @@
         MavenProject project0 = getProjectWithDependencies( pom0 );
         MavenProject project1 = getProjectWithDependencies( pom1 );
 
-        assertEquals( pom0Basedir, project1.getParent().getBasedir() );
+        assertEquals( pom0Basedir, project1.getParent().getBasedir().getCanonicalFile() );
         Map map = project1.getArtifactMap();
 
         assertNotNull("No artifacts", map);
         assertTrue("No Artifacts", map.size() > 0);
         assertTrue("Set size should be 2, is " + map.size(), map.size() == 2);
-        
+
         assertTrue("maven-test:t09-a is not in the project", map.containsKey( "maven-test:t09-a" ));
         assertTrue("maven-test:t09-b is not in the project", map.containsKey( "maven-test:t09-b" ));
 
@@ -101,7 +89,7 @@
      * project b.  We will pick up project c in this case because no
      * restrictions were placed on d.  This demonstrates that a, b, c, & d will
      * all be collected.
-     * 
+     *
      * @throws Exception
      */
     public void testDependencyManagementExclusionDoesNotOverrideGloballyForTransitives()
@@ -117,7 +105,7 @@
         MavenProject project0 = getProjectWithDependencies( pom0 );
         MavenProject project2 = getProjectWithDependencies( pom2 );
 
-        assertEquals( pom0Basedir, project2.getParent().getBasedir() );
+        assertEquals( pom0Basedir, project2.getParent().getBasedir().getCanonicalFile() );
         Map map = project2.getArtifactMap();
         assertNotNull( "No artifacts", map );
         assertTrue( "No Artifacts", map.size() > 0 );

Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t10/ProjectInheritanceTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t10/ProjectInheritanceTest.java?rev=593287&r1=593286&r2=593287&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t10/ProjectInheritanceTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t10/ProjectInheritanceTest.java Thu Nov  8 12:15:20 2007
@@ -19,29 +19,18 @@
  * under the License.
  */
 
-import java.io.File;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Iterator;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.MailingList;
-import org.apache.maven.model.Plugin;
-import org.apache.maven.model.PluginExecution;
-import org.apache.maven.model.Dependency;
+import org.apache.maven.artifact.Artifact;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.inheritance.AbstractProjectInheritanceTestCase;
-import org.apache.maven.artifact.Artifact;
-import org.codehaus.plexus.util.xml.Xpp3Dom;
-import org.codehaus.plexus.logging.LoggerManager;
-import org.codehaus.plexus.logging.Logger;
+
+import java.io.File;
+import java.util.Map;
 
 /**
  * Verifies scope inheritence of direct and transitive dependencies.
- * 
+ *
  * Should show three behaviors:
- * 
+ *
  * 1. dependencyManagement should override the scope of transitive dependencies.
  * 2. Direct dependencies should override the scope of dependencyManagement.
  * 3. Direct dependencies should inherit scope from dependencyManagement when
@@ -77,27 +66,27 @@
         MavenProject project0 = getProjectWithDependencies( pom0 );
         MavenProject project1 = getProjectWithDependencies( pom1 );
 
-        assertEquals( pom0Basedir, project1.getParent().getBasedir() );
+        assertEquals( pom0Basedir, project1.getParent().getBasedir().getCanonicalFile() );
         System.out.println("Project " + project1.getId() + " " + project1);
         Map map = project1.getArtifactMap();
         assertNotNull("No artifacts", map);
         assertTrue("No Artifacts", map.size() > 0);
         assertTrue("Set size should be 3, is " + map.size(), map.size() == 3);
-        
+
         Artifact a = (Artifact) map.get("maven-test:t10-a");
         Artifact b = (Artifact) map.get("maven-test:t10-b");
         Artifact c = (Artifact) map.get("maven-test:t10-c");
-        
+
         assertNotNull( a );
         assertNotNull( b );
         assertNotNull( c );
 
         // inherited from depMgmt
         assertTrue("Incorrect scope for " + a.getDependencyConflictId(), a.getScope().equals("test"));
-        
+
         // transitive dep, overridden b depMgmt
         assertTrue("Incorrect scope for " + b.getDependencyConflictId(), b.getScope().equals("runtime"));
-        
+
         // direct dep, overrides depMgmt
         assertTrue("Incorrect scope for " + c.getDependencyConflictId(), c.getScope().equals("runtime"));
 

Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t11/ProjectInheritanceTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t11/ProjectInheritanceTest.java?rev=593287&r1=593286&r2=593287&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t11/ProjectInheritanceTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t11/ProjectInheritanceTest.java Thu Nov  8 12:15:20 2007
@@ -19,23 +19,10 @@
  * under the License.
  */
 
-import java.io.File;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Iterator;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.MailingList;
-import org.apache.maven.model.Plugin;
-import org.apache.maven.model.PluginExecution;
-import org.apache.maven.model.Dependency;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.inheritance.AbstractProjectInheritanceTestCase;
-import org.apache.maven.artifact.Artifact;
-import org.codehaus.plexus.util.xml.Xpp3Dom;
-import org.codehaus.plexus.logging.LoggerManager;
-import org.codehaus.plexus.logging.Logger;
+
+import java.io.File;
 
 /**
  * Verifies scope of root project is preserved regardless of parent depenedency management.
@@ -71,7 +58,7 @@
         MavenProject project0 = getProjectWithDependencies( pom0 );
         MavenProject project1 = getProjectWithDependencies( pom1 );
 
-        assertEquals( pom0Basedir, project1.getParent().getBasedir() );
+        assertEquals( pom0Basedir, project1.getParent().getBasedir().getCanonicalFile() );
         assertNull( "dependencyManagement has overwritten the scope of the currently building child project",
                     project1.getArtifact().getScope() );
     }