Package org.apache.flink.util
Class ChildFirstClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- java.security.SecureClassLoader
-
- java.net.URLClassLoader
-
- org.apache.flink.util.MutableURLClassLoader
-
- org.apache.flink.util.FlinkUserCodeClassLoader
-
- org.apache.flink.util.ChildFirstClassLoader
-
- All Implemented Interfaces:
Closeable,AutoCloseable
public final class ChildFirstClassLoader extends FlinkUserCodeClassLoader
A variant of the URLClassLoader that first loads from the URLs and only after that from the parent.URLClassLoader.getResourceAsStream(String)usesgetResource(String)internally so we don't override that.
-
-
Field Summary
-
Fields inherited from class org.apache.flink.util.FlinkUserCodeClassLoader
NOOP_EXCEPTION_HANDLER
-
-
Constructor Summary
Constructors Constructor Description ChildFirstClassLoader(URL[] urls, ClassLoader parent, String[] alwaysParentFirstPatterns, java.util.function.Consumer<Throwable> classLoadingExceptionHandler)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description URLgetResource(String name)Enumeration<URL>getResources(String name)protected Class<?>loadClassWithoutExceptionHandling(String name, boolean resolve)Same asFlinkUserCodeClassLoader.loadClass(String, boolean)but without exception handling.-
Methods inherited from class org.apache.flink.util.FlinkUserCodeClassLoader
loadClass
-
Methods inherited from class org.apache.flink.util.MutableURLClassLoader
addURL
-
Methods inherited from class java.net.URLClassLoader
close, definePackage, findClass, findResource, findResources, getPermissions, getResourceAsStream, getURLs, newInstance, newInstance
-
Methods inherited from class java.security.SecureClassLoader
defineClass, defineClass
-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Constructor Detail
-
ChildFirstClassLoader
public ChildFirstClassLoader(URL[] urls, ClassLoader parent, String[] alwaysParentFirstPatterns, java.util.function.Consumer<Throwable> classLoadingExceptionHandler)
-
-
Method Detail
-
loadClassWithoutExceptionHandling
protected Class<?> loadClassWithoutExceptionHandling(String name, boolean resolve) throws ClassNotFoundException
Description copied from class:FlinkUserCodeClassLoaderSame asFlinkUserCodeClassLoader.loadClass(String, boolean)but without exception handling.Extending concrete class loaders should implement this instead of
FlinkUserCodeClassLoader.loadClass(String, boolean).- Overrides:
loadClassWithoutExceptionHandlingin classFlinkUserCodeClassLoader- Throws:
ClassNotFoundException
-
getResource
public URL getResource(String name)
- Overrides:
getResourcein classClassLoader
-
getResources
public Enumeration<URL> getResources(String name) throws IOException
- Overrides:
getResourcesin classClassLoader- Throws:
IOException
-
-