@@ -101,7 +101,7 @@ public class SpringFactoriesLoader {
101
101
102
102
private static final Log logger = LogFactory .getLog (SpringFactoriesLoader .class );
103
103
104
- static final Map <ClassLoader , Map <String , SpringFactoriesLoader >> cache = new ConcurrentReferenceHashMap <>();
104
+ static final Map <ClassLoader , Map <String , Factories >> cache = new ConcurrentReferenceHashMap <>();
105
105
106
106
107
107
private final @ Nullable ClassLoader classLoader ;
@@ -319,10 +319,11 @@ public static SpringFactoriesLoader forResourceLocation(String resourceLocation,
319
319
Assert .hasText (resourceLocation , "'resourceLocation' must not be empty" );
320
320
ClassLoader resourceClassLoader = (classLoader != null ? classLoader :
321
321
SpringFactoriesLoader .class .getClassLoader ());
322
- Map <String , SpringFactoriesLoader > loaders = cache .computeIfAbsent (
322
+ Map <String , Factories > factoriesCache = cache .computeIfAbsent (
323
323
resourceClassLoader , key -> new ConcurrentReferenceHashMap <>());
324
- return loaders .computeIfAbsent (resourceLocation , key ->
325
- new SpringFactoriesLoader (classLoader , loadFactoriesResource (resourceClassLoader , resourceLocation )));
324
+ Factories factories = factoriesCache .computeIfAbsent (resourceLocation , key ->
325
+ new Factories (loadFactoriesResource (resourceClassLoader , resourceLocation )));
326
+ return new SpringFactoriesLoader (classLoader , factories .byType ());
326
327
}
327
328
328
329
protected static Map <String , List <String >> loadFactoriesResource (ClassLoader classLoader , String resourceLocation ) {
@@ -654,4 +655,8 @@ static FailureHandler handleMessage(BiConsumer<Supplier<String>, Throwable> mess
654
655
}
655
656
}
656
657
658
+
659
+ private record Factories (Map <String , List <String >> byType ) {
660
+
661
+ }
657
662
}
0 commit comments