Review: Switch to Jigsaw-aware boot JDK for compiling FX 9

David Hill David.Hill at Oracle.com
Wed Nov 2 16:55:49 UTC 2016


JBS: https://bugs.openjdk.java.net/browse/JDK-8161704
Webrev: http://cr.openjdk.java.net/~ddhill/8161704/

Kevin, Chien, Vadim,

There is a lot of change in this webrev, but there are a lot of common patterns (or sets of changes)

./apps - the majority of the change is altering the NB project files to use rt/build/compile.args and run.args via a relative path. This is a replacement action for using jfxrt.jar (and something I will address in a follow on email)

Also, a new pattern for apps that need --add-exports lines to run properly (like Robot), we have added a file:
|| *apps/tests/HelloTest/addExports
*that will used as an @argfile with the run command. This allows greater visibility into the added command than hiding them in the project.properties files.

Under ./modules/ there is two classes of renames
/module-info/module-info.java --> / *java/module-info.java
* /test/java/com --> / *shims/java/com
*Module-info.java is needed by javac, and so moving into the "main" set makes sense. It does mean however that IDEs may get upset because this is JDK9 syntax.

The "shim" classes were mixed in with the general test classes. No more. Now they are in the "shim" set to allow us to build them as part of a rebuild of the main module classes to create a shim-ed module for testing. It also means we don't have to play include/exclude games when building.

Under packager, there is a different class of move/renames, creating  " *src/antplugin". *These sources are used to build a separate jar for use with ant. We needed to move these out of the main set because the would cause javac failure - but gained an additional benefit of a clear separation of sources.

What is left is changes related to:
    ripping out build/sdk
    adding in a modular build
    creating rt/build/*.args argfiles to ease development.

A big notes: we had to change the build target to 1.9
      javac.source=1.9
javac.target=1.9
because in many of the places javac would baulk at using the JDK9 commands without it. It is expected that the current IDEs may not like that.

-- 
David Hill<David.Hill at Oracle.com>
Java Embedded Development

"A man's feet should be planted in his country, but his eyes should survey the world."
-- George Santayana (1863 - 1952)



More information about the openjfx-dev mailing list