Package jdk.jshell.spi

Defines the Service Provider Interface for pluggable JShell execution engines. The JShell core tracks and compiles Snippets then sends them (represented in a wrapper class) to the execution engine for loading, and in the case of executable Snippets, execution. The JShell implementation includes a default execution engine (currently a remote process which is JDI controlled). By implementing the ExecutionControl interface and its generating class, an implementation of the ExecutionControlProvider interface, and installing it with JShell.Builder.executionEngine(String) other execution engines can be used. Where the passed String is an ExecutionControl spec.

The ExecutionControl spec is the ExecutionControlProvider name optionally followed by a parameter specification. The syntax of the spec is:

spec   := name : params
        | name
 name   := identifier
 params := param , params
        | param
        |
 param  := identifier ( value )
Where 'name' is the ExecutionControlProvider name. Where 'param' is a Map key from ExecutionControlProvider.defaultParameters() and the parenthesized value; See, for example, JdiExecutionControlProvider. Where 'identifier' is a sequence of Java identifier part characters from the Basic Multilingual Plane.

For example:

  • local
  • jdi:hostname(localhost)
  • failover:1(jdi),2(jdi:launch(true),timeout(3000)),3(local)
Since:
9
See Also:
for execution implementation support
Interface Description
ExecutionControl

This interface specifies the functionality that must provided to implement a pluggable JShell execution engine.

ExecutionControlProvider

The provider used by JShell to generate the execution engine needed to evaluate Snippets.

ExecutionEnv

Functionality made available to a pluggable JShell execution engine.

Class Description
ExecutionControl.ClassBytecodes

Bundles class name with class bytecodes.

Exception Description
ExecutionControl.ClassInstallException

A class install (load or redefine) encountered a problem.

ExecutionControl.EngineTerminationException

Unbidden execution engine termination has occurred.

ExecutionControl.ExecutionControlException

The abstract base of all ExecutionControl exceptions.

ExecutionControl.InternalException

An internal problem has occurred.

ExecutionControl.NotImplementedException

The command is not implemented.

ExecutionControl.ResolutionException

An exception indicating that a DeclarationSnippet with unresolved references has been encountered.

ExecutionControl.RunException

The abstract base of of exceptions specific to running user code.

ExecutionControl.StoppedException

An exception indicating that an ExecutionControl.invoke(java.lang.String, java.lang.String) (or theoretically a ExecutionControl.varValue(java.lang.String, java.lang.String)) has been interrupted by a ExecutionControl.stop().

ExecutionControl.UserException

A 'normal' user exception occurred.

SPIResolutionException

The construction and throw of this exception is embedded in code generated by the JShell core implementation in such a way that, upon executing a RECOVERABLE_DEFINED user method, this exception is thrown.

© 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/spi/package-summary.html