Class Util

public class Util
extends Object

Miscellaneous utility methods for setting-up implementations of ExecutionControl. Particularly implementations with remote execution.

Since:
9

Methods

Modifier and Type Method Description
static void detectJdiExitEvent​(VirtualMachine vm, Consumer<String> unbiddenExitHandler)

Monitor the JDI event stream for VMDeathEvent and VMDisconnectEvent.

static void forwardExecutionControl​(ExecutionControl ec, ObjectInput in, ObjectOutput out)

Forward commands from the input to the specified ExecutionControl 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 specified ExecutionControl 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.

Methods declared in class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Methods

forwardExecutionControl

public static void forwardExecutionControl(ExecutionControl ec,
                                           ObjectInput in,
                                           ObjectOutput out)

Forward commands from the input to the specified ExecutionControl instance, then responses back on the output.

Parameters:
ec - the direct instance of ExecutionControl to process commands
in - the command input
out - 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 specified ExecutionControl instance, then responses back on the output.

Parameters:
ec - the direct instance of ExecutionControl to process commands
inStream - the stream from which to create the command input
outStream - the stream that will carry any specified auxiliary channels (like System.out and System.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 stream
output - the packetized output stream
outputStreamMap - 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 for VMDeathEvent and VMDisconnectEvent. If encountered, invokes unbiddenExitHandler.

Parameters:
vm - the virtual machine to check
unbiddenExitHandler - the handler, which will accept the exit information

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/jdk.jshell/jdk/jshell/execution/Util.html