- 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 ofExecutionControl
that 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 void
close()
Closes the execution engine.String
invoke(String classname, String methodname)
Invokes an executable Snippet by calling a method on the specified wrapper class.void
stop()
Interrupts a running remote invoke by manipulating remote variables and sending a stop via JDI.protected VirtualMachine
vm()
Returns the JDIVirtualMachine
instance.-
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:ExecutionControl
Invokes an executable Snippet by calling a method on the specified wrapper class. The method must have no arguments and return String.- Specified by:
invoke
in interfaceExecutionControl
- Overrides:
invoke
in 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.InternalException
Interrupts a running remote invoke by manipulating remote variables and sending a stop via JDI.- Specified by:
stop
in interfaceExecutionControl
- Overrides:
stop
in classStreamingExecutionControl
- Throws:
ExecutionControl.EngineTerminationException
- the execution engine has terminatedExecutionControl.InternalException
- an internal problem occurred
-
close
public void close()
Description copied from class:StreamingExecutionControl
Closes the execution engine. Send an exit command to the remote agent.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceExecutionControl
- Overrides:
close
in classStreamingExecutionControl
-
vm
protected VirtualMachine vm() throws ExecutionControl.EngineTerminationException
Description copied from class:JdiExecutionControl
Returns the JDIVirtualMachine
instance.- Specified by:
vm
in classJdiExecutionControl
- Returns:
- the virtual machine
- Throws:
ExecutionControl.EngineTerminationException
- if the VM is dead/disconnected
-
-