- java.lang.Object
-
- jdk.jshell.execution.DirectExecutionControl
-
- jdk.jshell.execution.RemoteExecutionControl
-
- All Implemented Interfaces:
AutoCloseable,ExecutionControl
public class RemoteExecutionControl extends DirectExecutionControl implements ExecutionControl
The remote agent runs in the execution process (separate from the main JShell process). This agent loads code over a socket from the main JShell process, executes the code, and other misc, Specialization ofDirectExecutionControlwhich adds stop support controlled by an external process. Designed to work withJdiDefaultExecutionControl.- Since:
- 9
-
-
Nested Class Summary
-
Nested classes/interfaces declared in 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
-
-
Constructor Summary
Constructors Constructor Description RemoteExecutionControl()Create an instance using the default class loading.RemoteExecutionControl(LoaderDelegate loaderDelegate)Creates an instance, delegating loader operations to the specified delegate.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static voidmain(String[] args)Launch the agent, connecting to the JShell-core over the socket specified in the command-line argument.voidredefine(ExecutionControl.ClassBytecodes[] cbcs)Redefine processing on the remote end is only to register the redefined classes-
Methods declared in class jdk.jshell.execution.DirectExecutionControl
classesRedefined, clientCodeEnter, clientCodeLeave, findClass, invoke, stop, throwConvertedInvocationException, throwConvertedOtherException, valueString
-
Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods declared in interface jdk.jshell.spi.ExecutionControl
addToClasspath, close, extensionCommand, invoke, load, stop, varValue
-
-
-
-
Constructor Detail
-
RemoteExecutionControl
public RemoteExecutionControl(LoaderDelegate loaderDelegate)
Creates an instance, delegating loader operations to the specified delegate.- Parameters:
loaderDelegate- the delegate to handle loading classes
-
RemoteExecutionControl
public RemoteExecutionControl()
Create an instance using the default class loading.
-
-
Method Detail
-
main
public static void main(String[] args) throws Exception
Launch the agent, connecting to the JShell-core over the socket specified in the command-line argument.- Parameters:
args- standard command-line arguments, expectation is the socket number is the only argument- Throws:
Exception- any unexpected exception
-
redefine
public void redefine(ExecutionControl.ClassBytecodes[] cbcs) throws ExecutionControl.ClassInstallException, ExecutionControl.NotImplementedException, ExecutionControl.EngineTerminationException
Redefine processing on the remote end is only to register the redefined classes- Specified by:
redefinein interfaceExecutionControl- Parameters:
cbcs- the class name and bytecodes to redefine- Throws:
ExecutionControl.ClassInstallException- exception occurred redefining the classes, some or all were not redefinedExecutionControl.NotImplementedException- if not implementedExecutionControl.EngineTerminationException- the execution engine has terminated
-
-