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.SafetyNetWrapperClassLoaderThis class loader extendsFlinkUserCodeClassLoaders.SafetyNetWrapperClassLoader, upon theaddURLmethod, it also exposes aremoveURLmethod which used to remove unnecessary jar from current classloader path. This class loader wraps aFlinkUserCodeClassLoaderand an old classloader list, the class load is delegated to the innerFlinkUserCodeClassLoader.This is only used to SqlClient for supporting
REMOVE JARclause currently. When remove a jar, get the registered jar url list from currentFlinkUserCodeClassLoaderfirstly, then create a new instance ofFlinkUserCodeClassLoaderwhich 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 closeClientWrapperClassLoader.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 Summary
Constructors Constructor Description ClientWrapperClassLoader(org.apache.flink.util.FlinkUserCodeClassLoader inner, org.apache.flink.configuration.Configuration configuration)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()voidremoveURL(URL url)-
Methods inherited from class org.apache.flink.util.FlinkUserCodeClassLoaders.SafetyNetWrapperClassLoader
addURL, getResource, getResources, getURLs, loadClass, loadClass
-
Methods inherited from class java.net.URLClassLoader
definePackage, findClass, findResource, findResources, getPermissions, getResourceAsStream, 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, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Method Detail
-
removeURL
public void removeURL(URL url)
-
close
public void close()
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classorg.apache.flink.util.FlinkUserCodeClassLoaders.SafetyNetWrapperClassLoader
-
-