- java.lang.Object
-
- jdk.jshell.execution.Util
-
public class Util extends Object
Miscellaneous utility methods for setting-up implementations ofExecutionControl
. Particularly implementations with remote execution.- Since:
- 9
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
detectJdiExitEventβ(VirtualMachine vm, Consumer<String> unbiddenExitHandler)
Monitor the JDI event stream forVMDeathEvent
andVMDisconnectEvent
.static void
forwardExecutionControlβ(ExecutionControl ec, ObjectInput in, ObjectOutput out)
Forward commands from the input to the specifiedExecutionControl
instance, then responses back on the output.static void
forwardExecutionControlAndIOβ(ExecutionControl ec, InputStream inStream, OutputStream outStream, Map<String,Consumer<OutputStream>> outputStreamMap, Map<String,Consumer<InputStream>> inputStreamMap)
Forward commands from the input to the specifiedExecutionControl
instance, then responses back on the output.static ExecutionControl
remoteInputOutputβ(InputStream input, OutputStream output, Map<String,OutputStream> outputStreamMap, Map<String,InputStream> inputStreamMap, BiFunction<ObjectInput,ObjectOutput,ExecutionControl> factory)
Creates an ExecutionControl for given packetized input and output.
-
-
-
Method Detail
-
forwardExecutionControl
public static void forwardExecutionControlβ(ExecutionControl ec, ObjectInput in, ObjectOutput out)
Forward commands from the input to the specifiedExecutionControl
instance, then responses back on the output.- Parameters:
ec
- the direct instance ofExecutionControl
to process commandsin
- the command inputout
- the command response output
-
forwardExecutionControlAndIO
public static void forwardExecutionControlAndIOβ(ExecutionControl ec, InputStream inStream, OutputStream outStream, Map<String,Consumer<OutputStream>> outputStreamMap, Map<String,Consumer<InputStream>> inputStreamMap) throws IOException
Forward commands from the input to the specifiedExecutionControl
instance, then responses back on the output.- Parameters:
ec
- the direct instance ofExecutionControl
to process commandsinStream
- the stream from which to create the command inputoutStream
- the stream that will carry any specified auxiliary channels (likeSystem.out
andSystem.err
), and the command response output.outputStreamMap
- a map between names of additional streams to carry and setters for the stream. Names starting with '$' are reserved for internal use.inputStreamMap
- a map between names of additional streams to carry and setters for the stream. Names starting with '$' are reserved for internal use.- Throws:
IOException
- if there are errors using the passed streams
-
remoteInputOutput
public static ExecutionControl remoteInputOutputβ(InputStream input, OutputStream output, Map<String,OutputStream> outputStreamMap, Map<String,InputStream> inputStreamMap, BiFunction<ObjectInput,ObjectOutput,ExecutionControl> factory) throws IOException
Creates an ExecutionControl for given packetized input and output. The given InputStream is de-packetized, and content forwarded to ObjectInput and given OutputStreams. The ObjectOutput and values read from the given InputStream are packetized and sent to the given OutputStream.- Parameters:
input
- the packetized input streamoutput
- the packetized output streamoutputStreamMap
- a map between stream names and the output streams to forward. Names starting with '$' are reserved for internal use.inputStreamMap
- a map between stream names and the input streams to forward. Names starting with '$' are reserved for internal use.factory
- to create the ExecutionControl from ObjectInput and ObjectOutput.- Returns:
- the created ExecutionControl
- Throws:
IOException
- if setting up the streams raised an exception
-
detectJdiExitEvent
public static void detectJdiExitEventβ(VirtualMachine vm, Consumer<String> unbiddenExitHandler)
Monitor the JDI event stream forVMDeathEvent
andVMDisconnectEvent
. If encountered, invokesunbiddenExitHandler
.- Parameters:
vm
- the virtual machine to checkunbiddenExitHandler
- the handler, which will accept the exit information
-
-