Class RemoteExecutionControl
java.lang.Object
jdk.jshell.execution.DirectExecutionControl
jdk.jshell.execution.RemoteExecutionControl
- All Implemented Interfaces:
- AutoCloseable,- 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 of
 
DirectExecutionControl which adds stop support controlled by
 an external process. Designed to work with JdiDefaultExecutionControl.- Since:
- 9
- 
Nested Class SummaryNested classes/interfaces declared in interface jdk.jshell.spi.ExecutionControlExecutionControl.ClassBytecodes, ExecutionControl.ClassInstallException, ExecutionControl.EngineTerminationException, ExecutionControl.ExecutionControlException, ExecutionControl.InternalException, ExecutionControl.NotImplementedException, ExecutionControl.ResolutionException, ExecutionControl.RunException, ExecutionControl.StoppedException, ExecutionControl.UserException
- 
Constructor SummaryConstructorsConstructorDescriptionCreate an instance using the default class loading.RemoteExecutionControl(LoaderDelegate loaderDelegate) Creates an instance, delegating loader operations to the specified delegate.
- 
Method SummaryModifier and TypeMethodDescriptionprotected voidMarks entry into user code.static voidLaunch the agent, connecting to the JShell-core over the socket specified in the command-line argument.voidRedefine processing on the remote end is only to register the redefined classesvoidstop()Interrupts a running invoke.Returns the value of a variable.Methods declared in class jdk.jshell.execution.DirectExecutionControladdToClasspath, classesRedefined, clientCodeLeave, close, extensionCommand, findClass, invoke, invoke, load, stop, throwConvertedInvocationException, throwConvertedOtherException, valueStringMethods declared in class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods declared in interface jdk.jshell.spi.ExecutionControladdToClasspath, close, extensionCommand, invoke, load
- 
Constructor Details- 
RemoteExecutionControlCreates an instance, delegating loader operations to the specified delegate.- Parameters:
- loaderDelegate- the delegate to handle loading classes
 
- 
RemoteExecutionControlpublic RemoteExecutionControl()Create an instance using the default class loading.
 
- 
- 
Method Details- 
mainLaunch 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
 
- 
redefinepublic 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 interface- ExecutionControl
- Parameters:
- cbcs- the class name and bytecodes to redefine
- Throws:
- ExecutionControl.ClassInstallException- exception occurred redefining the classes, some or all were not redefined
- ExecutionControl.NotImplementedException- if not implemented
- ExecutionControl.EngineTerminationException- the execution engine has terminated
 
- 
stoppublic void stop() throws ExecutionControl.EngineTerminationException, ExecutionControl.InternalExceptionDescription copied from class:DirectExecutionControlInterrupts a running invoke.Not supported. - Specified by:
- stopin interface- ExecutionControl
- Overrides:
- stopin class- DirectExecutionControl
- Throws:
- ExecutionControl.EngineTerminationException- the execution engine has terminated
- ExecutionControl.InternalException- an internal problem occurred
 
- 
varValuepublic String varValue(String className, String varName) throws ExecutionControl.RunException, ExecutionControl.EngineTerminationException, ExecutionControl.InternalException Description copied from interface:ExecutionControlReturns the value of a variable.- Specified by:
- varValuein interface- ExecutionControl
- Overrides:
- varValuein class- DirectExecutionControl
- Parameters:
- className- the name of the wrapper class of the variable
- varName- the name of the variable
- Returns:
- the value of the variable
- Throws:
- ExecutionControl.UserException- formatting the value raised a user exception
- ExecutionControl.ResolutionException- formatting the value attempted to directly or indirectly invoke an unresolved snippet
- ExecutionControl.StoppedException- if the formatting the value was canceled by- ExecutionControl.stop()
- ExecutionControl.EngineTerminationException- the execution engine has terminated
- ExecutionControl.InternalException- an internal problem occurred
- ExecutionControl.RunException
 
- 
clientCodeEnterprotected void clientCodeEnter()Description copied from class:DirectExecutionControlMarks entry into user code.- Overrides:
- clientCodeEnterin class- DirectExecutionControl
 
 
-