[jsscripting] Upgrade to Graal 25 (#19567)

* [jsscripting] Upgrade to Graal 25.0.1

Signed-off-by: Florian Hotze <dev@florianhotze.com>
Co-authored-by: Cody Cutrer <cody@cutrer.us>
This commit is contained in:
Florian Hotze
2025-10-29 18:47:18 +01:00
committed by GitHub
co-authored by Cody Cutrer
parent af8a01cf76
commit 66264a66b7
4 changed files with 21 additions and 21 deletions
@@ -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
@@ -16,7 +16,7 @@
<properties>
<!-- Remember to check if the fix https://github.com/openhab/openhab-core/pull/4437 still works when upgrading GraalJS -->
<graaljs.version>24.2.1</graaljs.version>
<node.version>v22.17.1</node.version>
<ohjs.version>openhab@5.14.0</ohjs.version>
</properties>
@@ -25,7 +25,7 @@
<dependency>
<groupId>org.openhab.osgiify</groupId>
<artifactId>org.graalvm.polyglot.polyglot</artifactId>
<version>${graaljs.version}</version>
<version>${graalvm.version}</version>
<!-- provided as OSGi bundle at runtime, available only at compile time -->
<scope>provided</scope>
</dependency>
@@ -33,7 +33,7 @@
<dependency>
<groupId>org.openhab.osgiify</groupId>
<artifactId>org.graalvm.js.js-scriptengine</artifactId>
<version>${graaljs.version}</version>
<version>${graalvm.version}</version>
<!-- provided as OSGi bundle at runtime, available only at compile time -->
<scope>provided</scope>
</dependency>
@@ -47,7 +47,7 @@
<artifactId>frontend-maven-plugin</artifactId>
<version>1.15.4</version>
<configuration>
<nodeVersion>v22.13.1</nodeVersion>
<nodeVersion>${node.version}</nodeVersion>
<workingDirectory>target/js</workingDirectory>
</configuration>
<executions>
@@ -65,7 +65,7 @@
</goals>
<configuration>
<!--suppress UnresolvedMavenProperty -->
<arguments>install ${ohjs.version} webpack@^5.101.3 webpack-cli@^5.1.4 --prefix .</arguments>
<arguments>install ${ohjs.version} webpack@^5.101.3 webpack-cli@^6.0.1 --prefix .</arguments>
<!-- webpack & webpack-cli versions should match to the ones from openhab-js -->
</configuration>
</execution>
@@ -5,19 +5,19 @@
<feature name="openhab-automation-jsscripting" description="JavaScript Scripting" version="${project.version}">
<feature>openhab-runtime-base</feature>
<bundle dependency="true" start-level="78">mvn:org.openhab.osgiify/org.graalvm.js.js-language/24.2.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.graalvm.js.js-scriptengine/24.2.1</bundle>
<bundle dependency="true" start-level="78">mvn:org.openhab.osgiify/org.graalvm.regex.regex/24.2.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.graalvm.polyglot.polyglot/24.2.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.graalvm.sdk.collections/24.2.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.graalvm.sdk.jniutils/24.2.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.graalvm.sdk.nativeimage/24.2.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.graalvm.sdk.word/24.2.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.graalvm.shadowed.icu4j/24.2.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.graalvm.shadowed.xz/24.2.1</bundle>
<bundle dependency="true" start-level="79">mvn:org.openhab.osgiify/org.graalvm.truffle.truffle-api/24.2.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.graalvm.truffle.truffle-compiler/24.2.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.graalvm.truffle.truffle-runtime/24.2.1</bundle>
<bundle dependency="true" start-level="78">mvn:org.openhab.osgiify/org.graalvm.js.js-language/25.0.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.graalvm.js.js-scriptengine/25.0.1</bundle>
<bundle dependency="true" start-level="78">mvn:org.openhab.osgiify/org.graalvm.regex.regex/25.0.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.graalvm.polyglot.polyglot/25.0.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.graalvm.sdk.collections/25.0.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.graalvm.sdk.jniutils/25.0.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.graalvm.sdk.nativeimage/25.0.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.graalvm.sdk.word/25.0.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.graalvm.shadowed.icu4j/25.0.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.graalvm.shadowed.xz/25.0.1</bundle>
<bundle dependency="true" start-level="79">mvn:org.openhab.osgiify/org.graalvm.truffle.truffle-api/25.0.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.graalvm.truffle.truffle-compiler/25.0.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.graalvm.truffle.truffle-runtime/25.0.1</bundle>
<bundle start-level="80">mvn:org.openhab.addons.bundles/org.openhab.automation.jsscripting/${project.version}</bundle>
</feature>
</features>
@@ -249,8 +249,8 @@ public class OpenhabGraalJSScriptEngine
// 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"));
}