Package org.junit.platform.commons.util
Class ClasspathScanner
- java.lang.Object
-
- org.junit.platform.commons.util.ClasspathScanner
-
class ClasspathScanner extends java.lang.ObjectDISCLAIMER
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!
- Since:
- 1.0
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.function.Supplier<java.lang.ClassLoader>classLoaderSupplierprivate static charCLASSPATH_RESOURCE_PATH_SEPARATORprivate java.util.function.BiFunction<java.lang.String,java.lang.ClassLoader,Try<java.lang.Class<?>>>loadClassprivate static Loggerloggerprivate static java.lang.StringMALFORMED_CLASS_NAME_ERROR_MESSAGEMalformed class name InternalError like reported in #401.private static charPACKAGE_SEPARATOR_CHARprivate static java.lang.StringPACKAGE_SEPARATOR_STRING
-
Constructor Summary
Constructors Constructor Description ClasspathScanner(java.util.function.Supplier<java.lang.ClassLoader> classLoaderSupplier, java.util.function.BiFunction<java.lang.String,java.lang.ClassLoader,Try<java.lang.Class<?>>> loadClass)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.lang.StringdetermineFullyQualifiedClassName(java.nio.file.Path baseDir, java.lang.String basePackageName, java.nio.file.Path classFile)private java.lang.StringdetermineSimpleClassName(java.nio.file.Path classFile)private java.lang.StringdetermineSubpackageName(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, ClassFilter classFilter)private java.util.List<java.lang.Class<?>>findClassesForUri(java.net.URI baseUri, java.lang.String basePackageName, ClassFilter classFilter)private java.util.List<java.lang.Class<?>>findClassesForUris(java.util.List<java.net.URI> baseUris, java.lang.String basePackageName, ClassFilter classFilter)Recursively scan for classes in all of the supplied source directories.private java.lang.ClassLoadergetClassLoader()private java.util.List<java.net.URI>getRootUrisForPackage(java.lang.String basePackageName)private voidhandleInternalError(java.nio.file.Path classFile, java.lang.String fullyQualifiedClassName, java.lang.InternalError ex)private voidhandleThrowable(java.nio.file.Path classFile, java.lang.Throwable throwable)private voidlogGenericFileProcessingException(java.nio.file.Path classFile, java.lang.Throwable throwable)private voidlogMalformedClassName(java.nio.file.Path classFile, java.lang.String fullyQualifiedClassName, java.lang.InternalError ex)private static java.lang.StringpackagePath(java.lang.String packageName)private voidprocessClassFileSafely(java.nio.file.Path baseDir, java.lang.String basePackageName, ClassFilter classFilter, 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, ClassFilter classFilter)(package private) java.util.List<java.lang.Class<?>>scanForClassesInPackage(java.lang.String basePackageName, ClassFilter classFilter)
-
-
-
Field Detail
-
logger
private static final Logger logger
-
CLASSPATH_RESOURCE_PATH_SEPARATOR
private static final char CLASSPATH_RESOURCE_PATH_SEPARATOR
- See Also:
- Constant Field Values
-
PACKAGE_SEPARATOR_CHAR
private static final char PACKAGE_SEPARATOR_CHAR
- See Also:
- Constant Field Values
-
PACKAGE_SEPARATOR_STRING
private static final java.lang.String PACKAGE_SEPARATOR_STRING
-
MALFORMED_CLASS_NAME_ERROR_MESSAGE
private static final java.lang.String MALFORMED_CLASS_NAME_ERROR_MESSAGE
Malformed class name InternalError like reported in #401.- See Also:
- Constant Field Values
-
classLoaderSupplier
private final java.util.function.Supplier<java.lang.ClassLoader> classLoaderSupplier
-
loadClass
private final java.util.function.BiFunction<java.lang.String,java.lang.ClassLoader,Try<java.lang.Class<?>>> loadClass
-
-
Constructor Detail
-
ClasspathScanner
ClasspathScanner(java.util.function.Supplier<java.lang.ClassLoader> classLoaderSupplier, java.util.function.BiFunction<java.lang.String,java.lang.ClassLoader,Try<java.lang.Class<?>>> loadClass)
-
-
Method Detail
-
scanForClassesInPackage
java.util.List<java.lang.Class<?>> scanForClassesInPackage(java.lang.String basePackageName, ClassFilter classFilter)
-
scanForClassesInClasspathRoot
java.util.List<java.lang.Class<?>> scanForClassesInClasspathRoot(java.net.URI root, ClassFilter classFilter)
-
findClassesForUris
private java.util.List<java.lang.Class<?>> findClassesForUris(java.util.List<java.net.URI> baseUris, java.lang.String basePackageName, ClassFilter classFilter)Recursively scan for classes in all of the supplied source directories.
-
findClassesForUri
private java.util.List<java.lang.Class<?>> findClassesForUri(java.net.URI baseUri, java.lang.String basePackageName, ClassFilter classFilter)
-
findClassesForPath
private java.util.List<java.lang.Class<?>> findClassesForPath(java.nio.file.Path baseDir, java.lang.String basePackageName, ClassFilter classFilter)
-
processClassFileSafely
private void processClassFileSafely(java.nio.file.Path baseDir, java.lang.String basePackageName, ClassFilter classFilter, java.nio.file.Path classFile, java.util.function.Consumer<java.lang.Class<?>> classConsumer)
-
determineFullyQualifiedClassName
private java.lang.String determineFullyQualifiedClassName(java.nio.file.Path baseDir, java.lang.String basePackageName, java.nio.file.Path classFile)
-
determineSimpleClassName
private java.lang.String determineSimpleClassName(java.nio.file.Path classFile)
-
determineSubpackageName
private java.lang.String determineSubpackageName(java.nio.file.Path baseDir, java.nio.file.Path classFile)
-
handleInternalError
private void handleInternalError(java.nio.file.Path classFile, java.lang.String fullyQualifiedClassName, java.lang.InternalError ex)
-
handleThrowable
private void handleThrowable(java.nio.file.Path classFile, java.lang.Throwable throwable)
-
logMalformedClassName
private void logMalformedClassName(java.nio.file.Path classFile, java.lang.String fullyQualifiedClassName, java.lang.InternalError ex)
-
logGenericFileProcessingException
private void logGenericFileProcessingException(java.nio.file.Path classFile, java.lang.Throwable throwable)
-
getClassLoader
private java.lang.ClassLoader getClassLoader()
-
packagePath
private static java.lang.String packagePath(java.lang.String packageName)
-
getRootUrisForPackage
private java.util.List<java.net.URI> getRootUrisForPackage(java.lang.String basePackageName)
-
-