Class ClientWrapperClassLoader
java.lang.Object
java.lang.ClassLoader
java.security.SecureClassLoader
java.net.URLClassLoader
org.apache.flink.util.MutableURLClassLoader
org.apache.flink.util.FlinkUserCodeClassLoaders.SafetyNetWrapperClassLoader
org.apache.flink.table.client.util.ClientWrapperClassLoader
- All Implemented Interfaces:
Closeable,AutoCloseable
@Experimental
@Internal
public class ClientWrapperClassLoader
extends org.apache.flink.util.FlinkUserCodeClassLoaders.SafetyNetWrapperClassLoader
This class loader extends
FlinkUserCodeClassLoaders.SafetyNetWrapperClassLoader, upon the addURL method, it
also exposes a removeURL method which used to remove unnecessary jar from current
classloader path. This class loader wraps a FlinkUserCodeClassLoader and an old
classloader list, the class load is delegated to the inner FlinkUserCodeClassLoader.
This is only used to SqlClient for supporting REMOVE JAR clause currently. When remove
a jar, get the registered jar url list from current FlinkUserCodeClassLoader firstly,
then create a new instance of FlinkUserCodeClassLoader which urls doesn't include the
removed jar, and the currentClassLoader point to new instance object, the old object is added to
list to be closed when close ClientWrapperClassLoader.
Note: This classloader is not guaranteed to actually remove class or resource, any classes or resources in the removed jar that are already loaded, are still accessible.
-
Field Summary
Fields inherited from class org.apache.flink.util.FlinkUserCodeClassLoaders.SafetyNetWrapperClassLoader
inner -
Constructor Summary
ConstructorsConstructorDescriptionClientWrapperClassLoader(org.apache.flink.util.FlinkUserCodeClassLoader inner, org.apache.flink.configuration.Configuration configuration) -
Method Summary
Methods inherited from class org.apache.flink.util.FlinkUserCodeClassLoaders.SafetyNetWrapperClassLoader
addURL, copy, getResource, getResources, getURLs, loadClass, loadClassMethods inherited from class java.net.URLClassLoader
definePackage, findClass, findResource, findResources, getPermissions, getResourceAsStream, newInstance, newInstanceMethods inherited from class java.security.SecureClassLoader
defineClass, defineClassMethods 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, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
Constructor Details
-
ClientWrapperClassLoader
public ClientWrapperClassLoader(org.apache.flink.util.FlinkUserCodeClassLoader inner, org.apache.flink.configuration.Configuration configuration)
-
-
Method Details
-
removeURL
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classorg.apache.flink.util.FlinkUserCodeClassLoaders.SafetyNetWrapperClassLoader
-