Fixes several issues:
- Scanning is now always correctly extended in the "upwards" direction (to superclasses, interfaces, annotations, and outer classes) if a class referred to in a scanned whitelisted classfile is not itself whitelisted. Previously, this was not reliable, due to a race condition.
- Class names are now also checked against the blacklist when extending scanning upwards, so that blacklisting can be used to block this upwards extension of scanning.
- When matching classloaders against the list of registered
ClassLoaderHandler
definitions, the superclasses of classloaders is also checked (so that if a classloader extendsURLClassLoader
, for example, it can be handled by theURLClassLoaderHandler
if there is no more specificClassLoaderHandler
to handle it). - If
.overrideClassLoaders()
is called, then the context classloaders are now ignored. Note that you may want to use this together with.ignoreParentClassLoaders()
to extract classpath URLs from only the override classloaders, and not their parent classloaders. - Added
ResourceList#getURIs()
- Added proper percent-encoding of resource path in
Resource#getURI()
, e.g. for URIs containing paths with spaces in them (previously threw an exception) - Robustness fixes, improvements to logging, performance improvements, refactoring