Seems like GWT apps that use GIN will still require Java 8. I just tried latest master from today using Guava 20-SNAPSHOT, Gin 2.1.2, Guice 4.
When we compile our app using JDK 1.7 and -sourceLevel 1.8 for GWT compiler we get warnings for all java.util.function.* emulated classes that reference java.lang.FunctionalInterface, e.g. Resolving java.util.Objects Found type 'java.util.Objects' Resolving method requireNonNull Found type 'java.util.function.Supplier' [WARN] Ignoring unresolvable annotation type java.lang.FunctionalInterface Resolving java.util.Optional Found type 'java.util.Optional' Resolving method ifPresent Found type 'java.util.function.Consumer' [WARN] Ignoring unresolvable annotation type java.lang.FunctionalInterface Resolving method filter Thats not really nice for a potential final release of GWT. But the real issue is GIN as it fails with unsupported major.minor version 52.0: Caused by: java.lang.UnsupportedClassVersionError: xx/xx/xx/xx/SomeGinjector : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.lang.ClassLoader.defineClass(ClassLoader.java:643) at com.google.gwt.inject.rebind.GinBridgeClassLoader.findClass(GinBridgeClassLoader.java:160) at com.google.gwt.inject.rebind.GinBridgeClassLoader.loadClass(GinBridgeClassLoader.java:106) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:278) at com.google.gwt.inject.rebind.GinjectorGenerator.loadClass(GinjectorGenerator.java:223) at com.google.gwt.inject.rebind.GinjectorGenerator.getGinjectorType(GinjectorGenerator.java:104) at com.google.gwt.inject.rebind.GinjectorGenerator.generate(GinjectorGenerator.java:60) at com.google.gwt.core.ext.IncrementalGenerator.generateNonIncrementally(IncrementalGenerator.java:40) at com.google.gwt.dev.javac.StandardGeneratorContext.runGeneratorIncrementally(StandardGeneratorContext.java:745) at com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateWith.java:103) at com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.rebind(StandardRebindOracle.java:78) at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:262) at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:251) at com.google.gwt.dev.PrecompilationContextCreator$1.getAllPossibleRebindAnswers(PrecompilationContextCreator.java:86) Looks like GIN, executed with JDK 7, loads a class generated by JDT in Java8 mode. Not sure if that can be fixed in GIN. For now we will use master branch without the first Java 8 commits. So I guess if we want GWT 2.8 to be fully JDK 7 compatible we have to revert Java 8 commits and reintroduce -sourceLevel 1.7. However that would mean we would need to release GWT 2.9 with Java 8 only support in a couple of month at the time Guava 21 will be released (mid 2016, requires Java 8). So I am not sure if its worth it to buy people a couple of extra month of 1.7 support. Alternatively we could also make two releases 2.7.1 and 2.8 with 2.7.1 containing everything of 2.8 up until the first Java 8 commit. Then 2.7.1 will be Java 7 compatible and has lots of bug fixes while 2.8 is Java 8 only and contains only a couple more commits. -- J. -- 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/719ea100-4b35-4759-82fb-a530ea467727%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.