Open aclarkxyz opened 5 years ago
Ignoring the expected coding upgrades required to bring Java 8 inline with 11, I think this issue should be relatively simple to resolve. That is, we download / install the relevant Java FX jar(s) into our lib
folder, and then ant optionally references said jar(s) at compile-time, depending on whether the compiler expects Java 8 or Java 11 code.
I will go ahead and tackle this issue. Here are the scenarios to be addressed:
Can I assume here that we are completely moving away from compilation with Java 8?
The goal is to be able to compile & run everything with either JDK 8 or JDK 11, which are the two versions that are likely to be encountered in the wild. It is currently impossible with JDK 11, so we need to fix that. It is acceptable to make users of the template editor to install an extra thing, because there's no way around that.
For JDK 11, it's clear we will need to upgrade our Eclipse IDE; see this stackoverflow article.
As for optional builds for either Java 8 or 11, my plan is simple:
build.properties
file, which for now will be local to the developer environment and will contain a property named java.version
or similar.javac
task.target
attribute if
, depends
, and condition
to switch across the build-targets, depending on the value of the java.version
property.All of this is straightforward. I will confirm behavior on two separate developer environments: (i) my current developer environment, which uses Eclipse Oxygen 4.7.3a
, and (ii) an alternative developer environment that uses the Eclipse IDE compliant with Java 11. All changes should be local to build.xml
, with the exception of the proposed build.properties
file.
Seems like when you install JDK 11, it's not possible to compile the template editor, because the JavaFX library has been detached.
TODO: update the project so that the target runtime remains Java 8, but it can be compiled and run under Eclipse regardless of whether JDK8 or JDK11 is being used.