HEADS-UP: building JavaFX 9-dev with jdk-9+148 and later

Kevin Rushforth kevin.rushforth at oracle.com
Mon Dec 5 19:41:29 UTC 2016

To: OpenJFX developers who build FX 9-dev

The latest batch of jigsaw changes [1] were pushed into jdk9/dev as 
JDK-8169069 [2] last Thursday, and will be integrated into jdk-9+148 
later this week. In order to build FX with this version of the JDK we 
need to make a change to our module-info.java files to conform to the 
new syntax for "requires transitive" and for listing multiple service 
providers. This work is tracked by JDK-8170485 [3]. These changes are 
not backward compatible, so they will prevent FX 9-dev from compiling on 
earlier jdk-9 builds. As such we will need to bump the minimum version 
to 148 at the same time we make these changes.

An additional complication is that the latest jigsaw changes also 
tighten the encapsulation rules such that setAccessible no longer breaks 
encapsulation without explicit permission [4]. This change affects 
gradle/groovy such that additional java command-line options are needed 
in order for gradle to run. The requirement is to set the 
"_JAVA_OPTIONS" environment variable to include the list of 
"--add-opens" arguments as specified in JDK-8170485. I will also add a 
"README-java-options" file with the needed list.

I will send out the formal review for JDK-8170485 later today or 
tomorrow, but if you are interested in seeing the preliminary webrev, 
the URL is listed in a comment in the JBS issue.

If there are no problems, I plan to push the fix for JDK-8170485 into FX 
9-dev on Tuesday, Dec 13. At that time you will need to upgrade your 
boot JDK to jdk-9+148 and set the appropriate _JAVA_OPTIONS as indicated 
in "README-java-options".

-- Kevin

[2] https://bugs.openjdk.java.net/browse/JDK-8169069
[3] https://bugs.openjdk.java.net/browse/JDK-8170485
[4] See #AwkwardStrongEncapsulation in [1]

More information about the openjfx-dev mailing list