Package net.bytebuddy.agent
Class VirtualMachine.ForOpenJ9
- java.lang.Object
-
- net.bytebuddy.agent.VirtualMachine.AbstractBase
-
- net.bytebuddy.agent.VirtualMachine.ForOpenJ9
-
- All Implemented Interfaces:
VirtualMachine
- Enclosing interface:
- VirtualMachine
public static class VirtualMachine.ForOpenJ9 extends VirtualMachine.AbstractBase
A virtual machine attachment implementation for OpenJ9 or any compatible JVM.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceVirtualMachine.ForOpenJ9.DispatcherA dispatcher for native operations being used for communication with an OpenJ9 virtual machine.-
Nested classes/interfaces inherited from interface net.bytebuddy.agent.VirtualMachine
VirtualMachine.AbstractBase, VirtualMachine.ForHotSpot, VirtualMachine.ForOpenJ9, VirtualMachine.Resolver
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.StringIBM_TEMPORARY_FOLDERThe temporary folder for attachment files for OpenJ9 VMs.private static java.security.SecureRandomSECURE_RANDOMA secure random for generating randomized ids.private java.net.SocketsocketThe socket on which this VM and the target VM communicate.
-
Constructor Summary
Constructors Modifier Constructor Description protectedForOpenJ9(java.net.Socket socket)Creates a new virtual machine connection for OpenJ9.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static VirtualMachineattach(java.lang.String processId)Attaches to the supplied process id using the default JNA implementation.static VirtualMachineattach(java.lang.String processId, int timeout, VirtualMachine.ForOpenJ9.Dispatcher dispatcher)Attaches to the supplied process id.voiddetach()Detaches this virtual machine representation.java.util.PropertiesgetAgentProperties()Loads the target VMs agent properties.java.util.PropertiesgetSystemProperties()Loads the target VMs system properties.voidloadAgent(java.lang.String jarFile, java.lang.String argument)Loads an agent into the represented virtual machine.voidloadAgentLibrary(java.lang.String library, java.lang.String argument)Loads a native agent library into the represented virtual machine.voidloadAgentPath(java.lang.String path, java.lang.String argument)Loads a native agent into the represented virtual machine.private static byte[]read(java.net.Socket socket)Reads a'\0'-terminated value from the target socket.java.lang.StringstartLocalManagementAgent()Starts a local management agent.voidstartManagementAgent(java.util.Properties properties)Starts a JMX management agent.private static voidwrite(java.net.Socket socket, byte[] value)Writes the supplied value to the target socket.-
Methods inherited from class net.bytebuddy.agent.VirtualMachine.AbstractBase
loadAgent, loadAgentLibrary, loadAgentPath
-
-
-
-
Field Detail
-
IBM_TEMPORARY_FOLDER
private static final java.lang.String IBM_TEMPORARY_FOLDER
The temporary folder for attachment files for OpenJ9 VMs.- See Also:
- Constant Field Values
-
SECURE_RANDOM
private static final java.security.SecureRandom SECURE_RANDOM
A secure random for generating randomized ids.
-
socket
private final java.net.Socket socket
The socket on which this VM and the target VM communicate.
-
-
Method Detail
-
attach
public static VirtualMachine attach(java.lang.String processId) throws java.io.IOException
Attaches to the supplied process id using the default JNA implementation. This method will not consider attaching to VMs owned by different users than the current user.- Parameters:
processId- The process id.- Returns:
- A suitable virtual machine implementation.
- Throws:
java.io.IOException- If an IO exception occurs during establishing the connection.
-
attach
public static VirtualMachine attach(java.lang.String processId, int timeout, VirtualMachine.ForOpenJ9.Dispatcher dispatcher) throws java.io.IOException
Attaches to the supplied process id.- Parameters:
processId- The process id.timeout- The timeout for establishing the socket connection.dispatcher- The connector to use to communicate with the target VM.- Returns:
- A suitable virtual machine implementation.
- Throws:
java.io.IOException- If an IO exception occurs during establishing the connection.
-
getSystemProperties
public java.util.Properties getSystemProperties() throws java.io.IOExceptionLoads the target VMs system properties.- Returns:
- The target VM properties.
- Throws:
java.io.IOException- If an I/O exception occurs.
-
getAgentProperties
public java.util.Properties getAgentProperties() throws java.io.IOExceptionLoads the target VMs agent properties.- Returns:
- The target VM properties.
- Throws:
java.io.IOException- If an I/O exception occurs.
-
loadAgent
public void loadAgent(java.lang.String jarFile, @MaybeNull java.lang.String argument) throws java.io.IOExceptionLoads an agent into the represented virtual machine.- Parameters:
jarFile- The jar file to attach.argument- The argument to provide ornullif no argument should be provided.- Throws:
java.io.IOException- If an I/O exception occurs.
-
loadAgentPath
public void loadAgentPath(java.lang.String path, @MaybeNull java.lang.String argument) throws java.io.IOExceptionLoads a native agent into the represented virtual machine.- Parameters:
path- The agent path.argument- The argument to provide ornullif no argument should be provided.- Throws:
java.io.IOException- If an I/O exception occurs.
-
loadAgentLibrary
public void loadAgentLibrary(java.lang.String library, @MaybeNull java.lang.String argument) throws java.io.IOExceptionLoads a native agent library into the represented virtual machine.- Parameters:
library- The agent library.argument- The argument to provide ornullif no argument should be provided.- Throws:
java.io.IOException- If an I/O exception occurs.
-
startManagementAgent
public void startManagementAgent(java.util.Properties properties) throws java.io.IOExceptionStarts a JMX management agent.- Parameters:
properties- The properties to transfer to the JMX agent.- Throws:
java.io.IOException- If an I/O error occurs.
-
startLocalManagementAgent
public java.lang.String startLocalManagementAgent() throws java.io.IOExceptionStarts a local management agent.- Returns:
- The local connector address.
- Throws:
java.io.IOException- If an I/O error occurs.
-
detach
public void detach() throws java.io.IOExceptionDetaches this virtual machine representation.- Throws:
java.io.IOException- If an I/O exception occurs.
-
write
private static void write(java.net.Socket socket, byte[] value) throws java.io.IOExceptionWrites the supplied value to the target socket.- Parameters:
socket- The socket to write to.value- The value being written.- Throws:
java.io.IOException- If an I/O exception occurs.
-
read
private static byte[] read(java.net.Socket socket) throws java.io.IOExceptionReads a'\0'-terminated value from the target socket.- Parameters:
socket- The socket to read from.- Returns:
- The value that was read.
- Throws:
java.io.IOException- If an I/O exception occurs.
-
-