Speed your migration to JBoss EAP 8 with Windup

Windup is a set of tools that support the migration and modernization of Java applications by producing detailed code analysis, effort estimation and migration steps. In this article, we will show how to produce a migration report for a JBoss EAP 7 application that we want to move to JBoss EAP 8.

Windup Overview

Windup is an opensource project that supports several migration plans, by producing detailed Reports that you can use as the main reference for your migration milestones. The core of Windup is an extensible rules engine that analyzes Java applications as input.

In this article, we will show how to run a sample migration scenario for a legacy JBoss EAP 7 application that we want to port on JBoss EAP 8. You can find more details about the top changes that happened in JBoss EAP 8 in this article: JBoss EAP 8 Top 10 New Features

The example application that we want to migrate is a full-stack legacy application available here: https://github.com/fmarchioni/mastertheboss/tree/master/javaee/javaee7example

For the purpose of this example, we will the the Windup CLI which is available for download here: https://windup.github.io/downloads/

Migrating to JBoss EAP 8

Firstly, you need to produce a WAR artifact for our legacy application. That will be the input parameter for Windup:

mvn install

Then, you can run windup-cli passing as argument the javaee7example.war as –input. We want to produce the reports in the output folder. Finally, choose as target eap:8:

./windup-cli --input /path/to/javaee7example.war --output output/ --target eap:8

Within the output folder you will find an index.html page which is the root of your Migration Root. Here’s the Application page:

how to migrate to jboss eap 8

As you can see from the initial report, there are several incidents which are the migration steps you need to complete. The Tags column lists the technologies that are involved in your migration. Finally, the Story points are a way to estimate the effort required to complete a task or user story during the application migration process.

By clicking on the application link, you will access the Windup Dashboard page which shows a break-down of all incidents and story points by technology:

windup migrate java ee applications

The actual step-by-step migration is available in the Issues Menu. From there you can see the complete list of steps you need to complete including both the optional and the mandatory ones.

As mandatory steps, you obviously need to replace the older javax packages with the new jakarta namespace:

jboss eap 8: step-by-step migration guide

Besides, the EAP8 migration Rules also check the XML descriptors and the Maven project files, as you can see from the following picture:

windup jboss eap 8

Going beyond EAP 8 migration

The migration of a legacy application often requires additional steps such as a JDK upgrade or moving the application into a Container. Windup includes a large number of migration rules to continue the modernization of your applications.

For example, you can use the new eap8example.war application as source for a JDK 21 migration with the following CLI:

./windup-cli --input eap8example.war --output jdk21/ --target openjdk21

Finally, you can assess your cloud readiness by choosing as target cloud-readiness:

./windup-cli --input eap8example.war --output cloud/ --target cloud-readiness

Conclusion

Through this article, we have explored several features of Windup, including its ability to analyze application source code, detect deprecated APIs, and generate detailed migration reports. These reports serve as a roadmap for migrating applications to JBoss EAP 8, highlighting areas of concern and providing recommendations for remediation.

Found the article helpful? if so please follow us on Socials