Class AgentClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- java.security.SecureClassLoader
-
- java.net.URLClassLoader
-
- io.opentelemetry.javaagent.bootstrap.AgentClassLoader
-
- All Implemented Interfaces:
Closeable,AutoCloseable
public class AgentClassLoader extends URLClassLoader
Classloader used to run the core agent.It is built around the concept of a jar inside another jar. This classloader loads the files of the internal jar to load classes and resources.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAgentClassLoader.BootstrapClassLoaderProxyA stand-in for the bootstrap classloader.
-
Constructor Summary
Constructors Constructor Description AgentClassLoader(File javaagentFile, String internalJarFileName, ClassLoader parent)Construct a new AgentClassLoader.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Class<?>findClass(String name)URLfindResource(String name)Enumeration<URL>findResources(String name)AgentClassLoader.BootstrapClassLoaderProxygetBootstrapProxy()protected StringgetClassSuffix()URLgetResource(String resourceName)Class<?>loadClass(String name, boolean resolve)-
Methods inherited from class java.net.URLClassLoader
addURL, close, definePackage, getPermissions, getResourceAsStream, getURLs, 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, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Constructor Detail
-
AgentClassLoader
public AgentClassLoader(File javaagentFile, String internalJarFileName, ClassLoader parent)
Construct a new AgentClassLoader.- Parameters:
javaagentFile- Used for resource lookups.internalJarFileName- File name of the internal jarparent- Classloader parent. Should null (bootstrap), or the platform classloader for java
-
-
Method Detail
-
loadClass
public Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException
- Overrides:
loadClassin classClassLoader- Throws:
ClassNotFoundException
-
findClass
protected Class<?> findClass(String name) throws ClassNotFoundException
- Overrides:
findClassin classURLClassLoader- Throws:
ClassNotFoundException
-
getClassSuffix
protected String getClassSuffix()
-
getResource
public URL getResource(String resourceName)
- Overrides:
getResourcein classClassLoader
-
findResource
public URL findResource(String name)
- Overrides:
findResourcein classURLClassLoader
-
findResources
public Enumeration<URL> findResources(String name) throws IOException
- Overrides:
findResourcesin classURLClassLoader- Throws:
IOException
-
getBootstrapProxy
public AgentClassLoader.BootstrapClassLoaderProxy getBootstrapProxy()
-
-