Chapter 4. Appendix
4.1. Glossary of Terms Used in Windup Copy linkLink copied to clipboard!
4.1.1. Rules Terms Copy linkLink copied to clipboard!
- 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-jarXML files and provides a link to a article on the Red Hat Customer Portal that describes how to migrate the file.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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,
SpringorJava EE 6 WebLogic. 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.JBoss EAP - 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 Copy linkLink copied to clipboard!
- 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 Copy linkLink copied to clipboard!
4.2.1. Overview Copy linkLink copied to clipboard!
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 Copy linkLink copied to clipboard!
4.2.2.1. Application and Command Line Suggestions Copy linkLink copied to clipboard!
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
--targetplatform on the on theWINDUP_HOME/bin/windupcommand 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
--packagesargument 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
--excludePackagesand--excludeTagswhere possible to exclude them from processing. -
Add additional proprietary packages that should not be processed to the
ignore/proprietary.package-ignore.txtfile 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 Copy linkLink copied to clipboard!
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.