[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/41144e7e
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/41144e7e
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/41144e7e

Branch: refs/heads/slf4j-gossip
Commit: 41144e7ecf52e7ec3850f3e78d81f42f505f4af8
Parents: 4e5e586
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 May 31 22:43:19 2016 +0200

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


http://git-wip-us.apache.org/repos/asf/maven/blob/41144e7e/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 fb15c87..2406ff9 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
@@ -112,14 +112,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 )
@@ -271,7 +271,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;
     }
@@ -290,7 +290,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;
 
@@ -352,7 +352,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 );
 
@@ -893,11 +895,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