Class AgentClassLoader
java.lang.Object
java.lang.ClassLoader
java.security.SecureClassLoader
java.net.URLClassLoader
io.opentelemetry.javaagent.bootstrap.AgentClassLoader
- All Implemented Interfaces:
Closeable,AutoCloseable
Classloader used to run the core agent.
It is built around the concept of a jar inside another jar. This class loader loads the files of the internal jar to load classes and resources.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classA stand-in for the bootstrap class loader. -
Constructor Summary
ConstructorsConstructorDescriptionAgentClassLoader(File javaagentFile) AgentClassLoader(File javaagentFile, String internalJarFileName, boolean isSecurityManagerSupportEnabled) Construct a new AgentClassLoader.AgentClassLoader(File javaagentFile, String internalJarFileName, boolean isSecurityManagerSupportEnabled, ClassLoader parentClassLoader) Construct a new AgentClassLoader with a custom parent ClassLoader. -
Method Summary
Modifier and TypeMethodDescriptionClass<?> defineClass(String name, byte[] bytes) findResource(String name) findResources(String name) protected Stringprotected PermissionCollectiongetPermissions(CodeSource codeSource) getResource(String resourceName) Class<?> Methods inherited from class java.net.URLClassLoader
addURL, close, definePackage, findClass, getResourceAsStream, getURLs, 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, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
Constructor Details
-
AgentClassLoader
-
AgentClassLoader
public AgentClassLoader(File javaagentFile, String internalJarFileName, boolean isSecurityManagerSupportEnabled) Construct a new AgentClassLoader.- Parameters:
javaagentFile- Used for resource lookups.internalJarFileName- File name of the internal jarisSecurityManagerSupportEnabled- Whether this class loader should define classes with all permissions
-
AgentClassLoader
public AgentClassLoader(File javaagentFile, String internalJarFileName, boolean isSecurityManagerSupportEnabled, @Nullable ClassLoader parentClassLoader) Construct a new AgentClassLoader with a custom parent ClassLoader. This is used by some 3rd party command-line utilities in order to reuse classes that are bundled as classdata files under `inst/`.- Parameters:
javaagentFile- Used for resource lookups.internalJarFileName- File name of the internal jarisSecurityManagerSupportEnabled- Whether this class loader should define classes with all permissionsparentClassLoader- Custom parent ClassLoader to use. If null, the default parent will be used.
-
-
Method Details
-
loadClass
- Overrides:
loadClassin classClassLoader- Throws:
ClassNotFoundException
-
defineClass
-
getPermissions
- Overrides:
getPermissionsin classURLClassLoader
-
getClassSuffix
-
getResource
- Overrides:
getResourcein classClassLoader
-
findResource
- Overrides:
findResourcein classURLClassLoader
-
findResources
- Overrides:
findResourcesin classURLClassLoader- Throws:
IOException
-
getBootstrapProxy
-