Migrating Applications with Windup


Windup is a tool that scans your application for migration relevant items and presents its findings within an html report. It finds a variety of items starting with standard and vendor specific deployment descriptors and ending with the detail of migration relevant method calls (like JNDI lookups or the use of native APIs).

I think the best way to get a good first impression of windup is to look at a report of it as shown below (click on the picture to see the whole report).


As you can see it gives you a nice overview of interesting items. The story points are a measure of how much work has to be done to migrate an item. How that translates to man hours or days depends on your knowledge and experience.

Windup is not meant to replace your expertise but it is meant to help you in getting a good overview of what you will have to do. Windup uses a ruleset to find relevant items. This ruleset is not only openly readable for you, you can also extend the ruleset for your own uses.

Running windup is really easy. You can get it from its download site. Simply exract the zip to some location of your choice. Now lets assume you have a project you want to analyse on /home/isims/dev/tomee/examples. (I’m using the examples from the tomee project as an example here. You can git clone the tomee project from https://github.com/apache/tomee.git. The project contains a folder examples.)

Now there are basically three important things you have to tell windup so that it can analyze you application:

  • The java packages you want to be scanned. In the case of the tomee examples that is org.superbiz.
  • The location of your sources.
  • The location to put the report to.

As windup is also able to analyze compiled java archives (like .jar, .war, .ear and so on) we will also have to tell windup that it should analyse source.

All this information results in a simple command like the following:

java -jar windup-cli.jar \
-source true \
-javaPkgs org.superbiz \
-input /home/isims/dev/tomee/examples \
-output /tmp/windupreport

You will get a bunch of files in /tmp/windupreport including an index.html – open that to view your newly generated windup report.

I may should point out that windup is a JBoss tool and so has it’s focus on migration to JBoss. When analyzing and migrating applications you may also have a look at tattletale which is meant to generate reports important to resolve class loading issues.

Windup is a really good Tool to get a first overview over an application to migrate. Try it out if you haven’t already!

Feel free to ask any questions in the comments section or via mail to immanuel.sims (at) akquinet.de.