class ClasspathScanner
extends java.lang.Object
These utilities are intended solely for usage within the JUnit framework itself. Any usage by external parties is not supported. Use at your own risk!
Modifier and Type | Field and Description |
---|---|
private java.util.function.Supplier<java.lang.ClassLoader> |
classLoaderSupplier |
private static char |
CLASSPATH_RESOURCE_PATH_SEPARATOR |
private java.util.function.BiFunction<java.lang.String,java.lang.ClassLoader,java.util.Optional<java.lang.Class<?>>> |
loadClass |
private static Logger |
logger |
private static java.lang.String |
MALFORMED_CLASS_NAME_ERROR_MESSAGE
Malformed class name InternalError like reported in #401.
|
private static char |
PACKAGE_SEPARATOR_CHAR |
private static java.lang.String |
PACKAGE_SEPARATOR_STRING |
Constructor and Description |
---|
ClasspathScanner(java.util.function.Supplier<java.lang.ClassLoader> classLoaderSupplier,
java.util.function.BiFunction<java.lang.String,java.lang.ClassLoader,java.util.Optional<java.lang.Class<?>>> loadClass) |
Modifier and Type | Method and Description |
---|---|
private java.lang.String |
determineFullyQualifiedClassName(java.nio.file.Path baseDir,
java.lang.String basePackageName,
java.nio.file.Path classFile) |
private java.lang.String |
determineSimpleClassName(java.nio.file.Path classFile) |
private java.lang.String |
determineSubpackageName(java.nio.file.Path baseDir,
java.nio.file.Path classFile) |
private java.util.List<java.lang.Class<?>> |
findClassesForPath(java.nio.file.Path baseDir,
java.lang.String basePackageName,
java.util.function.Predicate<java.lang.Class<?>> classFilter,
java.util.function.Predicate<java.lang.String> classNameFilter) |
private java.util.List<java.lang.Class<?>> |
findClassesForUri(java.net.URI baseUri,
java.lang.String basePackageName,
java.util.function.Predicate<java.lang.Class<?>> classFilter,
java.util.function.Predicate<java.lang.String> classNameFilter) |
private java.util.List<java.lang.Class<?>> |
findClassesForUris(java.util.List<java.net.URI> baseUris,
java.lang.String basePackageName,
java.util.function.Predicate<java.lang.Class<?>> classFilter,
java.util.function.Predicate<java.lang.String> classNameFilter)
Recursively scan for classes in all of the supplied source directories.
|
private java.lang.ClassLoader |
getClassLoader() |
private java.util.List<java.net.URI> |
getRootUrisForPackage(java.lang.String basePackageName) |
private void |
handleInternalError(java.nio.file.Path classFile,
java.lang.String fullyQualifiedClassName,
java.lang.InternalError ex) |
private void |
handleThrowable(java.nio.file.Path classFile,
java.lang.Throwable throwable) |
private void |
logGenericFileProcessingException(java.nio.file.Path classFile,
java.lang.Throwable throwable) |
private void |
logMalformedClassName(java.nio.file.Path classFile,
java.lang.String fullyQualifiedClassName,
java.lang.InternalError ex) |
private static java.lang.String |
packagePath(java.lang.String packageName) |
private void |
processClassFileSafely(java.nio.file.Path baseDir,
java.lang.String basePackageName,
java.util.function.Predicate<java.lang.Class<?>> classFilter,
java.util.function.Predicate<java.lang.String> classNameFilter,
java.nio.file.Path classFile,
java.util.function.Consumer<java.lang.Class<?>> classConsumer) |
(package private) java.util.List<java.lang.Class<?>> |
scanForClassesInClasspathRoot(java.net.URI root,
java.util.function.Predicate<java.lang.Class<?>> classFilter,
java.util.function.Predicate<java.lang.String> classNameFilter) |
(package private) java.util.List<java.lang.Class<?>> |
scanForClassesInPackage(java.lang.String basePackageName,
java.util.function.Predicate<java.lang.Class<?>> classFilter,
java.util.function.Predicate<java.lang.String> classNameFilter) |
private static final Logger logger
private static final char CLASSPATH_RESOURCE_PATH_SEPARATOR
private static final char PACKAGE_SEPARATOR_CHAR
private static final java.lang.String PACKAGE_SEPARATOR_STRING
private static final java.lang.String MALFORMED_CLASS_NAME_ERROR_MESSAGE
private final java.util.function.Supplier<java.lang.ClassLoader> classLoaderSupplier
private final java.util.function.BiFunction<java.lang.String,java.lang.ClassLoader,java.util.Optional<java.lang.Class<?>>> loadClass
ClasspathScanner(java.util.function.Supplier<java.lang.ClassLoader> classLoaderSupplier, java.util.function.BiFunction<java.lang.String,java.lang.ClassLoader,java.util.Optional<java.lang.Class<?>>> loadClass)
java.util.List<java.lang.Class<?>> scanForClassesInPackage(java.lang.String basePackageName, java.util.function.Predicate<java.lang.Class<?>> classFilter, java.util.function.Predicate<java.lang.String> classNameFilter)
java.util.List<java.lang.Class<?>> scanForClassesInClasspathRoot(java.net.URI root, java.util.function.Predicate<java.lang.Class<?>> classFilter, java.util.function.Predicate<java.lang.String> classNameFilter)
private java.util.List<java.lang.Class<?>> findClassesForUris(java.util.List<java.net.URI> baseUris, java.lang.String basePackageName, java.util.function.Predicate<java.lang.Class<?>> classFilter, java.util.function.Predicate<java.lang.String> classNameFilter)
private java.util.List<java.lang.Class<?>> findClassesForUri(java.net.URI baseUri, java.lang.String basePackageName, java.util.function.Predicate<java.lang.Class<?>> classFilter, java.util.function.Predicate<java.lang.String> classNameFilter)
private java.util.List<java.lang.Class<?>> findClassesForPath(java.nio.file.Path baseDir, java.lang.String basePackageName, java.util.function.Predicate<java.lang.Class<?>> classFilter, java.util.function.Predicate<java.lang.String> classNameFilter)
private void processClassFileSafely(java.nio.file.Path baseDir, java.lang.String basePackageName, java.util.function.Predicate<java.lang.Class<?>> classFilter, java.util.function.Predicate<java.lang.String> classNameFilter, java.nio.file.Path classFile, java.util.function.Consumer<java.lang.Class<?>> classConsumer)
private java.lang.String determineFullyQualifiedClassName(java.nio.file.Path baseDir, java.lang.String basePackageName, java.nio.file.Path classFile)
private java.lang.String determineSimpleClassName(java.nio.file.Path classFile)
private java.lang.String determineSubpackageName(java.nio.file.Path baseDir, java.nio.file.Path classFile)
private void handleInternalError(java.nio.file.Path classFile, java.lang.String fullyQualifiedClassName, java.lang.InternalError ex)
private void handleThrowable(java.nio.file.Path classFile, java.lang.Throwable throwable)
private void logMalformedClassName(java.nio.file.Path classFile, java.lang.String fullyQualifiedClassName, java.lang.InternalError ex)
private void logGenericFileProcessingException(java.nio.file.Path classFile, java.lang.Throwable throwable)
private java.lang.ClassLoader getClassLoader()
private static java.lang.String packagePath(java.lang.String packageName)
private java.util.List<java.net.URI> getRootUrisForPackage(java.lang.String basePackageName)