- java.lang.Object
-
- java.lang.ClassLoader
-
- java.security.SecureClassLoader
-
- com.ibm.j9ddr.J9DDRClassLoader
-
public class J9DDRClassLoader extends SecureClassLoader
This ClassLoader serves two purposes. 1) Based on partitioning rules and package namespaces it ensures that certain classes are loaded once per runtime invocation while others are loaded once per CORE file being inspected. 2) Generate bytecode at runtime based on the data in the core file (or structure metadata file) for the J9 structure constants and offsets; as well as pointer classes. These classes are explicitly loaded on a per CORE file basis. The isolation is accomplished by removing the Application Class Loader from the class load delegation chain AND setting this class loader's classpath to be equal to the Application class loader's classpath. While the user may replace the application class loader with their own implementation, the application class loader MUST be a subclass of URLClassLoader.
-
-
Constructor Summary
Constructors Constructor Description J9DDRClassLoader(StructureReader reader, ClassLoader parent)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StructureHeader
getHeader()
IVMData
getIVMData(IProcess process, long address)
StructureReader
getReader()
Get the structure reader used by this classloader.Collection<StructureReader.StructureDescriptor>
getStructures()
Class<?>
loadClassRelativeToStream(String name, boolean resolve)
-
Methods declared in class java.security.SecureClassLoader
defineClass, defineClass, getPermissions
-
Methods declared in class java.lang.ClassLoader
clearAssertionStatus, clone, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findClass, findLibrary, findLoadedClass, findResource, findResource, findResources, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Constructor Detail
-
J9DDRClassLoader
public J9DDRClassLoader(StructureReader reader, ClassLoader parent)
-
-
Method Detail
-
getHeader
public StructureHeader getHeader()
-
loadClassRelativeToStream
public Class<?> loadClassRelativeToStream(String name, boolean resolve) throws ClassNotFoundException
- Throws:
ClassNotFoundException
-
getStructures
public Collection<StructureReader.StructureDescriptor> getStructures()
-
getIVMData
public IVMData getIVMData(IProcess process, long address) throws ClassNotFoundException, IllegalAccessException, InstantiationException
-
getReader
public StructureReader getReader()
Get the structure reader used by this classloader.- Returns:
-
-