As of somewhere in the time leading up to the GWT 2.9.0 release, it is no longer possible to build GWT with Java7, and similarly the decision was made to no longer officially support running on Java7 (jsinterop-annotations use of "TYPE_USE", newer jetty version too I believe).
There is still some defunct wiring in the build to handle Java 7 vs Java 8 though, mostly with regards to running tests - since we first javac our java classes, and then run gwtc on them, we need to make sure that the java version being use can correctly compile those tests. The issue https://github.com/gwtproject/gwt/issues/9683 is tracking some of the existing work on this: the main remaining piece is to decide how to handle javadoc. GWT has its own custom doclet to handle a few custom tags, "example", "gwt.include", and "tip". None of this compiles after Java 8, since Java 9 came with a new, incompatible API to build custom tags, so either we drop Java 8 support for building the toolkit, require _only_ Java 8 to build, support two parallel copies of the custom doc wiring, or drop the doc wiring entirely and remove these custom tags throughout the codebase. Since the release of GWT 2.9 and my own work on the above ticket, I've been picking back up some Java 9/10/11 JRE emulation work that I had previously paused, and I'm running into the issue described at the top - if you write a test that calls Map.of() and run it on Java8 as a GWTTestCase, you'll get a compile error. Two basic ways I can easily see to fix this: we can make two copies of each test, one as an empty "real" java type and one as supersource, or we can guard those tests behind java version args in the build glue like we did for Java7 vs Java8. The first option is clunky, and while I see this was done for `com.google.gwt.dev.jjs.test.Java8Test`, it clearly wasn't done for JRE emulation tests, and I assume there was a reason for that. The second option requires changing our CI to build+test on some new JRE... ...and given the constraints of the Java LTS system, and the java 8/9 divide for custom doclet stuff, it seems like the clearest win is to move all the way to Java11, though continue to target java 8 releases, and test on all JREs up until current. So that's my pitch. For completeness, some other options that seem workable, keeping in mind that at present there are about 3 important JRE versions to support well: Java 8, Java 11, and the current stable release. * Require Java8 for javadoc, supersource tests * Allow any JRE 8+, use ant filters for tests for each version, maintain two javadoc builds * Allow any JRE 8+, use ant filters, only actually produce javadoc on java9+ builds Other technical ways to deal with this, or have a missed an easier solution to one of these problems? -- You received this message because you are subscribed to the Google Groups "GWT Contributors" group. To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit-contributors+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/0aa0701b-4287-4e4c-bbef-23952898c64an%40googlegroups.com.