A WIP for JDK-8238080 for review/discussion (Re: "Internal review ID 9063426: "FXMLLoader: if script engines implement javax.script.Compilabel compile scripts"

Rony G. Flatscher Rony.Flatscher at wu.ac.at
Thu Apr 2 17:41:16 UTC 2020


After merging master, applying some fixes and changing the title to reflect the change from WIP to a
pull request I would kindly request a review of this pull request!

Here the URL: <https://github.com/openjdk/jfx/pull/129>, title changed to: "8238080: FXMLLoader: if
script engines implement javax.script.Compilable compile scripts".

---rony


On 28.02.2020 19:22, Rony G. Flatscher wrote:
> 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 


More information about the openjfx-dev mailing list