FXML version number

Daniel Zwolenski zonski at gmail.com
Wed Jun 12 18:57:08 PDT 2013


I guess there's the FXML namespace and directives to the Loader as one consideration, which I think is what you're focusing on here. 

The other issue though is changes to the classes that the FXML references. For example when Builders go, suddenly a whole lot of FXML files will suddenly become invalid.

Are there any plans for version management at this level, and if not could/should there be?



On 13/06/2013, at 12:12 AM, Milan Kubec <milan.kubec at oracle.com> wrote:

> Hello,
> evolution of FXML is meant to be backward compatible. Any change in fx:
> namespace (no plans yet) will increase fxml version, but FXMLLoader of
> version 2 will load fxml of version 1 and 2, of course. On the other
> hand FXMLLoader of version 1 (e.g. JavaFX 2.2.21) won't be able to load
> new feature of version 2 (e.g. JavaFX 9.0). FXML version of 2 will only
> be required if given fxml file would use new feature of fx: namespace.
> 
> Versioning is mainly meant for authoring tools like SceneBuilder or
> NetBeans IDE.
> 
>  Milan
> 
> 
> Dne 8.6.2013 0:43, Daniel Zwolenski napsal(a):
>> I think marking the FXML version is a good idea, but not sure what the
>> implications of an incompatibility are though if it is in the
>> backwards direction? 
>> 
>> There definitely will be version compatibility issues in FXML, but any
>> backwards compatibility issues will break running apps that are web
>> deployed when the JRE auto-updates on users. If the loader barfs when
>> it hits an incompatibility issue it just means those failures will be
>> more in your face. 
>> 
>> If a running, web-deployed app has FXML that is an older version but
>> just happens not to be using the broken bits then the loader failing
>> at this point is highly undesirable. 
>> 
>> 
>> On Fri, Jun 7, 2013 at 6:49 PM, Milan Kubec <milan.kubec at oracle.com
>> <mailto:milan.kubec at oracle.com>> wrote:
>> 
>>    Hello,
>>    I have implemented simple versioning for FXML documents in
>>    FXMLLoader, but without support in tools it won't be very useful.
>>    I have agreed with NetBeans and Scene Builder folks that they will
>>    include support for versioning too. Support means that they will
>>    produce document with two XML namespaces - one defines version of
>>    fx: prefixed elements and attributes (xmlns:fx; it's already
>>    there, just the version is appended) and the other of actual
>>    JavaFX API used to produce document (xmlns; default, no prefix).
>>    The first will be checked, because wrong version can cause
>>    failure. The latter is only informational, no strict checking of
>>    version is possible, but tools can suggest to upgrade runtime,
>>    translate document etc.
>> 
>>    JavaFX API version is stored in System Properties as
>>    "javafx.version". The open question is still where and how to
>>    store fxml version in code. I think that we could have also
>>    property for this purpose, e.g. "fxml.version" in System
>>    Properties. So far it's part of FXMLLoader API, which is probably
>>    not very fortunate. What do you think?
>> 
>>    Issue details: https://javafx-jira.kenai.com/browse/RT-28599
>> 
>>     Milan
>> 
>> 
> 


More information about the openjfx-dev mailing list