- 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 ofDirectExecutionControl
which 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 void
main(String[] args)
Launch the agent, connecting to the JShell-core over the socket specified in the command-line argument.void
redefine(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:
redefine
in 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
-
-