Chapter 2. About the Migration Toolkit for Applications

What is the Migration Toolkit for Applications?

The Migration Toolkit for Applications (MTA) is an extensible and customizable rule-based tool that simplifies the migration of Java applications.

The MTA examines application artifacts, including project source directories and application archives, then produces an HTML report that highlights areas needing changes. MTA can migrate Java applications from earlier versions of Red Hat JBoss Enterprise Application Platform or from other application servers, such as Oracle WebLogic Server or IBM WebSphere Application Server.

How does the Migration Toolkit for Applications simplify migration?

The Migration Toolkit for Applications looks for common resources and highlights technologies and known trouble spots when migrating applications. The goal is to provide a high-level view into the technologies used by the application and provide a detailed report organizations can use to estimate, document, and migrate enterprise applications to Java EE and Red Hat JBoss Enterprise Application Platform.

2.1. MTA Features

The Migration Toolkit for Applications (MTA) provides a number of capabilities to assist with planning and executing migration projects.

Planning and work estimation
MTA assists project managers by detailing the type of work and estimation of effort to complete the tasks. Level of effort is represented in MTA reports as story points. Actual estimates will be based on the skills required and the classification of migration work needed.
Identifying migration issues and providing solutions
MTA identifies migration issues and highlights specific points in the code where an issue occurs. MTA suggests code changes and provides additional resources to help engineers resolve the specific issue.
Detailed reporting
MTA produces numerous reports to give both high-level views of the migration effort and details of specific migration tasks. You can view migration issues across all applications, charts and summary information about issues in an application, a breakdown of issues by module in the application, reports of technologies used, and dependencies on other applications and services. You can also examine source files to see the line of code where an issue occurs. See the CLI Guide for more information on the available MTA reports.
Built-in rules and migration paths
MTA comes with a core set of rules to provide migration assistance for several common migration paths. These rules identify the use of proprietary functionality from other application servers or deprecated subsystems from previous versions of JBoss EAP. MTA also contains rules to identify common migration issues, such as hard-coded IP addresses and JNDI lookups.
Rule extensibility and customization
MTA provides the ability to create powerful and complex rules. You can expand upon the core set of rules provided by MTA and create rules to identify additional issues that are important for your migration project. You can also override core rules and create custom rule categories. See the Rules Development Guide for more information on customizing MTA rules.
Ability to analyze source code or application archives
MTA can evaluate application archives or source code, and can evaluate multiple applications together. It can identify archives that are shared across multiple applications, which can help with more accurate effort estimation.

2.2. About MTA rules

The Migration Toolkit for Applications (MTA) contains rule-based migration tools that analyze the APIs, technologies, and architectures used by the applications you plan to migrate. In fact, the MTA analysis process is implemented using MTA rules. MTA uses rules internally to extract files from archives, decompile files, scan and classify file types, analyze XML and other file content, analyze the application code, and build the reports.

MTA builds a data model based on the rule execution results and stores component data and relationships in a graph database, which can then be queried and updated as needed by the migration rules and for reporting purposes.

MTA rules use the following rule pattern:

when(condition)
  perform(action)
otherwise(action)

MTA provides a comprehensive set of standard migration rules out-of-the-box. Because applications may contain custom libraries or components, MTA allows you to write your own rules to identify use of components or software that may not be covered by the existing ruleset.

If you plan to write your own custom rules, see the https://access.redhat.com/documentation/en-us/migration_toolkit_for_applications/5.0/html-single/rules_development_guide in Rules Development Guide for detailed instructions.