New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[automation] Prepare automation for custom ScriptEngineFactories #1251
[automation] Prepare automation for custom ScriptEngineFactories #1251
Conversation
... w/ core and custom helper libraries! Requires openhab#1251. Fixes https://github.com/openhab/openhab2-addons/issues/4801. This dramatically simplifies the installation of Jython and the Jython core and community helper libraries. Questions: * Should this project go into OHC or openhab2-addons? My preference is to keep all automation in OHC and eventually split it out into another repo. * Is the copyOnWriteArray needed in ScriptModuleTyeProvider? I don't think so. * I've unrolled the Jython jar. Is there and issue with the NOTICE file? I first used Jython 2.7.2b2, but it no longer works with recent builds of OH (works with S1749 though). See openhab#1252. I have another PR that makes a custom NashornScriptEngineFactory, but I'll wait for that one until the decisions have been made for this one. If custom ScriptEngineFactories or to go into openhab2-addons, then NashornScriptEngineFqactory should be moved there too, which will be difficult to have it load by default. Signed-off-by: Scott Rushworth <openhab@5iver.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for the update. This makes sense. I added some remarks inside.
...rc/main/java/org/openhab/core/automation/module/script/internal/ScriptEngineManagerImpl.java
Outdated
Show resolved
Hide resolved
...va/org/openhab/core/automation/module/script/internal/provider/ScriptModuleTypeProvider.java
Outdated
Show resolved
Hide resolved
...va/org/openhab/core/automation/module/script/internal/provider/ScriptModuleTypeProvider.java
Outdated
Show resolved
Hide resolved
...ipt/src/main/java/org/openhab/core/automation/module/script/AbstractScriptEngineFactory.java
Outdated
Show resolved
Hide resolved
... w/ core and custom helper libraries! Requires openhab#1251. Fixes https://github.com/openhab/openhab2-addons/issues/4801. This dramatically simplifies the installation of Jython and the Jython core and community helper libraries. Questions: * Should this project go into OHC or openhab2-addons? My preference is to keep all automation in OHC and eventually split it out into another repo. * Is the copyOnWriteArray needed in ScriptModuleTyeProvider? I don't think so. * I've unrolled the Jython jar. Is there and issue with the NOTICE file? I first used Jython 2.7.2b2, but it no longer works with recent builds of OH (works with S1749 though). See openhab#1252. I was seeing the same error with 2.7.1, so this bundle uses 2.7.0. I have another PR that makes a custom NashornScriptEngineFactory, but I'll wait for that one until the decisions have been made for this one. If custom ScriptEngineFactories or to go into openhab2-addons, then NashornScriptEngineFqactory should be moved there too, which will be difficult to have it load by default. Signed-off-by: Scott Rushworth <openhab@5iver.com>
1cdcbe6
to
f88157d
Compare
@cweitkamp, I have made the changes that you have requested and this PR is ready for another review. |
...va/org/openhab/core/automation/module/script/internal/provider/ScriptModuleTypeProvider.java
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thanks.
@kaikreuzer, if this were merged, people would only have to copy the Jython bundle to addons rather than having to also mess with a core bundle too. Why not one more PR while it's still experimental?! |
Hm. We have learned from the binding APIs that abstract classes are a bad idea and we instead wanted to work with clean interfaces and callback injection in future. Moving this out from internal means we are making this an API now. I'm ok to merge, if we all agree that this is only a temporary API that we might change soon again.
Will this survive the automatic code formatter/cleanup? Imho you should not use FQCNs for the classes for which you have an import statement. |
This sounds like something for OH3 and I will look into it. I was already planning to look into callback injection for automation.
I'm good with this 😄
This is not necessary at all. It was helpful for me to understand whether the classes were from OH or javax.script and I have no problem putting it back. I don't know about the formatter, but isn't this already in place? |
Then I'd vote to put it back :-)
Yes, but disabled for now. |
These changes prepare for custom ScriptEngineFactories and does not include any breaking changes. * Moved AbstractScriptEngineFactory out of internal so that it can be used by custom factories * Modified ScriptEngineModuleTypeProvider to include engines from custom factories * Cleaned up some logging Signed-off-by: Scott Rushworth <openhab@5iver.com>
f88157d
to
113a04e
Compare
Done |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
Thank you! This will make things a lot easier! |
... w/ core and custom helper libraries! Requires openhab#1251. Fixes https://github.com/openhab/openhab2-addons/issues/4801. This dramatically simplifies the installation of Jython and the Jython core and community helper libraries. Questions: * Should this project go into OHC or openhab2-addons? My preference is to keep all automation in OHC and eventually split it out into another repo. * Is the copyOnWriteArray needed in ScriptModuleTyeProvider? I don't think so. * I've unrolled the Jython jar. Is there and issue with the NOTICE file? I first used Jython 2.7.2b2, but it no longer works with recent builds of OH (works with S1749 though). See openhab#1252. I was seeing the same error with 2.7.1, so this bundle uses 2.7.0. I have another PR that makes a custom NashornScriptEngineFactory, but I'll wait for that one until the decisions have been made for this one. If custom ScriptEngineFactories or to go into openhab2-addons, then NashornScriptEngineFqactory should be moved there too, which will be difficult to have it load by default. Signed-off-by: Scott Rushworth <openhab@5iver.com>
* Update README (2.5.x) (openhab#1153) Change branch name. Signed-off-by: Yannick Schaus <github@schaus.net> * Update items.md (openhab#1156) * Added var and VA units to UoM (openhab#1146) VA (Volt-Ampere - apparent power) and var (Volt-Ampere reactive) are used to measure power and energy consumption in AC circuits. Signed-off-by: Nagy Attila Gabor <mrbig@sneaker.hu> * Fix filepath to keystore (openhab#1148) Default openHAB userdata environment variable should be `$OPENHAB_USERDATA`, not `$USER_DATA` shouldn't it? At least, this is the default on my fresh openHABian and also the most popular variant to find in the docs. * Slight language corrections (openhab#1150) I think it reads better this way Signed-off-by: Richard Davies <rwdrich@gmail.com> * additional example for non default persistence service (openhab#1152) For me it was confusing how to pass on the serviceId into methods that already had an argument. An extra example is always good. Signed-off-by: jaco <jaco.waes@gmail.com> * Adding 12 new logos for OH Add-Ons page on website (openhab#1158) Signed-off-by: bracklanna bracklanna@users.noreply.github.com * Added missing preset variables (openhab#1104) * Added missing preset variables Signed-off-by: Scott Rushworth <openhab@5iver.com> * Cleaned up blank lines, fixed table, and added file name for SimpleRule Signed-off-by: Scott Rushworth <openhab@5iver.com> * Fix broken link (openhab#1165) * Added Hotlink from "label" section to "state presentation" (openhab#1167) * Added note about broken action (openhab#1164) * Added note about broken action See openhab#1374 Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de> * Incorporated changes from review Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de> * Incorporated changes from review Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de> * Update index.md (openhab#1170) Link appears to be wrong and does not work when I click on it in Edge. Loads the same page again instead of loading the correct new page from the hyperlink. https://www.openhab.org/docs/developer/guidelines.html * Added Airthings logo (openhab#1171) * typo in exambp (openhab#1172) `Temperature.averageSince(now.minusMinutes(5),"influxdb")` * file.encoding=UTF-8 (openhab#1173) * Update demo URL and add demo.rules URL (openhab#1174) Based on: https://community.openhab.org/t/demo-setup-missing/94850 Old Link is broken leading to 404. The link to the demo.rules on github is an extra :) * Replace outdated zulu.org link. (#1177) * Replace outdated zulu.org link. As of 3/23/2020 zulu.org has an SSL cert that expired on 9/28/2019. Changed link to azul.com/downloads, since that appears to be the new official source. Signed-off-by: Billy Stevens <contact@wasv.me> * Changed all http links to https for installation/index.md. All changed links working, tested on 3/24/2020. Signed-off-by: Billy Stevens <contact@wasv.me> * Minor language tweak (openhab#1178) * Ending an active scan/stopScan (openhab#1179) Signed-off-by: Mark Theiding <mark.theiding@gmail.com> * Add files via upload (openhab#1184) * Update persistence.md (openhab#1185) Clarify return objects for max/min rules extensions. Signed-off-by: Ross Kennedy rossko@culzean.clara.co.uk * Update things.md (openhab#1186) Amended example code to include using label and location when defining a Thing with a bridge that is defined elsewhere. * Correct typos (openhab#1190) * Correct usage of its/it's "It's" is always a contraction of "it is" or "it has". "Its" is a possessive. Correct a few places where they were used backwards. Signed-off-by: Bjorn Helgaas <bjorn@helgaas.com> * Correct "Z-Wave" spelling Per https://www.z-wave.com/, the canonical spelling appears to be "Z-Wave". Most places use "Z-Wave" already; change the remaining references to match. Signed-off-by: Bjorn Helgaas <bjorn@helgaas.com> * Correct typos and grammatical errors Correct some typos and grammatical errors. Signed-off-by: Bjorn Helgaas <bjorn@helgaas.com> * Update sitemap.md section charts (openhab#1191) I observed that the unique first word in the labels of items charted in a group isn't causing an empty chart anymore. I'm on openHAB 2.5.1. Signed-off-by: Juergen Baginski opus42@gmx.de * Add image for insteon binding (openhab#1196) Signed-off-by: Rob Nielsen <rob.nielsen@yahoo.com> * typo (openhab#1198) Signed-off-by: Mark Theiding <mark.theiding@gmail.com> * Installation details (openhab#1197) Added more details around the installation and configuration process. Fixed that engine no longer logs "Activated scripting support..." Signed-off-by: Mark Theiding <mark.theiding@gmail.com> * Update sitemaps.md (openhab#1202) Added full item definition for usage of visibility. See https://community.openhab.org/t/sitemap-visibility-basic-ui/97304/9 * Updated ecobee logo (https://brand.ecobee.com/) (openhab#1203) Signed-off-by: Rob Nielsen <rob.nielsen@yahoo.com> * tutorial: Fix description of sitemap 'type' (openhab#1204) In the tutorial, the generic sitemap description says that ItemType has to be the same as the type defined in default.items. Looking at https://www.openhab.org/docs/configuration/items.html#type and https://www.openhab.org/docs/configuration/sitemaps.html#element-types this is incorrect as they take different values. The example is even mislading as `Switch` is one of the only types which is common between items and sitemaps. Might be better to describe `Default` instead. Signed-off-by: Christophe Fergeau <cfergeau@redhat.com> * Added information about DateTime Group functions LATEST/EARLIEST (openhab#1206) Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de> * Add section for documentation contributions (openhab#1205) Hopefully this will lower the hurdle for people to submit documentation contributions. I know from myself that I didn't submit various documentation improvements, because I didn't know git and thought it would be a much more involved process. Ideally there would be a separate documentation section, but submitting this under the development contribution page for now (as per discussion with @Confectrician in openhab/openhab-docs#1179 (comment)). Note that I am addressing the issue of DCO failures wrt specifying the full name that I ran into myself in openhab/openhab-docs#1197 (comment). I found a good discussion of the issue at dcoapp/app#43. Signed-off-by: Mark Theiding <mark.theiding@gmail.com> * fix typo (openhab#1209) * add description of Ephemeris localization support (openhab#1210) Add a new section to describe the localization support and how-to steps Signed-off-by: Michael Roßner Schrott.Micha@web.de * Line 115 broken link - should be: (openhab#1217) * Line 115 broken link - should be: ({{base}}/docs/configuration/sitemaps.html#element-types) was: ({{base}}/configuration/configuration/sitemaps.html#element-types) * Removed diplicated docs breadcrumb Signed-off-by: Jerome Luckenbach <github@luckenba.ch> Co-authored-by: Jerome Luckenbach <github@luckenba.ch> * add missing space between words (openhab#1212) * Update configuration.md (#1215) I'm a beginner myself. Though I liked this tutorial very much, it took me some time trying and erroring and finally reading forum posts to get behind this. I didn't even know there was something like a more modern ping. So maybe others are happy to learn this right from the beginning. * Remove architecture from Docker tags (openhab#1220) Docker automatically detects the architecture and downloads the appropriate image (openhab/openhab-docker#213). BuildKit will no longer generate new tags having the architecture (openhab/openhab-docker#293). Signed-off-by: Wouter Born <github@maindrain.net> * slight readability improvements (openhab#1221) * slight readability improvements * Update introduction.md * Update introduction.md * minor wording update * Update eclipse.md (openhab#1225) Clarifying that it's no longer possible to make changes in the Core Framework for 2.5.x. Signed-off-by: Mark Theiding <mark.theiding@gmail.com> * [fmiweather] logo for FMI Weather binding (openhab#929) Signed-off-by: Sami Salonen <ssalonen@gmail.com> * Update eclipse.md (openhab#1226) Added additional structure around install, run, debug and update steps. Provided more pointers to interactions with Eclipse, Maven and Git. Signed-off-by: Mark Theiding <mark.theiding@gmail.com> * Update contributing.md (openhab#1227) Need to escape \< and \> in the sign off message format so users see them explicitly in the Contributing to the Documentation section. Signed-off-by: Mark Theiding <mark.theiding@gmail.com> * Update contributing.md (openhab#1228) Small refinement on documentation change submission flow. Signed-off-by: Mark Theiding <mark.theiding@gmail.com> * Add doc folder to the binding directory structure (openhab#1230) Signed-off-by: Fabian Wolter <github@fabian-wolter.de> * Make Subheadings Use Proper Subheading Syntax (openhab#1234) This way they render out as proper markdown and don't look weird on the website Signed-off-by: Stefan Zabka <zabkaste@informatik.hu-berlin.de> * Remove unnecessary isCancelled() from code example (openhab#1235) Cancelling an already canceled task has no effect. IMHO this check is not necesssary and removal would simplify the code. I came to this because I saw this pattern in many bindings during reviewing. Signed-off-by: Fabian Wolter <github@fabian-wolter.de> * Update thing-xml.md (openhab#1236) Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de> * Fix broken ESH links (openhab#1231) Signed-off-by: Wouter Born <github@maindrain.net> * Update logging.md (openhab#1238) Add information on how to find out the symbolic names of the bundles * Remove Apache Commons from Default Libraries (#1229) See openhab/openhab-addons#7722 Signed-off-by: Fabian Wolter <git@fabian-wolter.de> * Update introduction.md (openhab#1239) * Update introduction.md Signed-off-by: Markus Storm markus.storm@gmx.net * Update introduction.md * Revise Java recommendations (openhab#1240) * Revise Java recommendations * Delete pine.md Do not recommend PINE, it's not supported any longer by openHABian. * Removed sidebar link in config Signed-off-by: Jerome Luckenbach <github@luckenba.ch> Co-authored-by: Jerome Luckenbach <github@luckenba.ch> * Update security.md (openhab#1241) Been using FreeDNS for many years (ever since all these companies got rid of their free tiers) and never an issue! * Fix DecimalType hex conversion example (openhab#1243) See: openhab#1526 Signed-off-by: Wouter Born <github@maindrain.net> * Fix typo (openhab#1244) Signed-off-by: Wouter Born <github@maindrain.net> * Update persistence.md (openhab#1246) Fixes link to quartz docs page. * Revision. (openhab#1187) (openhab#1237) * Revision. (openhab#1187) - Update of screenshots, removal of old screenshots - Chapters for better formatting - Removal of ZWave chapter (one example of adding things should be enough IMHO) - Adding items in simple mode and in "manual" mode Signed-off-by: Sascha Billian <sascha.billian@googlemail.com> * Use one line per sentence Signed-off-by: Sascha Billian <sascha.billian@googlemail.com> Co-authored-by: Jerome Luckenbach <github@luckenba.ch> * Add notes for configuring Synology Diskstation (openhab#1219) * Add notes for configuring Synology Diskstation I have a working set up for SSL enabled remote access on a Synology diskstation, taking advantage of the GUI as much as possible, to ensure automatic renewal of certs from Let's Encrypt, etc. It took me about 8 hours to suss it all out, but it could be achieved in about 30 mins if you knew exactly what to do... may not be widely useful, but since Synology is officially supported, I figured this might be a good addition. There's also a minor error in the 'allow' masks - these should be 192.168.0.0/24 to allow access to anything in the 192.168.0.xxx range. * Updated to use one line per sentence Updated to use one line per sentence - sorry for the delay! * Update security.md * Updated for one line per sentence Updated for one line per sentence Signed-off-by: Andrew Mills mills@prettymachine.co.nz * Bad subnet (openhab#1245) Nginx warns about low address bits of `192.168.0.1/24` because they are meaningless. The correct subnet mask should be `192.168.0.0/24` Signed-off-by: Olivier Béraud <olivierberaud@free.fr> * Fixed broken images. (openhab#1247) * Fixed broken images. Signed-off-by: Jerome Luckenbach <github@luckenba.ch> * Fix image path Signed-off-by: Jerome Luckenbach <github@luckenba.ch> * [documentation] clarification of representation property (openhab#1248) * [documentation] clarification of representation property Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch> * [documentation] typo Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch> * [documentation] adopt suggestions of reviewers Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch> * [documentation] commas Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch> * [documentation] typo Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch> * [documentation] addopted suggestions of @bobadair Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch> * [documentation] typo Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch> * [documentaion] example added back Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch> * [documentaion] simplified text Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch> * [documentation] typo Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch> * [documentation] adopted reviewer comment Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch> * Add Alexa mapping along side a channel mapping (openhab#1249) * Add Alexa mapping along side a channel mapping It took me a while to find this https://community.openhab.org/t/tagging-devices-for-alexa-support/98155/3 on the Forum and its not clearly documented in the openHAB Amazon Alexa Smart Home Skill or here in Item Metadata. I originally suggested this as an update to the openHAB Amazon Alexa Smart Home Skill documentaion, but it fits better here, then other integrations using metadata (e.g. HomeKit or Google Assistant) could refer to it as well. * Update items.md * Mention defaults for element type setpoint. (openhab#1250) Mention defaults for min, max and step value for element type setpoint. Signed-off-by: Thomas Weiler <toweosp@gmail.com> * Update index.md (openhab#1251) I thought 'workl' was probably intended to be 'work'. * Items - Bedroom_Light written as Light_Bedroom (openhab#1252) Fix small error which might mislead some readers. * Added example for time-weighted averages (openhab#1253) Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de> * Remove deprecated UIs, Eclipse Marketplace from sidebar Signed-off-by: Yannick Schaus <github@schaus.net> * Update branch name in README Signed-off-by: Yannick Schaus <github@schaus.net> Co-authored-by: Markus Storm <markus.storm@gmx.net> Co-authored-by: Nagy Attila Gábor <mrbig@sneaker.hu> Co-authored-by: Christoph Thiede <38782922+LinqLover@users.noreply.github.com> Co-authored-by: Richard Davies <rwdrich@gmail.com> Co-authored-by: jwaes <50528773+jwaes@users.noreply.github.com> Co-authored-by: bracklanna <16140600+bracklanna@users.noreply.github.com> Co-authored-by: Scott Rushworth <openhab@5iver.com> Co-authored-by: cpmeister <mistercpp2000@gmail.com> Co-authored-by: Ross Kennedy <rossko@culzean.clara.co.uk> Co-authored-by: Christoph Weitkamp <github@christophweitkamp.de> Co-authored-by: Skinah <32607303+Skinah@users.noreply.github.com> Co-authored-by: pali <pauli.anttila@gmail.com> Co-authored-by: ljsquare <laurens-jan@merkx-ewals.nl> Co-authored-by: PatrikG <40170469+PatrikG8@users.noreply.github.com> Co-authored-by: Elias H <E.Hackradt@web.de> Co-authored-by: Billy Stevens <contact@wasv.me> Co-authored-by: theiding <mark.theiding@gmail.com> Co-authored-by: jadcx <60408305+jadcx@users.noreply.github.com> Co-authored-by: Bjorn Helgaas <bjorn@helgaas.com> Co-authored-by: Jürgen Baginski <opus42@gmx.de> Co-authored-by: robnielsen <rob.nielsen@yahoo.com> Co-authored-by: GumbyMan82 <40233411+GumbyMan82@users.noreply.github.com> Co-authored-by: Christophe Fergeau <teuf@gnome.org> Co-authored-by: Paulo "JCranky" Siqueira <paulo.siqueira@gmail.com> Co-authored-by: Michael Rossner <Schrott.Micha@web.de> Co-authored-by: BugSmurF <52825547+bugsmurf@users.noreply.github.com> Co-authored-by: Jerome Luckenbach <github@luckenba.ch> Co-authored-by: josefscript <64727123+josefscript@users.noreply.github.com> Co-authored-by: Wouter Born <github@maindrain.net> Co-authored-by: Sami Salonen <ssalonen@gmail.com> Co-authored-by: Fabian Wolter <github@fabian-wolter.de> Co-authored-by: Stefan Zabka <zabkaste@informatik.hu-berlin.de> Co-authored-by: TRS-80 <25938297+TRSx80@users.noreply.github.com> Co-authored-by: sihui <10405486+sihui62@users.noreply.github.com> Co-authored-by: Andrew Mills <amil109@users.noreply.github.com> Co-authored-by: Olivier Béraud <olivbd@users.noreply.github.com> Co-authored-by: Andrew Fiddian-Green <software@whitebear.ch> Co-authored-by: LeeC77 <LeeC77@users.noreply.github.com> Co-authored-by: Thomas Weiler <18066810+toweosp@users.noreply.github.com> Co-authored-by: garretcook <garretcook@gmail.com> Co-authored-by: Michael Fielding <michael.fielding@gmail.com>
These changes prepare for custom ScriptEngineFactories and does not include any breaking changes. * Moved AbstractScriptEngineFactory out of internal so that it can be used by custom factories * Modified ScriptEngineModuleTypeProvider to include engines from custom factories * Cleaned up some logging Signed-off-by: Scott Rushworth <openhab@5iver.com> GitOrigin-RevId: 218bb79
These changes prepare for custom ScriptEngineFactories and does not
include any breaking changes.
used by custom factories
factories
Signed-off-by: Scott Rushworth openhab@5iver.com