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.

Reply via email to