- java.lang.Object
-
- jdk.jshell.execution.StreamingExecutionControl
-
- jdk.jshell.execution.JdiExecutionControl
-
- jdk.jshell.execution.JdiDefaultExecutionControl
-
- All Implemented Interfaces:
AutoCloseable,ExecutionControl
public class JdiDefaultExecutionControl extends JdiExecutionControl
The implementation ofExecutionControlthat the JShell-core uses by default. Launches a remote process -- the "remote agent". Interfaces to the remote agent over a socket and via JDI. Designed to work withRemoteExecutionControl.- Since:
- 9
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface jdk.jshell.spi.ExecutionControl
ExecutionControl.ClassBytecodes, ExecutionControl.ClassInstallException, ExecutionControl.EngineTerminationException, ExecutionControl.ExecutionControlException, ExecutionControl.InternalException, ExecutionControl.NotImplementedException, ExecutionControl.ResolutionException, ExecutionControl.RunException, ExecutionControl.StoppedException, ExecutionControl.UserException
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Closes the execution engine.Stringinvoke(String classname, String methodname)Invokes an executable Snippet by calling a method on the specified wrapper class.voidstop()Interrupts a running remote invoke by manipulating remote variables and sending a stop via JDI.protected VirtualMachinevm()Returns the JDIVirtualMachineinstance.-
Methods inherited from interface jdk.jshell.spi.ExecutionControl
addToClasspath, extensionCommand, generate, generate, load, varValue
-
Methods inherited from class jdk.jshell.execution.JdiExecutionControl
redefine, referenceType
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from class jdk.jshell.execution.StreamingExecutionControl
addToClasspath, extensionCommand, load, varValue
-
-
-
-
Method Detail
-
invoke
public String invoke(String classname, String methodname) throws ExecutionControl.RunException, ExecutionControl.EngineTerminationException, ExecutionControl.InternalException
Description copied from interface:ExecutionControlInvokes an executable Snippet by calling a method on the specified wrapper class. The method must have no arguments and return String.- Specified by:
invokein interfaceExecutionControl- Overrides:
invokein classStreamingExecutionControl- Parameters:
classname- the class whose method should be invokedmethodname- the name of method to invoke- Returns:
- the result of the execution or null if no result
- Throws:
ExecutionControl.UserException- the invoke raised a user exceptionExecutionControl.ResolutionException- the invoke attempted to directly or indirectly invoke an unresolved snippetExecutionControl.StoppedException- if theinvoke()was canceled byExecutionControl.stop()ExecutionControl.EngineTerminationException- the execution engine has terminatedExecutionControl.InternalException- an internal problem occurredExecutionControl.RunException
-
stop
public void stop() throws ExecutionControl.EngineTerminationException, ExecutionControl.InternalExceptionInterrupts a running remote invoke by manipulating remote variables and sending a stop via JDI.- Specified by:
stopin interfaceExecutionControl- Overrides:
stopin classStreamingExecutionControl- Throws:
ExecutionControl.EngineTerminationException- the execution engine has terminatedExecutionControl.InternalException- an internal problem occurred
-
close
public void close()
Description copied from class:StreamingExecutionControlCloses the execution engine. Send an exit command to the remote agent.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceExecutionControl- Overrides:
closein classStreamingExecutionControl
-
vm
protected VirtualMachine vm() throws ExecutionControl.EngineTerminationException
Description copied from class:JdiExecutionControlReturns the JDIVirtualMachineinstance.- Specified by:
vmin classJdiExecutionControl- Returns:
- the virtual machine
- Throws:
ExecutionControl.EngineTerminationException- if the VM is dead/disconnected
-
-