Class JdiInitiator

java.lang.Object
jdk.jshell.execution.JdiInitiator

public class JdiInitiator extends Object
Sets up a JDI connection, providing the resulting JDI VirtualMachine and the Process the remote agent is running in.
Since:
9
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    protected static interface 
    Callback that should invoked when the remote process is invoked.
  • Constructor Summary

    Constructors
    Constructor
    Description
    JdiInitiator(int port, List<String> remoteVMOptions, String remoteAgent, boolean isLaunch, String host, int timeout, Map<String,String> customConnectorArgs)
    Start the remote agent and establish a JDI connection to it.
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the launched process.
    protected void
    runListenProcess(String jdiAddress, int jshellControlPort, List<String> remoteVMOptions, JdiInitiator.ProcessStarted setupVM)
    Create a process that will attach to the given address.
    vm()
    Returns the resulting VirtualMachine instance.

    Methods declared in class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    Modifier and Type
    Method
    Description
    protected Object
    Creates and returns a copy of this object.
    boolean
    Indicates whether some other object is "equal to" this one.
    protected void
    Deprecated, for removal: This API element is subject to removal in a future version.
    Finalization is deprecated and subject to removal in a future release.
    final Class<?>
    Returns the runtime class of this Object.
    int
    Returns a hash code value for this object.
    final void
    Wakes up a single thread that is waiting on this object's monitor.
    final void
    Wakes up all threads that are waiting on this object's monitor.
    Returns a string representation of the object.
    final void
    Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
    final void
    wait(long timeoutMillis)
    Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
    final void
    wait(long timeoutMillis, int nanos)
    Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  • Constructor Details

    • JdiInitiator

      public JdiInitiator(int port, List<String> remoteVMOptions, String remoteAgent, boolean isLaunch, String host, int timeout, Map<String,String> customConnectorArgs)
      Start the remote agent and establish a JDI connection to it.
      Parameters:
      port - the socket port for (non-JDI) commands
      remoteVMOptions - any user requested VM command-line options
      remoteAgent - full class name of remote agent to launch
      isLaunch - does JDI do the launch? That is, LaunchingConnector, otherwise we start explicitly and use ListeningConnector
      host - explicit hostname to use, if null use discovered hostname, applies to listening only (!isLaunch)
      timeout - the start-up time-out in milliseconds. If zero or negative, will not wait thus will timeout immediately if not already started.
      customConnectorArgs - custom arguments passed to the connector. These are JDI com.sun.jdi.connect.Connector arguments. The vmexec argument is not supported.
  • Method Details

    • vm

      public VirtualMachine vm()
      Returns the resulting VirtualMachine instance.
      Returns:
      the virtual machine
    • process

      public Process process()
      Returns the launched process.
      Returns:
      the remote agent process
    • runListenProcess

      protected void runListenProcess(String jdiAddress, int jshellControlPort, List<String> remoteVMOptions, JdiInitiator.ProcessStarted setupVM)
      Create a process that will attach to the given address.
      Parameters:
      jdiAddress - address on which a JDI server is waiting for a connection
      jshellControlPort - the port which the remote agent should connect to
      remoteVMOptions - VM options for the remote agent VM
      setupVM - a callback that should be called then the remote agent process is created. The callback will setup the JDI's VirtualMachine.
      Since:
      22