]> git.basschouten.com Git - openhab-addons.git/commitdiff
[jsscripting] Fix node_modules handling (#14398)
authorJ-N-K <github@klug.nrw>
Sat, 18 Feb 2023 18:53:33 +0000 (19:53 +0100)
committerGitHub <noreply@github.com>
Sat, 18 Feb 2023 18:53:33 +0000 (19:53 +0100)
Signed-off-by: Jan N. Klug <github@klug.nrw>
bundles/org.openhab.automation.jsscripting/src/main/java/org/openhab/automation/jsscripting/internal/GraalJSScriptEngineFactory.java
bundles/org.openhab.automation.jsscripting/src/main/java/org/openhab/automation/jsscripting/internal/OpenhabGraalJSScriptEngine.java
bundles/org.openhab.automation.jsscripting/src/main/java/org/openhab/automation/jsscripting/internal/fs/watch/JSDependencyTracker.java

index d8cb3f9298212ae74edb0bb98aa9d7baccf03105..7302b517ed741eeef63c9083d573bbadc5c65c1a 100644 (file)
@@ -89,8 +89,8 @@ public final class GraalJSScriptEngineFactory implements ScriptEngineFactory {
         if (!SCRIPT_TYPES.contains(scriptType)) {
             return null;
         }
-        return new DebuggingGraalScriptEngine<>(
-                new OpenhabGraalJSScriptEngine(injectionEnabled, useIncludedLibrary, jsScriptServiceUtil));
+        return new DebuggingGraalScriptEngine<>(new OpenhabGraalJSScriptEngine(injectionEnabled, useIncludedLibrary,
+                jsScriptServiceUtil, jsDependencyTracker));
     }
 
     @Override
index f16272e475bd7efa224e2668f3853cdcecdcd08d..91132e4f401b7fa32a26efe404d27bd7a979261d 100644 (file)
@@ -139,7 +139,7 @@ public class OpenhabGraalJSScriptEngine
      * lifecycle and provides hooks for scripts to do so too.
      */
     public OpenhabGraalJSScriptEngine(boolean injectionEnabled, boolean useIncludedLibrary,
-            JSScriptServiceUtil jsScriptServiceUtil) {
+            JSScriptServiceUtil jsScriptServiceUtil, JSDependencyTracker jsDependencyTracker) {
         super(null); // delegate depends on fields not yet initialised, so we cannot set it immediately
         this.injectionEnabled = injectionEnabled;
         this.useIncludedLibrary = useIncludedLibrary;
@@ -149,7 +149,8 @@ public class OpenhabGraalJSScriptEngine
 
         delegate = GraalJSScriptEngine.create(ENGINE,
                 Context.newBuilder("js").allowExperimentalOptions(true).allowAllAccess(true)
-                        .allowHostAccess(HOST_ACCESS).option("js.commonjs-require-cwd", JSDependencyTracker.LIB_PATH)
+                        .allowHostAccess(HOST_ACCESS)
+                        .option("js.commonjs-require-cwd", jsDependencyTracker.getLibraryPath().toString())
                         .option("js.nashorn-compat", "true") // Enable Nashorn compat mode as openhab-js relies on
                                                              // accessors, see
                                                              // https://github.com/oracle/graaljs/blob/master/docs/user/NashornMigrationGuide.md#accessors
index 134bd5059a51389001c263fd9b706ee55fe1d58a..f744537fd93fc12853a7fedb4d350ce63147f2ea 100644 (file)
@@ -13,7 +13,6 @@
 package org.openhab.automation.jsscripting.internal.fs.watch;
 
 import java.io.File;
-import java.nio.file.Files;
 
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.openhab.core.automation.module.script.ScriptDependencyTracker;
@@ -40,15 +39,11 @@ public class JSDependencyTracker extends AbstractScriptDependencyTracker {
 
     private final Logger logger = LoggerFactory.getLogger(JSDependencyTracker.class);
 
-    public static final String LIB_PATH = String.join(File.separator, "automation", "js", "node_modules");
+    private static final String LIB_PATH = String.join(File.separator, "automation", "js", "node_modules");
 
     @Activate
     public JSDependencyTracker(@Reference(target = WatchService.CONFIG_WATCHER_FILTER) WatchService watchService) {
         super(watchService, LIB_PATH);
-
-        if (Files.isRegularFile(this.libraryPath)) {
-            logger.warn("Trying to watch directory '{}', however it is a file", this.libraryPath);
-        }
     }
 
     @Deactivate