You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2020/12/04 21:40:49 UTC
[maven] branch MNG-6957 updated: Do not use the ReactorModelCache
to store the mapping between GA<->Source
This is an automated email from the ASF dual-hosted git repository.
rfscholte pushed a commit to branch MNG-6957
in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/MNG-6957 by this push:
new 50e8beb Do not use the ReactorModelCache to store the mapping between GA<->Source
50e8beb is described below
commit 50e8beb59eee74bcce8281ebc4ae40a90883539e
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Sat Nov 28 21:29:08 2020 +0100
Do not use the ReactorModelCache to store the mapping between GA<->Source
---
.../apache/maven/project/ReactorModelCache.java | 28 ----------
.../maven/model/building/DefaultModelBuilder.java | 60 +++++++++++++---------
.../apache/maven/model/building/ModelCache.java | 24 ---------
3 files changed, 37 insertions(+), 75 deletions(-)
diff --git a/maven-core/src/main/java/org/apache/maven/project/ReactorModelCache.java b/maven-core/src/main/java/org/apache/maven/project/ReactorModelCache.java
index e958980..67695d9 100644
--- a/maven-core/src/main/java/org/apache/maven/project/ReactorModelCache.java
+++ b/maven-core/src/main/java/org/apache/maven/project/ReactorModelCache.java
@@ -22,10 +22,8 @@ package org.apache.maven.project;
import org.apache.maven.building.Source;
import org.apache.maven.model.building.ModelCache;
-import java.util.HashSet;
import java.util.Map;
import java.util.Objects;
-import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
/**
@@ -39,8 +37,6 @@ class ReactorModelCache
private final Map<Object, Object> models = new ConcurrentHashMap<>( 256 );
- private final Map<GACacheKey, Set<Source>> mappedSources = new ConcurrentHashMap<>( 64 );
-
@Override
public Object get( String groupId, String artifactId, String version, String tag )
{
@@ -52,30 +48,6 @@ class ReactorModelCache
{
models.put( new GavCacheKey( groupId, artifactId, version, tag ), data );
}
-
- @Override
- public Source get( String groupId, String artifactId )
- {
- Set<Source> sources = mappedSources.get( new GACacheKey( groupId, artifactId ) );
- if ( sources == null )
- {
- return null;
- }
- else
- {
- return sources.stream().reduce( ( a, b ) ->
- {
- throw new IllegalStateException( "No unique Source for " + groupId + ':' + artifactId
- + ": " + a.getLocation() + " and " + b.getLocation() );
- } ).orElse( null );
- }
- }
-
- @Override
- public void put( String groupId, String artifactId, Source source )
- {
- mappedSources.computeIfAbsent( new GACacheKey( groupId, artifactId ), k -> new HashSet<>() ).add( source );
- }
@Override
public Object get( Source source, String tag )
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
index b8960e5..f9ca3a4 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
@@ -31,12 +31,15 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Properties;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
import javax.inject.Inject;
import javax.inject.Named;
@@ -696,7 +699,12 @@ public class DefaultModelBuilder
intoCache( request.getModelCache(), modelSource, ModelCacheTag.FILE, model );
if ( modelSource instanceof FileModelSource )
{
- intoCache( request.getModelCache(), getGroupId( model ), model.getArtifactId(), modelSource );
+ if ( request.getTransformerContextBuilder() instanceof DefaultTransformerContextBuilder )
+ {
+ DefaultTransformerContextBuilder contextBuilder =
+ (DefaultTransformerContextBuilder) request.getTransformerContextBuilder();
+ contextBuilder.putSource( getGroupId( model ), model.getArtifactId(), modelSource );
+ }
}
return model;
@@ -1543,14 +1551,6 @@ public class DefaultModelBuilder
}
}
- private <T> void intoCache( ModelCache modelCache, String groupId, String artifactId, Source source )
- {
- if ( modelCache != null )
- {
- modelCache.put( groupId, artifactId, source );
- }
- }
-
private <T> void intoCache( ModelCache modelCache, Source source, ModelCacheTag<T> tag, T data )
{
if ( modelCache != null )
@@ -1572,16 +1572,6 @@ public class DefaultModelBuilder
}
return null;
}
-
- private static Source fromCache( ModelCache modelCache, String groupId, String artifactId )
- {
- if ( modelCache != null )
- {
- return modelCache.get( groupId, artifactId );
- }
- return null;
- }
-
private static <T> T fromCache( ModelCache modelCache, Source source, ModelCacheTag<T> tag )
{
@@ -1808,12 +1798,15 @@ public class DefaultModelBuilder
private class DefaultTransformerContextBuilder implements TransformerContextBuilder
{
private final DefaultTransformerContext context = new DefaultTransformerContext();
-
+
+ private final Map<DefaultTransformerContext.GAKey, Set<Source>> mappedSources
+ = new ConcurrentHashMap<>( 64 );
+
/**
* If an interface could be extracted, DefaultModelProblemCollector should be ModelProblemCollectorExt
*
* @param request
- * @param problems
+ * @param collector
* @return
*/
@Override
@@ -1845,7 +1838,7 @@ public class DefaultModelBuilder
private Model findRawModel( String groupId, String artifactId )
{
- Source source = fromCache( request.getModelCache(), groupId, artifactId );
+ Source source = getSource( groupId, artifactId );
if ( source != null )
{
try
@@ -1897,6 +1890,27 @@ public class DefaultModelBuilder
public TransformerContext build()
{
return context;
- }
+ }
+
+ public Source getSource( String groupId, String artifactId )
+ {
+ Set<Source> sources = mappedSources.get( new DefaultTransformerContext.GAKey( groupId, artifactId ) );
+ if ( sources == null )
+ {
+ return null;
+ }
+ return sources.stream().reduce( ( a, b ) ->
+ {
+ throw new IllegalStateException( "No unique Source for " + groupId + ':' + artifactId
+ + ": " + a.getLocation() + " and " + b.getLocation() );
+ } ).orElse( null );
+ }
+
+ public void putSource( String groupId, String artifactId, Source source )
+ {
+ mappedSources.computeIfAbsent( new DefaultTransformerContext.GAKey( groupId, artifactId ),
+ k -> new HashSet<>() ).add( source );
+ }
+
}
}
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelCache.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelCache.java
index 963b0ea..952ef46 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelCache.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelCache.java
@@ -59,30 +59,6 @@ public interface ModelCache
// only useful for ReactorModelCache
return null;
}
-
- /**
- *
- * @param groupId The groupId, must not be {@code null}.
- * @param artifactId The artifactId, must not be {@code null}.
- * @param source the source matching
- * @throws IllegalArgumentException if the groupId + artifactId was already added before
- */
- default void put( String groupId, String artifactId, Source source )
- {
- // only useful for ReactorModelCache
- }
-
- /**
- *
- * @param groupId The groupId, must not be {@code null}.
- * @param artifactId The artifactId, must not be {@code null}.
- * @return The requested source or {@code null} if none was present in the cache.
- */
- default Source get( String groupId, String artifactId )
- {
- // only useful for ReactorModelCache
- return null;
- }
/**
* Puts the specified data into the cache.