Package org.glassfish.appclient.client
Class MaskingClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- org.glassfish.appclient.client.MaskingClassLoader
-
public class MaskingClassLoader extends ClassLoader
ClassLoader
that masks a specified set of classes from its parent class loader.This code is used to create an isolated environment.
- Author:
- Jerome Dochez
-
-
Constructor Summary
Constructors Constructor Description MaskingClassLoader(ClassLoader parent, Collection<String> punchins, Collection<String> multiples)
MaskingClassLoader(ClassLoader parent, Collection<String> punchins, Collection<String> multiples, boolean useExplicitCallsToFindSystemClass)
Creates a new masking class loader letting a set of defined packages be loaded by the parent classloader.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description URL
getResource(String name)
Enumeration<URL>
getResources(String name)
protected boolean
isDottedNameLoadableByParent(String name)
protected Class<?>
loadClass(String name, boolean resolve)
-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findClass, findLibrary, findLoadedClass, findResource, findResource, findResources, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResourceAsStream, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Constructor Detail
-
MaskingClassLoader
public MaskingClassLoader(ClassLoader parent, Collection<String> punchins, Collection<String> multiples)
-
MaskingClassLoader
public MaskingClassLoader(ClassLoader parent, Collection<String> punchins, Collection<String> multiples, boolean useExplicitCallsToFindSystemClass)
Creates a new masking class loader letting a set of defined packages be loaded by the parent classloader. Multiples packages can be specified so that only the parent package needs to be provided.- Parameters:
parent
- the parent classloader to delegate actual loading from when punchin is allowedpunchins
- list of packages allowed to be visible from the parentmultiples
- list of parent packages allowed to be visible from the parent class loader
-
-
Method Detail
-
loadClass
protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException
- Overrides:
loadClass
in classClassLoader
- Throws:
ClassNotFoundException
-
getResource
public URL getResource(String name)
- Overrides:
getResource
in classClassLoader
-
getResources
public Enumeration<URL> getResources(String name) throws IOException
- Overrides:
getResources
in classClassLoader
- Throws:
IOException
-
isDottedNameLoadableByParent
protected boolean isDottedNameLoadableByParent(String name)
-
-