From: Mathieu Baudier Date: Mon, 29 May 2023 08:27:16 +0000 (+0200) Subject: Add canonical JShell direct execution provider X-Git-Tag: v2.3.17~10 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=7a393f1814b834293ecd2be49e983a25fe4d626f;p=lgpl%2Fargeo-commons.git Add canonical JShell direct execution provider --- diff --git a/org.argeo.init/src/META-INF/services/jdk.jshell.spi.ExecutionControlProvider b/org.argeo.init/src/META-INF/services/jdk.jshell.spi.ExecutionControlProvider new file mode 100644 index 000000000..dc4497451 --- /dev/null +++ b/org.argeo.init/src/META-INF/services/jdk.jshell.spi.ExecutionControlProvider @@ -0,0 +1 @@ +org.argeo.init.jshell.DirectExecutionControlProvider \ No newline at end of file diff --git a/org.argeo.init/src/org/argeo/init/jshell/DirectExecutionControlProvider.java b/org.argeo.init/src/org/argeo/init/jshell/DirectExecutionControlProvider.java new file mode 100644 index 000000000..1ba87963f --- /dev/null +++ b/org.argeo.init/src/org/argeo/init/jshell/DirectExecutionControlProvider.java @@ -0,0 +1,28 @@ +package org.argeo.init.jshell; + +import java.util.Map; + +import jdk.jshell.execution.DirectExecutionControl; +import jdk.jshell.spi.ExecutionControl; +import jdk.jshell.spi.ExecutionControlProvider; +import jdk.jshell.spi.ExecutionEnv; +import jdk.jshell.tool.JavaShellToolBuilder; + +/** + * Canonical {@link ExecutionControlProvider} wrapping a + * {@link DirectExecutionControl}, so that {@link JavaShellToolBuilder} can run + * in the same VM. + */ +public class DirectExecutionControlProvider implements ExecutionControlProvider { + + @Override + public String name() { + return "direct"; + } + + @Override + public ExecutionControl generate(ExecutionEnv env, Map parameters) throws Throwable { + return new DirectExecutionControl(); + } + +}