Skip to content

Commit e8d136e

Browse files
authored
[jsscripting] Refactor script types to not rely on Graal.js defined consts (#19440)
This effectively changes the script types Signed-off-by: Florian Hotze <dev@florianhotze.com>
1 parent 3a91588 commit e8d136e

2 files changed

Lines changed: 5 additions & 14 deletions

File tree

bundles/org.openhab.automation.jsscripting/src/main/java/org/openhab/automation/jsscripting/internal/GraalJSScriptEngineFactory.java

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import java.nio.file.Paths;
1717
import java.util.List;
1818
import java.util.Map;
19-
import java.util.stream.Stream;
2019

2120
import javax.script.ScriptEngine;
2221

@@ -35,8 +34,6 @@
3534
import org.slf4j.Logger;
3635
import org.slf4j.LoggerFactory;
3736

38-
import com.oracle.truffle.js.scriptengine.GraalJSEngineFactory;
39-
4037
/**
4138
* An implementation of {@link ScriptEngineFactory} with customizations for GraalJS ScriptEngines.
4239
*
@@ -53,19 +50,13 @@ public class GraalJSScriptEngineFactory implements ScriptEngineFactory {
5350
public static final Path JS_LIB_PATH = JS_DEFAULT_PATH.resolve(NODE_DIR);
5451

5552
public static final String SCRIPT_TYPE = "application/javascript";
53+
public static final String SCRIPT_FILE_EXTENSION = "js";
5654

5755
private static final String LANG_NOT_INITIALIZED_MSG = "Graal JavaScript language not initialized. Restart openHAB to initialize available Graal languages properly.";
5856

59-
private static final GraalJSEngineFactory FACTORY = new GraalJSEngineFactory();
60-
61-
private static final List<String> SCRIPT_TYPES = createScriptTypes();
62-
63-
private static List<String> createScriptTypes() {
64-
// Add those for backward compatibility (existing scripts may rely on those MIME types)
65-
List<String> backwardCompat = List.of("application/javascript;version=ECMAScript-2021", "graaljs");
66-
return Stream.of(List.of(SCRIPT_TYPE), FACTORY.getMimeTypes(), FACTORY.getExtensions(), backwardCompat)
67-
.flatMap(List::stream).distinct().toList();
68-
}
57+
private static final List<String> SCRIPT_TYPES = List.of(SCRIPT_TYPE, SCRIPT_FILE_EXTENSION, "graaljs",
58+
// backward compatibility with the MIME type used in openHAB 3.x:
59+
"application/javascript;version=ECMAScript-2021");
6960

7061
private final Logger logger = LoggerFactory.getLogger(GraalJSScriptEngineFactory.class);
7162
private final GraalJSScriptEngineConfiguration configuration;

bundles/org.openhab.automation.jsscripting/src/main/java/org/openhab/automation/jsscripting/internal/fs/watch/JSScriptFileWatcher.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public JSScriptFileWatcher(final @Reference(target = WatchService.CONFIG_WATCHER
4949
protected Optional<String> getScriptType(Path scriptFilePath) {
5050
if (!scriptFilePath.startsWith(GraalJSScriptEngineFactory.JS_LIB_PATH)) {
5151
Optional<String> scriptType = super.getScriptType(scriptFilePath);
52-
if (scriptType.isPresent() && ("js".equals(scriptType.get()))) {
52+
if (scriptType.isPresent() && (GraalJSScriptEngineFactory.SCRIPT_FILE_EXTENSION.equals(scriptType.get()))) {
5353
return Optional.of(GraalJSScriptEngineFactory.SCRIPT_TYPE);
5454
}
5555
}

0 commit comments

Comments
 (0)