dmusican / Elegit

A GUI client for people who want to learn Git.
MIT License
30 stars 7 forks source link

Compiling needs to be fixed under Java versions 10 and above #637

Open dmusican opened 6 years ago

dmusican commented 6 years ago

The class import com.sun.javafx.scene.control.skin.TextFieldSkin, which we use, was moved to import javafx.scene.control.skin.TextFieldSkin for Java 9. (It's questionable as to whether we should have been using it in the first place; there are lots of "beware" warnings regarding using this package.) As of Java 9, it's fair game, but since it moved, the imports are different. Travis on OSX is now running Java 10 by default, and so our build breaks. I dealt with it by hardcoding .travis.yml to use an older build system on Travis for OSX, but that's not sustainable. Update Elegit so that we can reasonably build on Java 8 or above.

This is somewhat of a pain to do, since Java doesn't cleanly natively support conditional compiling. Inheritance is determined at compile-time, so any sort of OO design pattern won't help. I think that our choices are either to stop supporting Java 8, to get that class out of there, or to use conditional compiling via Maven (it has a "munge" plugin). I tried it briefly; the frustrating catch is that it puts conditional code in Java comments, and so with the imports gone, IntelliJ complains. Figure out what our options are.

dmusican commented 5 years ago

Travis is now at Java 11 by default, and won't even build Java 8 properly without acrobatics. This is now critically important to fix in order to keep our tests running.