Hi Kevin,

is there anything I need to do? What are the next steps I should look for?

—-rony

Rony G. Flatscher (mobil/e)

> Am 12.05.2020 um 19:23 schrieb Rony G. Flatscher <[email protected]>:
> 
> Hi Kevin,
> 
> in the meantime I have tried to come up with a formulation for the 
> "Introduction to FXML"
> specification about the new compile processing instruction which is brief and 
> complete. While being
> there I fixed a typo in the document and added a missing language processing 
> instruction to an
> existing script example, hope that was o.k. as I have not filed an explicit 
> bug for it.
> 
> Also closed the PR 129 and 187, removed the WIP from PR 192, and supplied the 
> CSR draft as a comment.
> 
> If there is anything else I should do, please let me know.
> 
> Cheers,
> 
> ---rony
> 
> 
>> On 11.05.2020 14:12, Rony G. Flatscher wrote:
>> Hi Kevin,
>> 
>>> On 09.05.2020 17:16, Kevin Rushforth wrote:
>>> I'm finally getting back to this. I took a look at 
>>> https://github.com/openjdk/jfx/pull/192 and I
>>> like that as the direction for this enhancement.
>>> 
>>> The initial CSR you have is a good start.
>> Thank you!
>> 
>>> Next steps are:
>>> 
>>> 1. Update the "Introduction to FXML" specification (see my comment in the 
>>> PR)
>>> 2. Update PR 192 with the draft CSR as a comment, modifying it to include 
>>> the above additions to
>>> "Introduction to FXML"
>>> 3. Remove WIP from the title
>>> 
>>> You can then close the other two PRs (129 and 187).
>> will do (may take a little bit).
>> 
>> Cheers
>> 
>> ---rony
>> 
>> 
>>> On 4/28/2020 6:15 AM, Rony G. Flatscher wrote:
>>>> Hi Kevin,
>>>> 
>>>> what should be the next steps?
>>>> 
>>>> Should I remove "WIP" from the title in 
>>>> <https://github.com/openjdk/jfx/pull/192> and add the CSR
>>>> draft text of my last e-mail as a "CSR" comment with PR # 192, thereby 
>>>> requesting it to be added
>>>> to <https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8238080>?
>>>> 
>>>> Please advise.
>>>> 
>>>> TIA,
>>>> 
>>>> ---rony
>>>> 
>>>> P.S.: This is the RFE:
>>>> 
>>>>  * RFE (2020-01-24): 
>>>> <https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8238080>
>>>> 
>>>> These are the three versions (all with appropriate unit tests) that I came 
>>>> up with
>>>> chronologically to implement the RFE, would prefer the latest version (PR 
>>>> # 192):
>>>> 
>>>>  * Compile if Compilable implemented (2020-02-28): 
>>>> <https://github.com/openjdk/jfx/pull/129>
>>>>  * Compile if compile PI and Compilable is implemented (2020-04-11):
>>>>    <https://github.com/openjdk/jfx/pull/187>
>>>>  * Compile with fallback, if Compilable is implemented, compile PI for 
>>>> fine-grained control
>>>>    (2020-04-14): <https://github.com/openjdk/jfx/pull/192>
>>>> 
>>>> 
>>>> On 22.04.2020 20:01, Rony G. Flatscher wrote:
>>>>> Hi Kevin,
>>>>> 
>>>>> as I am not able to file a CSR with the issue you suggested to come up 
>>>>> with a draft, so here it goes:
>>>>> 
>>>>>    Summary
>>>>>    =======
>>>>>    Have javafx.fxml.FXMLLoader compile FXML scripts before evaluating 
>>>>> them, if the script engine
>>>>>    implements the javax.script.Compilable interface to speed up 
>>>>> execution. In case compilation
>>>>>    throws a javax.script.ScriptException fall back to evaluating the 
>>>>> uncompiled script. Allow
>>>>>    control of script compilation with a "compile" PI for FXML files.
>>>>> 
>>>>>    Problem
>>>>>    =======
>>>>>    javafx.fxml.FXMLLoader is able to execute scripts in Java script 
>>>>> languages
>>>>>    (javax.script.ScriptEngine implementations) referred to or embedded in 
>>>>> a 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 javax.script.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 repetitively invoked and evaluated.
>>>>> 
>>>>>    Solution 
>>>>>    ========
>>>>>    Before evaluating the script code test whether the 
>>>>> javax.script.ScriptEngine implements
>>>>>    javax.script.Compilable. If so, compile the script to a 
>>>>> javax.script.CompiledScript object first
>>>>>    and then use its eval() method to evaluate the script, otherwise 
>>>>> continue to use the
>>>>>    javax.script.ScriptEngine's eval() method instead. Should compilation 
>>>>> of a script yield
>>>>>    (unexpectedly) a javax.script.ScriptException then fall back to using 
>>>>> the
>>>>>    javax.script.ScriptEngine's eval() method. A new process instruction 
>>>>> "compile" allows control of
>>>>>    the compilation of scripts ("true" sets compilation on, "false" to set 
>>>>> compilation off) in FXML
>>>>>    files.
>>>>> 
>>>>>    Specification
>>>>>    =============
>>>>>    If a javax.script.ScriptEngine implements the javax.script.Compilable 
>>>>> interface, then use its
>>>>>    compile() method to compile the script to a 
>>>>> javax.script.CompiledScript object and use its
>>>>>    eval() method to run the script. In the case that the compilation 
>>>>> throws (unexpectedly) a
>>>>>    javax.script.ScriptException log a warning and fall back to using the
>>>>>    javax.script.ScriptEngine's eval() method instead.
>>>>>    To allow setting this feature off and on while processing the FXML 
>>>>> file a "compile" process
>>>>>    instruction ("<?compile false?>" or "<?compile true?>") gets defined 
>>>>> that allows to turn
>>>>>    compilation off and on throughout a FXML file.
>>>>> 
>>>>> Having never seen a real CSR I hope that this matches what is expected 
>>>>> and is helpful for
>>>>> assessment. If not please advise (got the name of these fields from [1]).
>>>>> 
>>>>> ---
>>>>> 
>>>>> Also added brief information about the respective test units (what they 
>>>>> test and yield) in the WIP  [2].
>>>>> 
>>>>> ---rony
>>>>> 
>>>>> [1] "CSR-FAQ": <https://wiki.openjdk.java.net/display/csr/CSR+FAQs>
>>>>> 
>>>>> [2] "WIP: Script compilable+compile PI+fallback: 8238080: FXMLLoader: if 
>>>>> script engines implement
>>>>> javax.script.Compilable compile scripts #192":  
>>>>> <https://github.com/openjdk/jfx/pull/192>
>>>>> 
>>>>> 
>>>>> On 20.04.2020 14:58, Rony G. Flatscher wrote:
>>>>>> There is a new WIP at <https://github.com/openjdk/jfx/pull/192>:
>>>>>> 
>>>>>>    This WIP adds the ability for a fallback in case compilation of 
>>>>>> scripts fails, in which case a
>>>>>>    warning gets issued about this fact and evaluation of the script will 
>>>>>> be done without
>>>>>>    compilation. Because of the fallback scripts get compiled with this 
>>>>>> version by default. It
>>>>>>    extends PR 187 #187.
>>>>>> 
>>>>>>    To further ease spotting scripts that cause a ScriptException a 
>>>>>> message in the form of
>>>>>>    "filename: caused ScriptException" gets added to the exception 
>>>>>> handling in either of the three
>>>>>>    locations: an error message, a stack trace or a wrap-up into a 
>>>>>> RuntimeException (having three
>>>>>>    different kinds of reporting ScriptExceptions may be questioned, 
>>>>>> however none of these tear down
>>>>>>    the FXML GUI).
>>>>>> 
>>>>>> This WIP comes with proper test units as well. As per Kevin's suggestion 
>>>>>> a warning gets logged
>>>>>> whenever a script cannot be compiled and the fallback gets used.
>>>>>> 
>>>>>> It is suggested to use this WIP as it includes the compilation by 
>>>>>> default with a safe fallback to
>>>>>> evaluate the uncompiled script, if compilation (unexpectedly) fails.
>>>>>> 
>>>>>> Again, any feedback, discussion welcome!
>>>>>> 
>>>>>> ---rony
>>>>>> 
>>>>>> P.S.: In the log history there is a commit message "Make message more 
>>>>>> pregnant.", it should have
>>>>>> read "Make messages more terse." instead|.||
>>>>>> |
>>>>>> 
>>>>>> 
>>>>>> On 17.04.2020 19:37, Rony G. Flatscher wrote:
>>>>>>> There is a new WIP at <https://github.com/openjdk/jfx/pull/187> which 
>>>>>>> adds a compile PI (process
>>>>>>> instruction) for turning on and off script compilation if the script 
>>>>>>> engine implements the
>>>>>>> Compilable interface.
>>>>>>> 
>>>>>>> By default compilation is off (no compilation), such that one needs to 
>>>>>>> add a compile PI
>>>>>>> ("<?compile?>") at the top to activate this feature. Supplying "true" 
>>>>>>> (default) or "false" as the PI
>>>>>>> data turns this feature on and off.
>>>>>>> 
>>>>>>> The WIP comes with adapted test units that test "compile on" for an 
>>>>>>> entire fxml file, "compile off",
>>>>>>> alternating using "compile on and off", and alternating using "compile 
>>>>>>> off and on". This will test
>>>>>>> all variants of applying the compile PI for all categories of scripts.
>>>>>>> 
>>>>>>> Any feedback appreciated!
>>>>>>> 
>>>>>>> ---rony
>>>>>>> 
>>>>>>> P.S.: FXML files that contain unknown PIs do not cause a runtime error 
>>>>>>> by FXMLLoader, they just get
>>>>>>> ignored. Therefore one could apply the compile PI to FXML files that 
>>>>>>> are used in older JavaFX runtimes.
>>>>>>> 
>>>>>>> P.P.S.: In the next days I will also add Kevin's idea in a separate 
>>>>>>> version that will have a
>>>>>>> fallback solution in case a compilation is (unexpectedly) not 
>>>>>>> successful, reverting to
>>>>>>> (interpretative) evaluation/execution of the script. In that version it 
>>>>>>> is planned to have
>>>>>>> compilation on by default as in the case of a compilation failure there 
>>>>>>> will be a safe backup solution.
>>>>>>> 
>>>>>>> 
>>>>>>> On 14.04.2020 19:52, Kevin Rushforth wrote:
>>>>>>>> Yes, I agree that enough time has gone by. Go ahead with your 
>>>>>>>> proposal. I would wait a bit to
>>>>>>>> create the CSR until the review is far enough along to know which 
>>>>>>>> direction we intend to go.
>>>>>>>> 
>>>>>>>> Unless there is a real concern about possible regressions if scripts 
>>>>>>>> are compiled by default, I
>>>>>>>> think "enabled by default" is the way to go. Your argument that such 
>>>>>>>> script engines are broken
>>>>>>>> seems reasonable, since this only applies to script engines that 
>>>>>>>> implement javax.script.Compilable
>>>>>>>> in the first place. We still might want to add way to turn compilation 
>>>>>>>> off for individual scripts.
>>>>>>>> One other thing to consider is that if compilation fails, it might 
>>>>>>>> make sense to log a warning and
>>>>>>>> fall back to the existing interpreted mode.
>>>>>>>> 
>>>>>>>> Does anyone else have any concerns with this?
>>>>>>>> 
>>>>>>>> -- Kevin
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On 4/14/2020 9:48 AM, Rony G. Flatscher wrote:
>>>>>>>>> Hi there,
>>>>>>>>> 
>>>>>>>>> as there was probably enough time that has passed by I would intend 
>>>>>>>>> to create a CSR in the next days
>>>>>>>>> with the PR as per Kevin's suggestion.
>>>>>>>>> 
>>>>>>>>> (For the case that this feature should not be active by default, the 
>>>>>>>>> CSR will suggest to define a
>>>>>>>>> new "compile" PI in the form <?compile [true|false] ?> (default, if 
>>>>>>>>> no PI data given: true), which
>>>>>>>>> is independent of the existence of a language PI (this way it becomes 
>>>>>>>>> also possible to allow
>>>>>>>>> compilation of external scripts denoted with the script-element, 
>>>>>>>>> which do not need a page language
>>>>>>>>> to be set as the file's extension allows the appropriate script 
>>>>>>>>> engine to be loaded and used for
>>>>>>>>> execution). A compile-PI would allow for turning compilation of 
>>>>>>>>> scripts on by just adding the PI
>>>>>>>>> <?compile?> or <?compile true?>  to FXML files (and <?compile false?> 
>>>>>>>>> to turn off), which seems to
>>>>>>>>> be simple and self-documentary. In general employing such compile PIs 
>>>>>>>>> allows for setting compilation
>>>>>>>>> of scripts on and off throughout an FXML file.)
>>>>>>>>> 
>>>>>>>>> ---rony
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On 04.04.2020 18:03, Rony G. Flatscher wrote:
>>>>>>>>> 
>>>>>>>>>> Hi Kevin,
>>>>>>>>>> 
>>>>>>>>>> On 03.04.2020 01:21, Kevin Rushforth wrote:
>>>>>>>>>>> I see that you updated the PR and sent it for review.
>>>>>>>>>>> 
>>>>>>>>>>> Before we formally review it in the PR, let's finish the discussion 
>>>>>>>>>>> as to whether this is a useful
>>>>>>>>>>> feature, and if so, what form this feature should take.
>>>>>>>>>>> 
>>>>>>>>>>>  From my point of view, this does seem like a useful feature. Would 
>>>>>>>>>>> other users of FXML benefit
>>>>>>>>>>> from it?
>>>>>>>>>> Script code should be executed faster after compilation, so any FXML 
>>>>>>>>>> page that hosts script code
>>>>>>>>>> may
>>>>>>>>>> benefit.
>>>>>>>>>> 
>>>>>>>>>> The benefits depend on the type of script (and maybe its size and 
>>>>>>>>>> its complexity) and also on the
>>>>>>>>>> types of event handlers the scripts serve, e.g. move or drag event 
>>>>>>>>>> handlers may benefit
>>>>>>>>>> significantly. This is because repeated invocation of compiled 
>>>>>>>>>> script event handlers do not cause
>>>>>>>>>> the reparsing of that script's source and interpreting it on each 
>>>>>>>>>> invocation, which may be
>>>>>>>>>> expensive
>>>>>>>>>> depending on the script engine, but rather allows the immediate 
>>>>>>>>>> evaluation/execution of the
>>>>>>>>>> compiled
>>>>>>>>>> script by the script engine.
>>>>>>>>>> 
>>>>>>>>>>> I'm not certain whether we want it to be implicit, compiling the 
>>>>>>>>>>> script if the script engine in
>>>>>>>>>>> question implements Compilable, or via a new keyword or tag. What 
>>>>>>>>>>> are the pros / cons?
>>>>>>>>>> In principle there are three possibilities:
>>>>>>>>>> 
>>>>>>>>>>      1) If a script engine implements javax.script.Compilable, 
>>>>>>>>>> compile the script and execute the
>>>>>>>>>>      compiled version. In the case of event handlers compile and 
>>>>>>>>>> buffer the compiled script and
>>>>>>>>>>      execute the compiled script each time its registered event 
>>>>>>>>>> fires.
>>>>>>>>>> 
>>>>>>>>>>        o Pro: immediately benefits all existing FXML pages that host 
>>>>>>>>>> scripts
>>>>>>>>>>        o Con: it is theoretically possible (albeit quite unlikely) 
>>>>>>>>>> that there are scripts that fail
>>>>>>>>>>          compiling but have been employed successfully in 
>>>>>>>>>> interpreted mode
>>>>>>>>>> 
>>>>>>>>>>      2) Introduce some form of an optional attribute (e.g. 
>>>>>>>>>> "compile={true|false}") to the FXML
>>>>>>>>>>      language PI that switches on compilation of scripts hosted in 
>>>>>>>>>> FXML definitions if the script
>>>>>>>>>>      engine implements the javax.script.Compilable interface. If 
>>>>>>>>>> missing it would default to
>>>>>>>>>> "false".
>>>>>>>>>>      (Alternatively, add a "compile" PI, that if present causes the 
>>>>>>>>>> compilation of scripts, if the
>>>>>>>>>>      script engine supports it. It would be an error if the 
>>>>>>>>>> "compile" PI was present, but the
>>>>>>>>>>      "language" PI was not.)
>>>>>>>>>> 
>>>>>>>>>>        o Pro: compilation of FXML hosted scripts is done only, if 
>>>>>>>>>> the FXML definition of the
>>>>>>>>>> language
>>>>>>>>>>          PI gets changed
>>>>>>>>>>        o Con: benefit not made available automatically to existing 
>>>>>>>>>> FXML pages that host scripts
>>>>>>>>>> 
>>>>>>>>>>      3) Another possibility would be to define a boolean 
>>>>>>>>>> attribute/property "compile" for script
>>>>>>>>>> and
>>>>>>>>>>      node elements and only compile the scripts, if the property is 
>>>>>>>>>> set to true
>>>>>>>>>> 
>>>>>>>>>>        o Pro: compilation of FXML hosted scripts is done only, if 
>>>>>>>>>> the FXML definition gets changed
>>>>>>>>>>          accordingly
>>>>>>>>>>        o Con: potential benefit not made available automatically to 
>>>>>>>>>> existing FXML pages that
>>>>>>>>>> host scripts
>>>>>>>>>> 
>>>>>>>>>> 2 and 3 could be combined, where 2 would define the default 
>>>>>>>>>> compilation behavior that then could be
>>>>>>>>>> overruled individually by 3.
>>>>>>>>>> 
>>>>>>>>>> The question would be whether 2 or/and 3 are really necessary as it 
>>>>>>>>>> can be expected that
>>>>>>>>>> compilation
>>>>>>>>>> of scripts by the script engines would find the same errors as while 
>>>>>>>>>> interpreting the very same
>>>>>>>>>> scripts (if not, the script engine is badly broken and it could be 
>>>>>>>>>> argued that then the
>>>>>>>>>> interpretation part of the script engine might be expected to be 
>>>>>>>>>> broken as well which would be
>>>>>>>>>> quite
>>>>>>>>>> dangerous from an integrity POV; the same consideration applies as 
>>>>>>>>>> well if the execution of the
>>>>>>>>>> compiled script would behave differently to interpreting the very 
>>>>>>>>>> same script by the same script
>>>>>>>>>> engine).
>>>>>>>>>> 
>>>>>>>>>> The current WIP implements 1 above and includes an appropriate test 
>>>>>>>>>> unit.
>>>>>>>>>> 
>>>>>>>>>>> What do others think?
>>>>>>>>>>> In either case, we would need to make sure that this doesn't 
>>>>>>>>>>> present any security concerns in the
>>>>>>>>>>> presence of a security manager. As long as a user-provided class is 
>>>>>>>>>>> on the stack, it will be fine,
>>>>>>>>>>> but we would need to ensure that.
>>>>>>>>>> The compilation of scripts needs to be done by the Java script 
>>>>>>>>>> engines (implementing both,
>>>>>>>>>> javax.script.Engine and javax.script.Compilable) as well as 
>>>>>>>>>> controlling the execution of compiled
>>>>>>>>>> scripts ([javax.script.CompiledScript]
>>>>>>>>>> (https://docs.oracle.com/en/java/javase/14/docs/api/java.scripting/javax/script/CompiledScript.html)).
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> ---rony
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>> On 4/2/2020 10:41 AM, Rony G. Flatscher wrote:
>>>>>>>>>>>> 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
> 

Reply via email to