[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-openjfx-dev
Subject:    A WIP for JDK-8238080 for review/discussion (Re: "Internal review ID 9063426: "FXMLLoader: if script
From:       "Rony G. Flatscher" <Rony.Flatscher () wu ! ac ! at>
Date:       2020-02-28 18:22:24
Message-ID: bd3eb6ef-154f-811d-936a-37543a2a244c () wu ! ac ! at
[Download RAW message or body]

Here is a WIP [1] implementation of [2]. The WIP is based on [3], which is currently \
in review, and has an appropriate test unit going with it as well, please review.

There should be no compatibility issue with this implementation.

Discussion: another solution could be to not compile by default. Rather compile, if \
some new information is present with the FXML file which cannot possibly be present \
in existing FXML files. In this scenario one possible and probably simple solution \
would be to only compile scripts if the language process instruction (e.g. <?language \
rexx?>) contains an appropriate attribute with a value indicating that compilation \
should be carried out (e.g.: compile="true"). This way only FXML with PIs having this \
attribute set to true would be affected. If desired I could try to come up with a \
respective solution as well.

---rony

[1] "Implementation and test unit": <https://github.com/openjdk/jfx/pull/129>

[2] "JDK-8238080 : FXMLLoader: if script engines implement javax.script.Compilable \
compile scripts": <https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8238080>

[3] "8234959: FXMLLoader does not populate ENGINE_SCOPE Bindings with FILENAME and \
ARGV": <https://github.com/openjdk/jfx/pull/122/commits>


On 24.01.2020 16:26, Kevin Rushforth wrote:

> Thank you for filing this enhancement request. As an enhancement it should be \
> discussed on this list before proceeding with a pull request (although a "WIP" or \
> Draft PR can be used to illustrate the concept).
> 
> For my part, this seems like a reasonable enhancement, as long as there are no \
> compatibility issues, but it would be good to hear from application developers who \
> heavily use FXML. 
> -- Kevin
> 
> 
> On 1/24/2020 7:21 AM, Rony G. Flatscher wrote:
> > Just filed a RFE with the following information:
> > 
> > * Component:
> > o JavaFX
> > 
> > * Subcomponent:
> > o fxml: JavaFX FXML
> > 
> > * Synopsis:
> > o "FXMLLoader: if script engines implement javax.script.Compilabel compile \
> > scripts" 
> > * Descriptions:
> > o "FXMLLoader is able to execute scripts in Java script languages \
> > (javax.script.ScriptEngine implementations) if such a Java script language gets \
> > defined as the controller language in the FXML file.
> > 
> > If a script engine implements the javax.script.Compilable interface, then such \
> > scripts could
> > be compiled and the resulting javax.script.CompiledScript could be executed \
> > instead using its eval() methods.
> > 
> > Evaluating the CompiledScript objects may help speed up the execution of script
> > invocations,
> > especially for scripts defined for event attributes in FXML elements (e.g. like
> > onMouseMove)
> > which may be repetitevly invoked and evaluated."
> > 
> > * System /OS/Java Runtime Information:
> > o "All systems."
> > 
> > Received the internal review ID: "9063426"
> > 
> > ---rony 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic