HEADS UP: Switched to 1.8 source/target in build (in graphics repository).

steve.x.northover at oracle.com steve.x.northover at oracle.com
Mon May 13 08:04:50 PDT 2013


Hi Tom,

The move to JDK8 for JavaFX has made it hard of the open source 
community to port JavaFX to platforms where JDK8 does not exist. 
Further, tools that do not expect JDK8 syntax can no longer parse JavaFX 
source.

There are two sources of incompatibility:
- new JDK8 syntax (lambdas and defenders)
- new JDK8 API (date and time)

JavaFX has been changed to use JDK8 lambdas and defender methods. The 
patch in this JIRA (https://javafx-jira.kenai.com/browse/RT-30339) is 
intended to show how this can be temporarily worked around.  Note that 
it may soon be impossible to do this because there is no JDK7 syntax for 
defenders.

JavaFX has been changed to use JDK8 API.  Porters and tool vendors have 
the option of either implementing the API or deleting it temporarily 
from JavaFX.  For some tool vendors, it may be possible to put JDK7 on 
the class path before JDK8 so JDK7 versions of the class library are 
used for the base classes, but new JDK8 API can be seen.  This will 
allow classes to compile.  At runtime, JDK8 should be used.

There is no long term commitment to maintain compatibility with JDK7.

In the case of Eclipse, I have built the JDK8 Beta JDT plugins and am 
self hosting with them.  I am in the process of evaluating whether they 
will be sufficient.  It is also possible to run Eclipse using the patch 
and put both JDK7 and JDK8 on the build path (JDK7 first).  This will 
allow you to see JDK7 classes first to avoid changes to the base 
libraries.  At runtime, you should run against JDK8.  Neither of these 
solutions is great so we will have to wait and see.

Steve

On 07/05/2013 11:57 AM, Richard Bair wrote:
>> People using Eclipse as their IDE will not have fun with that I guess because their IDE will not compile the code anymore, so one can't use Eclipse anymore to provide patches - nothing you really care I guess.
> Steve, Felipe, or Jonathan would have to comment on what this does to them I guess -- they all use Eclipse for development.
>
>> I don't argue that you should not do this because Eclipse does not yet support it (which is a shame for Eclipse) but you are excluding other VMs who don't support those concepts - most notable invoke dynamic - this makes a community port of JavaFX to iOS fairly impossible.
> I think it would be fairly easy to just filter out those classes and replace the ObservableList with a version that doesn't have the defender methods. We had to do such things to make JavaFX mobile work back in the day. It is a short term problem because VMs and IDEs are going to move forward.
>
> Richard



More information about the openjfx-dev mailing list