Package org.junit.platform.commons.util
Class ClasspathScanner
- java.lang.Object
-
- org.junit.platform.commons.util.ClasspathScanner
-
class ClasspathScanner extends java.lang.Object
DISCLAIMER
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>
classLoaderSupplier
private static char
CLASSPATH_RESOURCE_PATH_SEPARATOR
private static java.lang.String
CLASSPATH_RESOURCE_PATH_SEPARATOR_STRING
private java.util.function.BiFunction<java.lang.String,java.lang.ClassLoader,Try<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 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.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, 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.ClassLoader
getClassLoader()
private java.util.List<java.net.URI>
getRootUrisForPackage(java.lang.String basePackageName)
private java.util.List<java.net.URI>
getRootUrisForPackageNameOnClassPathAndModulePath(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, ClassFilter classFilter, java.nio.file.Path classFile, java.util.function.Consumer<java.lang.Class<?>> classConsumer)
private static java.net.URI
removeTrailingClasspathResourcePathSeparator(java.net.URI uri)
(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
-
CLASSPATH_RESOURCE_PATH_SEPARATOR_STRING
private static final java.lang.String CLASSPATH_RESOURCE_PATH_SEPARATOR_STRING
-
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()
-
getRootUrisForPackageNameOnClassPathAndModulePath
private java.util.List<java.net.URI> getRootUrisForPackageNameOnClassPathAndModulePath(java.lang.String basePackageName)
-
removeTrailingClasspathResourcePathSeparator
private static java.net.URI removeTrailingClasspathResourcePathSeparator(java.net.URI uri)
-
packagePath
private static java.lang.String packagePath(java.lang.String packageName)
-
getRootUrisForPackage
private java.util.List<java.net.URI> getRootUrisForPackage(java.lang.String basePackageName)
-
-