I am using OpenJDK 11 for Vaadin 8.
Have anyone used a later version of OpenJDK for Vaadin 8 successfully? If yes, which version of OpenJDK?
I want to know if I can upgrade OpenJDK to a later version for Vaadin 8.
I am using OpenJDK 11 for Vaadin 8.
Have anyone used a later version of OpenJDK for Vaadin 8 successfully? If yes, which version of OpenJDK?
I want to know if I can upgrade OpenJDK to a later version for Vaadin 8.
Yes, I would try deployment of a Vaadin 8 app to either Java 11 or Java 17 as both are LTS. Java 17 should generally prove to be as compatible as Java 11.
But test thoroughly.
The Release Notes for the current version of Vaadin 8 states:
The server-side Vaadin Framework 8 is compatible with Java 8 and 11. Note, that the client-side Java code, compiled using GWT to be run as JS on the browser side, only supports language features up to Java 9 and a subset of JDK libraries. Vaadin Framework 8 is developed and tested with Oracle JDK, but other compliant Java distributions should work as well. More about Java support in FAQ.
…
Vaadin Framework 8 requires Java Servlet API 3.0 but also supports later versions
So, Java 11 is officially supported for Vaadin 8.
If you can deploy Vaadin 8 on Java 11 (LTS), then I would expect you could also deploy to Java 17 (LTS) and Java 18 (current).
The only major breaking change in modern Java that comes to my mind is the Java Platform Module System that arrived with Java 9. But if Vaadin 8 officially supports Java 11, then the JPMS must not be a blocking problem.
One other breaking change is that the parts of Java SE that were related to Java EE were removed in Java 11. Some of those parts have replacements to be found in libraries that you can add to your app. Some parts have been abandoned due to a lack of interest. See JEP 320: Remove the Java EE and CORBA Modules.
The changes after Java 11 have not involved any major breaking issues that I can recall. Most any Java apps that run on Java 11 can run on Java 17/18.
Of course you should:
While not an urgent matter, I would suggest you make plans to transition your app from Vaadin 8 to the latest version. Vaadin Ltd makes the same recommendation.
Free-of-cost support for Vaadin 8 is ending. See the company blog post. Paid support for Vaadin 8 from Vaadin Ltd will continue to be available, but the company nevertheless recommends migrating to current Vaadin Flow (v23 now) if practical.
Simpler apps may be easy enough to rewrite from scratch in Vaadin Flow, provided you have learned the new features such as routes, data-binding, and differently-designed widgets & layout managers. The basic concepts are the same between Vaadin 8 and Vaadin Flow, but many details have changed.
For assistance, Vaadin Ltd encourages use of their Discord server and Stack Overflow. (Their own support forums have been closed, now read-only.)
In addition, Vaadin Ltd sells products and services to assist in your migration from Vaadin 8 to Vaadin Flow.
While code migrations are never fun nor easy, there is one bright thought to consider: This is likely to be the last major architectural change to Vaadin for many years. Versions 6, 7, and 8 all involved major changes. But now that HTML5, CSS3, modern JavaScript/Typescript, and standardized Web Components, are all technologies that have matured into a rich stable platform for modern web apps, and now that Internet Explorer is finally dead, I expect Vaadin Flow to be evolving more gradually with incremental improvements rather than the past earth-shaking shifts.
Another issue is the transfer of Java EE technologies from Oracle Corp to the Eclipse Foundation. As part of that transition, the package naming has changed from javax.*
to jakarta.*
. This is a breaking change.
So some of the Servlet container products such as Apache Tomcat and Eclipse Jetty are maintaining two versions of products, developed in tandem. These dual versions sport the same features and same performance, but different package naming.
Vaadin has not yet been modified to support the new package naming. So be sure to choose a Servlet container version aimed at the old package naming.
I would guess that only Vaadin Flow will make the package naming change, not Vaadin 6, 7, and 8. This may eventually become yet another reason to consider migrating from Vaadin 8 to Vaadin Flow.