Vaadin 23, releasing in March 2022, will require Java 11. To give users additional time to upgrade from Java 8 to a newer version, we're extending the maintenance period of Vaadin 22 until March 2023.
Time flies, and it’s already been 8 years since Java 8 was released. It has also been 4 years since Java 11, which is the following Java version with long-term support from Oracle. Finally, there's the latest LTS, Java 17, which was released a couple of months ago in September 2021.
Why use a newer version of Java?
There are many reasons to use a newer Java version. Gradual optimizations have been made to the virtual machine and garbage collectors, so just upgrading Java will make existing code run more efficiently. New APIs and language features such as collection factory methods (Java 9), improved NullPointerException messages (Java 14), text blocks (Java 15), and records (Java 16) help developers write clearer code more quickly.
While Vaadin has used Java 8 as the minimum required version for the past five years, you have had the freedom to use a newer version for your applications and, in that way, also get most of the benefits from the newer versions. We're proactively testing the whole platform to ensure compatibility. We recommend building new applications with the newest applicable version of Java, rather than sticking to the minimum required version.
Vaadin 23 will be built on Java 11
Relying on Java 8 for our internal development means we cannot benefit from the productivity improvements from newer versions and it's also only a matter of time until some of the dependencies that we're using are no longer supported under Java 8. We have therefore decided that Vaadin 23, which is due in March 2022, will require Java 11.
Vaadin 23.0 will be the first release with our new release model. It will be followed by a series of quarterly 23.x minor releases, where we might make changes to support even newer Java versions while still keeping support for Java 11.
There isn't anything specific to Vaadin when it comes to upgrading from Java 8 to Java 11 or 17, since we have continuously ensured compatibility with newer Java versions. There is still the general advice about using recent versions of third-party libraries and tools, such as various Maven plugins, as well as explicitly adding dependencies, such as JAX-WS, that are no longer included by default, if the application needs those.
We are extending the maintenance period for Vaadin 22
We realize that some users are currently using Vaadin 22 together with Java 8 while expecting that Vaadin 23 will also support Java 8. In order to give some additional time to get prepared for Vaadin 23, we are extending the maintenance period of Vaadin 22 until March 2023.
Older versions of Vaadin will keep supporting Java 8 for as long as that version of Vaadin is maintained. For Vaadin 14, this is until August 2024, which can be further extended through a separate Extended Maintenance agreement.
This makes it possible for customers with a slower update cycle to continue using their existing infrastructure, while at the same time allowing our open source projects to start benefiting from the latest improvements.
If you have any questions regarding this change, reach out to Leif Åstrand on Twitter or join our growing Vaadin Discord server, where our team will be happy to help you out.