Java 11 support
As Java 8-10 will be obsolete soon, hawkBit has to support Java 11
Preconditions
- [x] Migration to Vaadin 8 (https://github.com/eclipse/hawkbit/pull/980)
- [ ] Required EclipseLink upgrade will brake SQLServer support (https://github.com/eclipse/hawkbit/issues/1045, #964)
- [ ] Release 0.3.0 (on Java 8) (https://github.com/eclipse/hawkbit/issues/784)
ToDo
- [x] JDK11 build on source level 8 (https://github.com/eclipse/hawkbit/pull/1037)
- [x] Migrate hawkBit (https://github.com/eclipse/hawkbit/pull/1038)
- [x] Migrate hawkBit Extensions (no action required)
- [x] Migrate hawkBit Examples (no action required)
- [ ] Upgrade EclipseLink to 2.7.7+
- [ ] Bump Java source level to 11
- [ ] Update Dockerfiles
- [ ] CircleCI build on JDK 11
- [ ] Update Documentation
Attempting to compile master at eae34e65ccf7e79ddbab65b77f04ddecee1ed4db using the compiler provided by the openjdk-11-jdk Debian 10 package fails with
[INFO] Compiling module org.eclipse.hawkbit.ui.AppWidgetSet
[INFO] [ERROR] Hint: Check that your module inherits 'com.google.gwt.core.Core' either directly or indirectly (most often by inheriting module 'com.google.gwt.user.User')
On closer inspection this seems to be caused by GWT.
Maybe the Java 8 source code can be compiled using OpenJDK 11 after updating GWT. This would be a first step towards moving to Java 11 entirely.
Exactly! I already prepared some stuff to achieve exactly what you're proposing (cf. #674). However back in the days (as you mentioned) Vaadin 7 was always the show-stopper. Since a couple of days master is on Vaadin 8, we are one step further: Now WidgetSet could be complied based on JDK 11 (with source level to 1.8). However it seems that the XML bind dependency/module is missing for the tests:
[ERROR] javax/xml/bind/annotation/XmlElement
[ERROR] org.apache.maven.surefire.booter.SurefireBooterForkException: There was an error in the forked process
[ERROR] javax/xml/bind/annotation/XmlElement
[ERROR] at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:656)