-
- All Implemented Interfaces:
-
java.lang.AutoCloseable
public final class ClassLoadersCache implements AutoCloseable
LRU cache for ClassLoaders by class path.
-
-
Constructor Summary
Constructors Constructor Description ClassLoadersCache(Integer size, ClassLoader parentClassLoader, Duration ttl)
-
Method Summary
Modifier and Type Method Description final ClassLoader
getForClassPath(List<File> files)
final ClassLoader
getForSplitPaths(List<File> bottom, List<File> top)
Gets or creates ClassLoader from bottom + top files. Unit
close()
-
-
Constructor Detail
-
ClassLoadersCache
ClassLoadersCache(Integer size, ClassLoader parentClassLoader, Duration ttl)
-
-
Method Detail
-
getForClassPath
final ClassLoader getForClassPath(List<File> files)
-
getForSplitPaths
final ClassLoader getForSplitPaths(List<File> bottom, List<File> top)
Gets or creates ClassLoader from bottom + top files. When creating new ClassLoader it tries to get top from cache first and then create new ClassLoader from bottom files, providing top as parent. Useful when you have internal and external artifacts and internal ones can be references from other internal artefacts only. So you can safely cache ClassLoader from external artifacts and use it for internal ones.
-
-
-
-