Chapter 4. Appendix


4.1. Glossary of Terms Used in Windup

4.1.1. Rules Terms

Rule

A piece of code that performs a single unit of work during the migration process. The following is an example of am XML-based rule that finds and reports on instances of weblogic-ejb-jar XML files and provides a link to a article on the Red Hat Customer Portal that describes how to migrate the file.

<rule id="weblogic-xml-descriptor-04000">
    <when>
        <xmlfile matches="/weblogic-ejb-jar" />
    </when>
    <perform>
        <classification title="WebLogic EJB XML" severity="mandatory" effort="3">
            <link href="https://access.redhat.com/articles/1326823" title="Map weblogic-ejb-jar.xml Elements to the jboss-ejb3.xml Descriptor" />
            <tag>ejb</tag>
        </classification>
    </perform>
</rule>
Copy to Clipboard Toggle word wrap
RuleProvider
An implementation of OCPSoft ConfigurationProvider class specifically for Windup. It provides Rule instances and the relevant RuleProviderMetadata for those Java-based and XML-based Rule instances.
Ruleset

A ruleset is a group of one or more RuleProviders that targets a specific area of migration, for example, Spring Java EE 6 or WebLogic JBoss EAP. A ruleset is packaged as a JAR and contains additional information needed for the migration, such as operations, conditions, report templates, static files, metadata, and relationships to other rulesets. The following Windup projects are rulesets.

  • rules-java-ee
  • rules-xml
Rules Metadata
Information about whether a particular ruleset applies to a given situation. The metadata can include the source and target platform and frameworks.
Rules Pipeline
A collection of rules that feed information into the knowledge graph.

4.1.2. Reporting Terms

Level of effort
The effort required to complete the migration task. Level of effort is represented as story points in the Windup reports.
Story Point
A term commonly used in Scrum Agile software development methodology to estimate the level of effort needed to implement a feature or change. It does not necessarily translate to man-hours, but the value should be consistent across tasks. Story points are covered in more detail in the Windup Rules Development Guide.

4.2. Optimize Windup Performance

4.2.1. Overview

Windup performance depends on a number of factors, including hardware configuration, the number and types of files in the application, the size and number of applications to be evaluated, and whether the application contains source or compiled code. For example, a file that is larger than 10 MB may need a lot of time to process.

In general, Windup spends about 40% of the time decompiling classes, 40% of the time executing rules, and the remainder of the time processing other tasks and generating reports. This section describes what you can do to improve the performance of Windup.

4.2.2. Tips to Optimize Performance

4.2.2.1. Application and Command Line Suggestions

Try these suggestions first before upgrading hardware.

  • If possible, execute Windup against the source code instead of the archives. This eliminates the need to decompile additional JARs and archives.
  • Specify the --target platform on the on the WINDUP_HOME/bin/windup command line to limit the execution of rules to only those that apply to this target platform.
  • Be sure to specify a comma-delimited list of the packages to be evaluated by Windup using the --packages argument on the `WINDUP_HOME/bin/windup`command line. If you omit this argument, Windup will decompile everything, which has a big impact on performance.
  • Specify the --excludePackages and --excludeTags where possible to exclude them from processing.
  • Add additional proprietary packages that should not be processed to the ignore/proprietary.package-ignore.txt file in the Windup distribution directory. Windup can still find the references to the packages in the application source code, but avoids the need to decompile and analyze the proprietary classes.
  • If you have access to a server that has better resources than your laptop or desktop machine, you may want to consider running Windup on that server.

4.2.2.2. Hardware Upgrade Suggestions

If the steps above do not improve performance, you may need to upgrade your hardware.

  • If you have access to a server that has better resources than your laptop/desktop, than you may want to consider running Windup on that server.
  • Very large applications that require decompilation have large memory requirements. 8 GB RAM is recommended. This allows 3 - 4 GB RAM for use by the JVM.
  • An upgrade from a single or dual-core to a 4-core CPU processor provides better performance.
  • Disk space and fragmentation can impact performance. A fast disk, especially a Solid State Drive (SSD), with greater than 4 GB of defragmented disk space should improve performance.
Back to top
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2026 Red Hat