Module jdk.jshell
Package jdk.jshell.execution

Class Util



  • public classUtilextendsObject
    Miscellaneous utility methods for setting-up implementations ofExecutionControl. Particularly implementations with remote execution.
    Since:
    9
    • 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 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)                                         throwsIOException
        Forward commands from the input to the specifiedExecutionControl instance, then responses back on the output.
        Parameters:
        ec - the direct instance ofExecutionControl to process commands
        inStream - the stream from which to create the command input
        outStream - 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)                                          throwsIOException
        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 forVMDeathEvent andVMDisconnectEvent. If encountered, invokesunbiddenExitHandler.
        Parameters:
        vm - the virtual machine to check
        unbiddenExitHandler - the handler, which will accept the exit information