Commit Graph

149 Commits (89187cc645e6152f6f181e97365f8a0431061308)

Author SHA1 Message Date
J-N-K ae677dcd9d
[jsscripting] Refactor dependency tracking (#13756)
Signed-off-by: Jan N. Klug <github@klug.nrw>
2022-11-29 21:59:58 +01:00
Florian Hotze 29d2578981
[jsscripting] Fix add-on name in feature/pom (#13764)
* Update pom.xml
* Update feature.xml
* [jsscripting] Rename from JSScripting to JavaScript Scripting

Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
2022-11-24 23:23:19 +01:00
Florian Hotze bfff07bb01
[jsscripting] Reimplement timer creation method of `ScriptExecution` (#13695)
* [jsscripting] Refactor ThreadsafeTimers to create futures inline instead of in an extra methods
* [jsscripting] Introduce utility class for providing easy access to script services
* [jsscripting] Reimplement timer creation methods from ScriptExecution for thread-safety
* [jsscripting] Add missing JavaDoc for reimplement timer creation methods
* [jsscripting] Remove the future from the map when setTimeout expires
* [jsscripting] Rename `GraalJSScriptServiceUtil` to `JSScriptServiceUtil`
* [jsscripting] Remove the `createTimerWithArgument` method
* [jsscripting] Replace the OSGi workaround of `JSScriptServiceUtil` with an injection mechanism
* [jsscripting] Use constructor to inject `JSScriptServiceUtil` into `GraalJSScriptEngineFactory`
* [jsscripting] Minor improvements by @J-N-K (#1)
* [jsscripting] Minor changes related to last commit to keep flexibility of `JSRuntimeFeatures`
* [jsscripting] Upgrade openhab-js to v2.1.1
* [jsscripting] Remove unused code

Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
Co-authored-by: Jan N. Klug <github@klug.nrw>
2022-11-20 22:08:19 +01:00
Florian Hotze 103619741d
[jsscripting] Fix the `console.trace` polyfill to log a stack trace & Stringify JS `Error` (#13749)
* [jsscripting] Fix the `console.trace` polyfill to log a stack trace & Stringify JS `Error`
* [jsscripting] Add myself to the codeowners

Fixes #12646

Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
2022-11-20 20:30:42 +01:00
Florian Hotze 4dde19203a
[jsscripting] Fix maven build (#13747)
This fixed the maven build, that fails because webpack-cli version 5.0.0 doesn’t properly process the given entrypoint.
Instead, webpack tries to use the entrypoint from openhab-js‘ webpack config file.

Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
2022-11-20 17:30:23 +01:00
Florian Hotze 11d3c641e5
[jsscripting] Fix failure on some platforms & JDKs (#13714)
* [jsscripting] Downgrade GraalVM to fix issue with armv7l & OpenJDK 11.0.16

The community reported several cases where JS Scripting was not working due to some issue with the injection of the global script.
This issue seems to only occur on armv7l (e.g. Raspberry Pi 32bit) and OpenJDK 11.0.16.
Investigation showed that the occurrence of the problem depends on the GraalJS version.

See https://community.openhab.org/t/js-scripting-all-scripts-stop-working-when-upgrading-to-3-4-0-m4/140837.

* [jsscripting] Add logging for injection of JSRuntimeFeatures
* [jsscripting] Lint `@jsscripting-globals.js` with semistandard
* [jsscripting] Remove ICU4J as it moved to `org.graalvm.truffle`

Reference f5661d4655/CHANGELOG.md (version-2200).

Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
2022-11-14 20:30:44 +01:00
Florian Hotze b0d4f5a5fd
[jsscripting] Update openhab-js version to 2.1.0 (#13664)
Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
2022-11-06 20:15:10 +01:00
Florian Hotze 51d3fc211a
[jsscripting] Reimplement timer polyfills to conform standard JS (#13623)
* [jsscripting] Reimplement timers to conform standard JS
* [jsscripting] Name scheduled jobs by loggerName + id
* [jsscripting] Update timer identifiers
* [jsscripting] Update identifiers for scheduled jobs
* [jsscripting] Synchronize method that is called when the script is reloaded
* [jsscripting] Cancel all scheduled jobs when the engine is closed
* [jsscripting] Ensure that a timerId is never reused by a subsequent call & Use long primitive type instead of Integer
* [jsscripting] Use an abstraction class to inject features into the JS runtime
* [jsscripting] Make ThreadsafeTimers threadsafe for concurrent access to the class itself
* [jsscripting] Move the locking for `invokeFunction` to `OpenhabGraalJSScriptEngine`

Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
2022-11-05 15:26:46 +01:00
Florian Hotze eda5a562a0
[jsscripting] Name timers created by polyfills (#13576)
* [jsscripting] Name timers created by polyfills

Fixes #13478.

Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
2022-10-24 23:40:44 +02:00
Florian Hotze cf47dc0f39
[jsscripting] Fix multi-thread access (#13582)
* [jsscripting] Share the lock mechanism that was used only for rules
This change moves the lock object that was originally created for ThreadsafeSimpleRuleDelegate to OpenhabGraalJSScriptEngine to make share it across the whole engine.

* [jsscripting] Inject the lock object into the JS runtime
* [jsscripting] Update `setTimeout` & `setInterval` polyfills to enable threadsafety
* [jsscripting] Upgrade GraalJS from 21.3.0 to 22.3.0
* [jsscripting] Reduce compiler warnings
* [jsscripting] Update node version of frontend-maven-plugin

Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
2022-10-24 13:35:33 +02:00
Florian Hotze bdefe17f08
[jsscripting] Upgrade openhab-js to 2.0.4 (#13565)
Fixes #13563.

Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
2022-10-18 22:34:33 +02:00
openhab-bot 936365031c
New Crowdin updates (#13542)
* New translations adorne.properties (Italian)
* New translations knx.properties (German)
* New translations jsscripting.properties (Italian)
2022-10-13 14:35:26 +02:00
Florian Hotze 39d221d3a8
[jsscripting] Update openhab-js to 2.0.3 (#13385)
* [jsscripting] Update openhab-js to 2.0.3
* [jsscripting] Update README

Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
2022-09-13 21:57:09 +02:00
Kai Kreuzer 440f603e88
Apply spotless and resolver (#13027)
Signed-off-by: Kai Kreuzer <kai@openhab.org>
2022-06-27 16:00:37 +02:00
openhab-bot ed4858ebbb [unleash-maven-plugin] Preparation for next development cycle. 2022-06-26 18:18:40 +00:00
Florian Hotze b2087e3807
[jsscripting] Upgrade openhab-js to version 2.0.0 (#12945)
* Bump openhab-js version to 2.0.0
* Update README for current openhab-js version
* README: Fix paths to images

Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
2022-06-18 13:24:05 +02:00
Jonathan Gilbert bdfe999bca
Removed ClassExtender as it's no longer used and may be leaking memory (#12725)
Signed-off-by: Jonathan Gilbert <jpg@trillica.com>
2022-05-12 23:08:40 +02:00
Daniel Lienert 47418606c6
DOCS: Add missing bracket (#12722) 2022-05-12 07:40:48 +02:00
Дилян Палаузов 6451afae5c
automation.jsscripting/README: hypelink (#12638) 2022-04-22 15:29:26 +02:00
Дилян Палаузов e44eb7d679
automation.jsscripting/README: typo (#12637) 2022-04-22 15:28:10 +02:00
Wouter Born b3ade70e29
Fix SAT MarkdownCheck image location findings (#12591)
This fixes all the MarkdownCheck "Images must be located in the doc/ folder." findings.

Fixes #12590

Signed-off-by: Wouter Born <github@maindrain.net>
2022-04-09 16:56:13 +02:00
Dan Cunningham a0920d4c0c
[jsscripting] Append the ruleID or file name to the logger when console logging (#11945)
* Appends the ruleID or file name to the logger when console logging.
* Adds configurable logging, updates scriptId logic

Signed-off-by: Dan Cunningham <dan@digitaldan.com>
2022-01-31 11:55:50 +01:00
Dan Cunningham 00da156b1b
[jsscripting] Updates to latest openhab-js library (#12171)
* Updates to latest openhab-js library
* Update for new default log level in 3.3

Signed-off-by: Dan Cunningham <dan@digitaldan.com>
2022-01-30 18:28:58 +01:00
Jonathan Gilbert 6bd37cb02a
[jsscripting] JS script engine no longer watches node_modules for scripts (#11830)
Signed-off-by: Jonathan Gilbert <jpg@trillica.com>
2022-01-23 11:46:13 +01:00
Richard Koshak df7d111bce
changedSince returns a boolean, not a Number (#12079) 2022-01-20 16:51:39 +01:00
Jonathan Gilbert 4d88ad06ae
[jsscripting] Wrapped GraalJS ScriptEngines now also Autocloseable (#12022)
Signed-off-by: Jonathan Gilbert <jpg@trillica.com>
2022-01-15 17:44:15 +01:00
Hilbrand Bouwkamp da59cdd255
Update license headers to 2022 (#11973)
Signed-off-by: Hilbrand Bouwkamp <hilbrand@h72.nl>
2022-01-06 18:14:47 +01:00
Markus Lipp dba4b0088f
[jsscripting] Fixed links to JS-Joda (#11950)
Fixed path to JS-Joda github page to be formatter as external links
2022-01-03 13:52:05 +01:00
openhab-bot c23f6adf13
New Crowdin updates (#11832)
* New translations astro.properties (Finnish)
* New translations astro.properties (German)
* New translations bluetooth.properties (German)
* New translations boschshc.properties (Italian)
* New translations comfoair.properties (German)
* New translations dwdunwetter.properties (German)
* New translations epsonprojector.properties (German)
* New translations gpio.properties (German)
* New translations heliosventilation.properties (German)
* New translations homeconnect.properties (German)
* New translations homematic.properties (German)
* New translations ipp.properties (German)
* New translations jruby.properties (Hungarian)
* New translations jsscripting.properties (German)
* New translations jsscripting.properties (Hungarian)
* New translations map.properties (German)
* New translations map.properties (Hungarian)
* New translations mqttbroker.properties (Italian)
* New translations nanoleaf.properties (German)
* New translations ocean.properties (German)
* New translations openhabcloud.properties (Finnish)
* New translations samsungtv.properties (Hungarian)
* New translations shelly.properties (German)
* New translations snmp.properties (German)
* New translations sonos.properties (German)
* New translations spotify.properties (German)
* New translations tr064.properties (German)
* New translations tradfri.properties (German)
* New translations unifi.properties (German)
* New translations unifi.properties (Hungarian)
* New translations valloxmv.properties (Finnish)
* New translations volvooncall.properties (German)
* New translations xslt.properties (German)
2021-12-29 13:16:52 +01:00
Marcel cc47ef7f3e
pom update from http to https reference (#11833)
Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
2021-12-23 19:40:44 +01:00
Dan Cunningham ec10dfe897
[jsscripting] Update docs and refactor path (#11827)
This adds a minor refactoring of loading local resource paths that i didn't have time to get into 3.2  and moves the docs directory to doc.

Signed-off-by: Dan Cunningham <dan@digitaldan.com>
2021-12-21 23:36:22 +01:00
Michael Aschenborn 8ea76db693
Update README.md (#11836)
missing )
2021-12-21 18:39:32 +01:00
Kai Kreuzer 48746f5e3f Apply spotless
Signed-off-by: Kai Kreuzer <kai@openhab.org>
2021-12-20 09:07:55 +01:00
openhab-bot 6dc031e6cf [unleash-maven-plugin] Preparation for next development cycle. 2021-12-20 00:30:46 +00:00
Dan Cunningham 0fddb6151c
[jsscripting] Support non unix file paths (#11805)
Lets try this again, Fixes #11801

Signed-off-by: Dan Cunningham <dan@digitaldan.com>
2021-12-17 20:34:25 +01:00
Dan Cunningham 2dfcb4cb3c
[jsscripting] Support non unix file paths (#11804)
Fixes #11801

Signed-off-by: Dan Cunningham <dan@digitaldan.com>
2021-12-17 17:08:35 +01:00
Dan Cunningham fe271e3c4a
[jsscripting] Library and Doc updates (#11800)
* [jsscripting] Library and Doc updates

This updates the documentation, bumps the NPM version library, and implements conversion of JS date types (js-joda) to Java types

Signed-off-by: Dan Cunningham <dan@digitaldan.com>
2021-12-17 08:00:44 +01:00
Wouter Born ccddf85c2a
[jsscripting] Add default translations (#11798)
Signed-off-by: Wouter Born <github@maindrain.net>
2021-12-16 20:06:50 +01:00
Dan Cunningham 22b9be1390
[jsscripting] Update library and change config PID (#11777)
* Use OH standrard component pid naming, default injection to true.
* Bump openhab-js

Signed-off-by: Dan Cunningham <dan@digitaldan.com>
2021-12-14 08:30:32 +01:00
Dan Cunningham 4481ecff61
[jsscripting] openhab-js integration (#11656)
Fixes #11222

Signed-off-by: Dan Cunningham <dan@digitaldan.com>
2021-12-13 08:13:13 +01:00
Jonathan Gilbert 306c30eda1
GraalJS now uses automation/js (#11719)
* GraalJS now uses automation/js

Signed-off-by: Jonathan Gilbert <jpg@trillica.com>
2021-12-12 23:06:37 +01:00
Jonathan Gilbert c1b10c8363
Added simple Shared Cache into scope (#11693)
Signed-off-by: Jonathan Gilbert <jpg@trillica.com>
2021-12-11 11:13:55 +01:00
Florian Hotze 9bde2df3b4
[jsscripting] Improve docs with Actions (#11624)
Updated the documentation with:
* Core Actions
* Cloud Notification Actions
* Persistence Extensions
* Ephemeris Actions
* Types and Units

Instead of the single "imports", the default scope
(openhab-core/DefaultScriptScopeProvider.java) is used.
It's imported as `openhab`, services are under `openhab.service`.

As the helper library is on the way (openhab/openhab-js):
* Added note about console.log and logging in general.
* Added note that the lib is on the way.

Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
2021-11-29 09:44:26 +01:00
LukasA83 a6fd6a3545
[jsscripting] Update GraalJS to 21.3 to allow method selection via JavaScript (#11437)
Signed-off-by: Lukas Agethen <lukas83@gmx.de>
2021-11-06 19:18:40 +01:00
Dan Cunningham cb9b69943c
[jsscripting] Tell the script context to use the classloader of the current class. (#11400)
Fixes #11222

Signed-off-by: Dan Cunningham <dan@digitaldan.com>
2021-10-19 16:21:06 +02:00
Kai Kreuzer bebab9ce29 applied spotless
Signed-off-by: Kai Kreuzer <kai@openhab.org>
2021-06-27 23:25:35 +02:00
jenkins 8c5c81e256 [unleash-maven-plugin] Preparation for next development cycle. 2021-06-27 17:35:01 +00:00
Wouter Born f907bf37f9
[jsscripting] Fix build and cleanup (#10654)
Related to #8516

Signed-off-by: Wouter Born <github@maindrain.net>
2021-05-06 22:19:59 +02:00
Jonathan Gilbert 9912e1afc2
[jsscripting] ES6+ Support (#8516)
Signed-off-by: Jonathan Gilbert <jpg@trillica.com>
2021-05-06 09:08:47 +02:00