Blog

Still on V8? Automate your application upgrade to Vaadin 23

By  
Daniele Pizzagalli
Daniele Pizzagalli
·
On Feb 14, 2023 5:37:44 PM
·
In Product

Vaadin 8 reached its end of life a year ago, on February 21, 2022, five years after its initial release. The last free version under Apache 2 license was 8.14.3. Without an application upgrade, your Vaadin 8 app continues to function as expected. However, you no longer receive the following:

  • Critical security fixes and patches
  • Browser and JVM compatibility fixes
  • Feature updates
  • Bug fixes

Are you considering moving your codebase from Vaadin 8 to the latest major release, Vaadin 23? The V8 Upgrade Automation Service can help. It uses automated tools that significantly reduce the time and effort of moving your codebase from Vaadin 8 to Vaadin 23.

Why should you migrate from V8 to V23? 

Vaadin Flow is a robust UI framework for Java developers. Many adopted version 8 in the past to create their applications when the GWT engine was a mainstream solution at the core of the rendering process in Vaadin.

Fast forward six years, and Web Components are now the standard recognized by all the major browsers. Newer versions of Vaadin use Web Components, instead of GWT, as the new engine to reflect Java structures in a web page. This significant change also came with important API changes for the Vaadin Flow framework.

Besides the essential non-functional requirements and innovations that Vaadin 23 brings, Vaadin has ended free security updates for version 8. While extended maintenance for V8 will be available until 2032, upgrading to the latest version, especially using automation, can be the best investment.

The V8 Upgrade Automation

The V8 Upgrade Automation is a service provided by Vaadin, which converts your code from using Vaadin 8 API usage to Vaadin Flow 23.

The automated conversion process

The fully automated process has the following steps:

  1. Based on Java's official language syntax, the original source code can be represented in a conceptual structure called AST (Abstract Syntax Tree).
  2. Starting from a Vaadin 8 AST, the automation applies a set of conversion rules to reach the correspondent Vaadin Flow 23 AST. This will map all changes needed in an intermediate language, which describes conceptually how the Java source code should change.
  3. Changes applied to this intermediate language are then applied in Java, modifying the source code only when needed while preserving comments, formatting, and any Java code unrelated to the change.

The difference between this process and using a simple text analysis or any standard Java parsing library is that the process can understand specific Java concepts, like extensions or polymorphic invocations, that would be otherwise impossible to recognize without a compilation unit.

The automation scope

Our automated tooling includes a large set of pre-built rules that, with the help of utility classes and tools such as the Classic Components, provide a one-to-one conversion from Vaadin 8 to Vaadin Flow 23.

Applications can be very diverse, and the coverage of Vaadin 8 APIs that can be automatically converted is typically between 35% and 90% with our pre-built default rules, depending on how you have used the Vaadin framework. As part of the Upgrade Automation Services, it is also possible to increase the level of automated coverage by planning the upgrade process and preparing specific rules to target a particular application.

Since the automation is applied only to Java files and is explicitly related to Vaadin 8 APIs, the following elements are not included in the scope of the process:

  • Themes style description, for example, CSS files.
  • Any non-Java-based declaratives, for instance, views made with V8 Designer.
  • Third-party add-ons.

How much effort will you save?

While the coverage of Java files is typically high, the savings this automation provides in a migration process will vary depending on the application.

The more an application relies on Vaadin 8 Java APIs instead of other types of files, the higher the savings in the overall migration process. 

Vaadin also provides a Migration Assessment service that can complement the V8 Upgrade Automation Service. The Migration Assessment accurately estimates your migration effort by evaluating your specific Vaadin 8 application.

Accelerating your migration project

One of the key obstacles for any migration project is maintaining your production codebase while working on the new codebase. Often you need to freeze features in the production codebase for some time as you complete the transition. This can increase the workload of everyone involved in your company, not only developers. This “overlap” period can also delay the addition of critical features needed by your business.

The Upgrade Automation Service can significantly reduce this period of double effort. Starting to work on a code base that has already been through the automatic conversion process will help speed up the migration and make more efficient use of your resources.

Ready to upgrade?

Upgrade your Vaadin 8 application to Vaadin 23 and enjoy modern features, better performance, and a simplified developer experience. For more information and a quote, contact us -->

Daniele Pizzagalli
Daniele Pizzagalli
Daniele joined Vaadin in 2022 after working as a lead developer in many diverse enterprise projects. He focuses on finding efficient solutions, considering the technical challenges and the organization needed to address them.
Other posts by Daniele Pizzagalli