@Experimental
@Internal
public class ClientWrapperClassLoader
extends org.apache.flink.util.FlinkUserCodeClassLoaders.SafetyNetWrapperClassLoader
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.
| Constructor and Description |
|---|
ClientWrapperClassLoader(org.apache.flink.util.FlinkUserCodeClassLoader inner,
org.apache.flink.configuration.Configuration configuration) |
| Modifier and Type | Method and Description |
|---|---|
void |
close() |
void |
removeURL(URL url) |
addURL, getResource, getResources, getURLs, loadClass, loadClassdefinePackage, findClass, findResource, findResources, getPermissions, getResourceAsStream, newInstance, newInstancedefineClass, defineClassclearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSignerspublic ClientWrapperClassLoader(org.apache.flink.util.FlinkUserCodeClassLoader inner,
org.apache.flink.configuration.Configuration configuration)
public void removeURL(URL url)
public void close()
close in interface Closeableclose in interface AutoCloseableclose in class org.apache.flink.util.FlinkUserCodeClassLoaders.SafetyNetWrapperClassLoaderCopyright © 2014–2023 The Apache Software Foundation. All rights reserved.