Package net.bytebuddy.agent
Class Installer
- java.lang.Object
-
- net.bytebuddy.agent.Installer
-
public class Installer extends java.lang.Object
An installer class which defined the hook-in methods that are required by the Java agent specification.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.instrument.Instrumentation
instrumentation
A field for carrying theInstrumentation
that was loaded by the Byte Buddy agent.static java.lang.String
NAME
The name of theInstaller
class that is stored in an obfuscated format which will not be relocated.
-
Constructor Summary
Constructors Modifier Constructor Description private
Installer()
The installer provides onlystatic
hook-in methods and should not be instantiated.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
agentmain(java.lang.String arguments, java.lang.instrument.Instrumentation instrumentation)
Allows the installation of this agent via the attach API.private static void
doMain(java.lang.instrument.Instrumentation instrumentation)
Installs theInstrumentation
in the current class and possibly obfuscated class.static java.lang.instrument.Instrumentation
getInstrumentation()
Returns the instrumentation that was loaded by the Byte Buddy agent.static void
premain(java.lang.String arguments, java.lang.instrument.Instrumentation instrumentation)
Allows the installation of this agent via a command line argument.
-
-
-
Field Detail
-
NAME
public static final java.lang.String NAME
The name of theInstaller
class that is stored in an obfuscated format which will not be relocated.
-
instrumentation
@MaybeNull private static volatile java.lang.instrument.Instrumentation instrumentation
A field for carrying theInstrumentation
that was loaded by the Byte Buddy agent. Note that this field must never be accessed directly as the agent is injected into the VM's system class loader. This way, the field of this class might benull
even after the installation of the Byte Buddy agent as this class might be loaded by a different class loader than the system class loader.
-
-
Method Detail
-
getInstrumentation
public static java.lang.instrument.Instrumentation getInstrumentation()
Returns the instrumentation that was loaded by the Byte Buddy agent. When a security manager is active, the
RuntimePermission
forgetInstrumentation
is required by the caller.Important: This method must only be invoked via the
ClassLoader.getSystemClassLoader()
where any Java agent is loaded. It is possible that two versions of this class exist for different class loaders.- Returns:
- The instrumentation instance of the Byte Buddy agent.
-
premain
public static void premain(java.lang.String arguments, java.lang.instrument.Instrumentation instrumentation)
Allows the installation of this agent via a command line argument.- Parameters:
arguments
- The unused agent arguments.instrumentation
- The instrumentation instance.
-
agentmain
public static void agentmain(java.lang.String arguments, java.lang.instrument.Instrumentation instrumentation)
Allows the installation of this agent via the attach API.- Parameters:
arguments
- The unused agent arguments.instrumentation
- The instrumentation instance.
-
doMain
private static void doMain(java.lang.instrument.Instrumentation instrumentation)
Installs theInstrumentation
in the current class and possibly obfuscated class.- Parameters:
instrumentation
- The instrumentation instance.
-
-