From fb839cb8a5cf0462f7e3352ae9918b92587f220d Mon Sep 17 00:00:00 2001 From: Oliver Drotbohm Date: Wed, 5 Jul 2023 13:56:01 +0200 Subject: [PATCH] GH-230 - Caches in ApplicationModules and ArchitecturallyEvidentType are now ConcurrentHashMaps. --- .../org/springframework/modulith/core/ApplicationModules.java | 3 ++- .../modulith/core/ArchitecturallyEvidentType.java | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/spring-modulith-core/src/main/java/org/springframework/modulith/core/ApplicationModules.java b/spring-modulith-core/src/main/java/org/springframework/modulith/core/ApplicationModules.java index f4aeffd7..6fe2e8b6 100644 --- a/spring-modulith-core/src/main/java/org/springframework/modulith/core/ApplicationModules.java +++ b/spring-modulith-core/src/main/java/org/springframework/modulith/core/ApplicationModules.java @@ -20,6 +20,7 @@ import static com.tngtech.archunit.core.domain.JavaClass.Predicates.*; import static java.util.stream.Collectors.*; import java.util.*; +import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -58,7 +59,7 @@ import com.tngtech.archunit.library.dependencies.SlicesRuleDefinition; */ public class ApplicationModules implements Iterable { - private static final Map CACHE = new HashMap<>(); + private static final Map CACHE = new ConcurrentHashMap<>(); private static final ApplicationModuleDetectionStrategy DETECTION_STRATEGY; private static final ImportOption IMPORT_OPTION = new ImportOption.DoNotIncludeTests(); private static final boolean JGRAPHT_PRESENT = ClassUtils.isPresent("org.jgrapht.Graph", diff --git a/spring-modulith-core/src/main/java/org/springframework/modulith/core/ArchitecturallyEvidentType.java b/spring-modulith-core/src/main/java/org/springframework/modulith/core/ArchitecturallyEvidentType.java index 2c1a6e1c..dbb6d0c8 100644 --- a/spring-modulith-core/src/main/java/org/springframework/modulith/core/ArchitecturallyEvidentType.java +++ b/spring-modulith-core/src/main/java/org/springframework/modulith/core/ArchitecturallyEvidentType.java @@ -20,12 +20,12 @@ import static org.springframework.modulith.core.Types.JavaXTypes.*; import java.util.ArrayList; import java.util.Collection; import java.util.Comparator; -import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; import java.util.stream.Stream; @@ -48,7 +48,7 @@ import com.tngtech.archunit.thirdparty.com.google.common.base.Suppliers; */ public abstract class ArchitecturallyEvidentType { - private static Map CACHE = new HashMap<>(); + private static Map CACHE = new ConcurrentHashMap<>(); private final JavaClass type;