Author: brett
Date: Tue Jan 10 14:15:46 2006
New Revision: 367812

URL: http://svn.apache.org/viewcvs?rev=367812&view=rev
Log:
reduce some confusion - cache CachedModel associations instead of MavenProject 
instances

Modified:
    
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.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/viewcvs/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=367812&r1=367811&r2=367812&view=diff
==============================================================================
--- 
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
 Tue Jan 10 14:15:46 2006
@@ -289,8 +289,7 @@
         Model model = readModel( "unknown", projectDescriptor, true );
 
         // Always cache files in the source tree over those in the repository
-        MavenProject p = new MavenProject( model );
-        p.setFile( projectDescriptor );
+        CachedModel cachedModel = new CachedModel( projectDescriptor, model );
 
         String modelKey = createCacheKey( model.getGroupId(), 
model.getArtifactId(), model.getVersion() );
         if ( modelCache.containsKey( modelKey ) )
@@ -299,7 +298,7 @@
                                                 "Duplicate project ID found in 
" +
                                                     
projectDescriptor.getAbsolutePath() );
         }
-        modelCache.put( modelKey, p );
+        modelCache.put( modelKey, cachedModel );
 
         MavenProject project = build( projectDescriptor.getAbsolutePath(), 
model, localRepository,
                                       buildArtifactRepositories( 
getSuperModel() ),
@@ -375,10 +374,10 @@
                                                                      
artifact.getVersion(), artifact.getScope() );
         }
 
-        MavenProject project = getCachedProject( projectArtifact.getGroupId(), 
projectArtifact.getArtifactId(),
-                                                 projectArtifact.getVersion() 
);
+        CachedModel cachedModel = getCachedProject( 
projectArtifact.getGroupId(), projectArtifact.getArtifactId(),
+                                                    
projectArtifact.getVersion() );
         Model model;
-        if ( project == null )
+        if ( cachedModel == null )
         {
             String projectId = ArtifactUtils.versionlessKey( projectArtifact );
 
@@ -434,7 +433,7 @@
         }
         else
         {
-            model = project.getModel();
+            model = cachedModel.getModel();
         }
 
         return model;
@@ -696,9 +695,8 @@
         if ( !modelCache.containsKey( key ) )
         {
             // clone the model because the profile injection below will modify 
this instance
-            MavenProject p = new MavenProject( ModelUtils.cloneModel( model ) 
);
-            p.setFile( project.getFile() );
-            modelCache.put( key, p );
+            CachedModel cachedModel = new CachedModel( project.getFile(), 
ModelUtils.cloneModel( model ) );
+            modelCache.put( key, cachedModel );
         }
 
         List activeProfiles = project.getActiveProfiles();
@@ -879,12 +877,12 @@
             // the only way this will have a value is if we find the parent on 
disk...
             File parentDescriptor = null;
 
-            MavenProject p =
+            CachedModel cachedModel =
                 getCachedProject( parentModel.getGroupId(), 
parentModel.getArtifactId(), parentModel.getVersion() );
-            if ( p != null )
+            if ( cachedModel != null )
             {
-                model = p.getModel();
-                parentDescriptor = p.getFile();
+                model = cachedModel.getModel();
+                parentDescriptor = cachedModel.getDescriptor();
             }
             else
             {
@@ -1158,9 +1156,9 @@
         }
     }
 
-    private MavenProject getCachedProject( String groupId, String artifactId, 
String version )
+    private CachedModel getCachedProject( String groupId, String artifactId, 
String version )
     {
-        return (MavenProject) modelCache.get( createCacheKey( groupId, 
artifactId, version ) );
+        return (CachedModel) modelCache.get( createCacheKey( groupId, 
artifactId, version ) );
     }
 
     private static String createCacheKey( String groupId, String artifactId, 
String version )
@@ -1365,5 +1363,28 @@
         throws ContextException
     {
         this.container = (PlexusContainer) context.get( 
PlexusConstants.PLEXUS_KEY );
+    }
+
+    private static class CachedModel
+    {
+        private File descriptor;
+
+        private Model model;
+
+        public CachedModel( File descriptor, Model model )
+        {
+            this.descriptor = descriptor;
+            this.model = model;
+        }
+
+        public File getDescriptor()
+        {
+            return descriptor;
+        }
+
+        public Model getModel()
+        {
+            return model;
+        }
     }
 }


Reply via email to