From 7a8629cd36e478d5e611bd1eeed1fc6c98b17e08 Mon Sep 17 00:00:00 2001 From: Florian Hotze Date: Sun, 26 Oct 2025 15:22:56 +0100 Subject: [PATCH 1/2] [jsscripting] Upgrade to Graal 25 - Upgrades to Graal 25. Changelog: https://github.com/oracle/graaljs/blob/master/CHANGELOG.md#version-2500 - Adjusts Node.js version accordingly. - Syncs webpack-cli version with openhab-js. Signed-off-by: Florian Hotze --- .../README.md | 2 +- .../pom.xml | 7 ++--- .../src/main/feature/feature.xml | 26 +++++++++---------- .../internal/OpenhabGraalJSScriptEngine.java | 4 +-- 4 files changed, 20 insertions(+), 19 deletions(-) diff --git a/bundles/org.openhab.automation.jsscripting/README.md b/bundles/org.openhab.automation.jsscripting/README.md index 6dd0fbb33d03c..100249e958a1d 100644 --- a/bundles/org.openhab.automation.jsscripting/README.md +++ b/bundles/org.openhab.automation.jsscripting/README.md @@ -1,6 +1,6 @@ # JavaScript Scripting -This add-on provides support for JavaScript (ECMAScript 2024+) that can be used as a scripting language within automation rules. +This add-on provides support for JavaScript (ECMAScript 2025+) that can be used as a scripting language within automation rules. It is based on [GraalJS](https://www.graalvm.org/javascript/) from the [GraalVM project](https://www.graalvm.org/). Also included is [openhab-js](https://github.com/openhab/openhab-js/), a fairly high-level ES6 library to support automation in openHAB. It provides convenient access diff --git a/bundles/org.openhab.automation.jsscripting/pom.xml b/bundles/org.openhab.automation.jsscripting/pom.xml index 06d93bb1f617e..786283f1ad31f 100644 --- a/bundles/org.openhab.automation.jsscripting/pom.xml +++ b/bundles/org.openhab.automation.jsscripting/pom.xml @@ -16,7 +16,8 @@ - 24.2.1 + 25.0.1 + v22.17.1 openhab@5.14.0 @@ -47,7 +48,7 @@ frontend-maven-plugin 1.15.4 - v22.13.1 + ${node.version} target/js @@ -65,7 +66,7 @@ - install ${ohjs.version} webpack@^5.101.3 webpack-cli@^5.1.4 --prefix . + install ${ohjs.version} webpack@^5.101.3 webpack-cli@^6.0.1 --prefix . diff --git a/bundles/org.openhab.automation.jsscripting/src/main/feature/feature.xml b/bundles/org.openhab.automation.jsscripting/src/main/feature/feature.xml index e08d5eea6720c..ecbdd3b3e03c1 100644 --- a/bundles/org.openhab.automation.jsscripting/src/main/feature/feature.xml +++ b/bundles/org.openhab.automation.jsscripting/src/main/feature/feature.xml @@ -5,19 +5,19 @@ openhab-runtime-base - mvn:org.openhab.osgiify/org.graalvm.js.js-language/24.2.1 - mvn:org.openhab.osgiify/org.graalvm.js.js-scriptengine/24.2.1 - mvn:org.openhab.osgiify/org.graalvm.regex.regex/24.2.1 - mvn:org.openhab.osgiify/org.graalvm.polyglot.polyglot/24.2.1 - mvn:org.openhab.osgiify/org.graalvm.sdk.collections/24.2.1 - mvn:org.openhab.osgiify/org.graalvm.sdk.jniutils/24.2.1 - mvn:org.openhab.osgiify/org.graalvm.sdk.nativeimage/24.2.1 - mvn:org.openhab.osgiify/org.graalvm.sdk.word/24.2.1 - mvn:org.openhab.osgiify/org.graalvm.shadowed.icu4j/24.2.1 - mvn:org.openhab.osgiify/org.graalvm.shadowed.xz/24.2.1 - mvn:org.openhab.osgiify/org.graalvm.truffle.truffle-api/24.2.1 - mvn:org.openhab.osgiify/org.graalvm.truffle.truffle-compiler/24.2.1 - mvn:org.openhab.osgiify/org.graalvm.truffle.truffle-runtime/24.2.1 + mvn:org.openhab.osgiify/org.graalvm.js.js-language/25.0.1 + mvn:org.openhab.osgiify/org.graalvm.js.js-scriptengine/25.0.1 + mvn:org.openhab.osgiify/org.graalvm.regex.regex/25.0.1 + mvn:org.openhab.osgiify/org.graalvm.polyglot.polyglot/25.0.1 + mvn:org.openhab.osgiify/org.graalvm.sdk.collections/25.0.1 + mvn:org.openhab.osgiify/org.graalvm.sdk.jniutils/25.0.1 + mvn:org.openhab.osgiify/org.graalvm.sdk.nativeimage/25.0.1 + mvn:org.openhab.osgiify/org.graalvm.sdk.word/25.0.1 + mvn:org.openhab.osgiify/org.graalvm.shadowed.icu4j/25.0.1 + mvn:org.openhab.osgiify/org.graalvm.shadowed.xz/25.0.1 + mvn:org.openhab.osgiify/org.graalvm.truffle.truffle-api/25.0.1 + mvn:org.openhab.osgiify/org.graalvm.truffle.truffle-compiler/25.0.1 + mvn:org.openhab.osgiify/org.graalvm.truffle.truffle-runtime/25.0.1 mvn:org.openhab.addons.bundles/org.openhab.automation.jsscripting/${project.version} diff --git a/bundles/org.openhab.automation.jsscripting/src/main/java/org/openhab/automation/jsscripting/internal/OpenhabGraalJSScriptEngine.java b/bundles/org.openhab.automation.jsscripting/src/main/java/org/openhab/automation/jsscripting/internal/OpenhabGraalJSScriptEngine.java index a0a8c840227ca..7d58d28506e4e 100644 --- a/bundles/org.openhab.automation.jsscripting/src/main/java/org/openhab/automation/jsscripting/internal/OpenhabGraalJSScriptEngine.java +++ b/bundles/org.openhab.automation.jsscripting/src/main/java/org/openhab/automation/jsscripting/internal/OpenhabGraalJSScriptEngine.java @@ -249,8 +249,8 @@ public Path toRealPath(Path path, LinkOption... linkOptions) throws IOException // enable Nashorn compat mode as openhab-js relies on accessors, see // https://github.com/oracle/graaljs/blob/master/docs/user/NashornMigrationGuide.md#accessors .option("js.nashorn-compat", "true") // - // if Nashorn compat mode is enabled, it will enforce ES5 compatibility, we want ECMA2024 - .option("js.ecmascript-version", "2024") // + // if Nashorn compat mode is enabled, it will enforce ES5 compatibility, we want ECMA2025 + .option("js.ecmascript-version", "2025") // // enable CommonJS module support .option("js.commonjs-require", "true")); } From 2ed10292a0867f1c4e835ee126f3ee3497716542 Mon Sep 17 00:00:00 2001 From: Cody Cutrer Date: Wed, 29 Oct 2025 11:35:55 -0600 Subject: [PATCH 2/2] Use graalvm.version instead of graaljs.version Signed-off-by: Cody Cutrer --- bundles/org.openhab.automation.jsscripting/pom.xml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/bundles/org.openhab.automation.jsscripting/pom.xml b/bundles/org.openhab.automation.jsscripting/pom.xml index 786283f1ad31f..db3230cd13516 100644 --- a/bundles/org.openhab.automation.jsscripting/pom.xml +++ b/bundles/org.openhab.automation.jsscripting/pom.xml @@ -16,7 +16,6 @@ - 25.0.1 v22.17.1 openhab@5.14.0 @@ -26,7 +25,7 @@ org.openhab.osgiify org.graalvm.polyglot.polyglot - ${graaljs.version} + ${graalvm.version} provided @@ -34,7 +33,7 @@ org.openhab.osgiify org.graalvm.js.js-scriptengine - ${graaljs.version} + ${graalvm.version} provided