From 7a393f1814b834293ecd2be49e983a25fe4d626f Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Mon, 29 May 2023 10:27:16 +0200 Subject: [PATCH] Add canonical JShell direct execution provider --- .../jdk.jshell.spi.ExecutionControlProvider | 1 + .../DirectExecutionControlProvider.java | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 org.argeo.init/src/META-INF/services/jdk.jshell.spi.ExecutionControlProvider create mode 100644 org.argeo.init/src/org/argeo/init/jshell/DirectExecutionControlProvider.java 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(); + } + +} -- 2.30.2