[MNG-6030] ReactorModelCache do not used effectively after maven version 3.0.5 
which cause a large memory footprint
 o Reintroduced ReactorModelCache reduces the memory footprint.


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/cfb075ac
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/cfb075ac
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/cfb075ac

Branch: refs/heads/MNG-2199-IT
Commit: cfb075ac706b25df630f3671f61f8d8313e0f138
Parents: 733eedc
Author: Karl Heinz Marbaise <khmarba...@apache.org>
Authored: Tue May 31 21:39:31 2016 +0200
Committer: Karl Heinz Marbaise <khmarba...@apache.org>
Committed: Tue Jan 24 20:19:10 2017 +0100

----------------------------------------------------------------------
 .../maven/project/DefaultProjectBuilder.java       | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/cfb075ac/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
----------------------------------------------------------------------
diff --git 
a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java 
b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
index 9d51a6d..d064ab4 100644
--- 
a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
+++ 
b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
@@ -116,14 +116,14 @@ public class DefaultProjectBuilder
     public ProjectBuildingResult build( File pomFile, ProjectBuildingRequest 
request )
         throws ProjectBuildingException
     {
-        return build( pomFile, new FileModelSource( pomFile ), new 
InternalConfig( request, null ) );
+        return build( pomFile, new FileModelSource( pomFile ), new 
InternalConfig( request, null, null ) );
     }
 
     @Override
     public ProjectBuildingResult build( ModelSource modelSource, 
ProjectBuildingRequest request )
         throws ProjectBuildingException
     {
-        return build( null, modelSource, new InternalConfig( request, null ) );
+        return build( null, modelSource, new InternalConfig( request, null, 
null ) );
     }
 
     private ProjectBuildingResult build( File pomFile, ModelSource 
modelSource, InternalConfig config )
@@ -275,7 +275,7 @@ public class DefaultProjectBuilder
         request.setUserProperties( configuration.getUserProperties() );
         request.setBuildStartTime( configuration.getBuildStartTime() );
         request.setModelResolver( resolver );
-        request.setModelCache( new ReactorModelCache() );
+        request.setModelCache( config.modelCache );
 
         return request;
     }
@@ -294,7 +294,7 @@ public class DefaultProjectBuilder
         org.eclipse.aether.artifact.Artifact pomArtifact = 
RepositoryUtils.toArtifact( artifact );
         pomArtifact = ArtifactDescriptorUtils.toPomArtifact( pomArtifact );
 
-        InternalConfig config = new InternalConfig( request, null );
+        InternalConfig config = new InternalConfig( request, null, null );
 
         boolean localProject;
 
@@ -394,7 +394,9 @@ public class DefaultProjectBuilder
 
         ReactorModelPool modelPool = new ReactorModelPool();
 
-        InternalConfig config = new InternalConfig( request, modelPool );
+        ReactorModelCache modelCache = new ReactorModelCache();
+
+        InternalConfig config = new InternalConfig( request, modelPool, 
modelCache );
 
         Map<String, MavenProject> projectIndex = new HashMap<>( 256 );
 
@@ -913,11 +915,14 @@ public class DefaultProjectBuilder
         public final List<RemoteRepository> repositories;
 
         public final ReactorModelPool modelPool;
+        
+        public final ReactorModelCache modelCache;
 
-        InternalConfig( ProjectBuildingRequest request, ReactorModelPool 
modelPool )
+        InternalConfig( ProjectBuildingRequest request, ReactorModelPool 
modelPool, ReactorModelCache modelCache )
         {
             this.request = request;
             this.modelPool = modelPool;
+            this.modelCache = modelCache;
             session =
                 LegacyLocalRepositoryManager.overlay( 
request.getLocalRepository(), request.getRepositorySession(),
                                                       repoSystem );

Reply via email to