Chapter 9. Analyzing an application with MTA
You can use the Migration Toolkit for Applications (MTA) user interface (UI) to configure and run an application analysis. The analysis determines which specific lines in the application must be modified before the application can be migrated or modernized.
9.1. Configuring and running an application analysis Copy linkLink copied to clipboard!
You can analyze more than one application at a time against more than one transformation target in the same analysis.
If you analyze an application that requires Maven credentials to access private repositories, you must assign these credentials in the Credentials section of the Administration view. Otherwise, there might be an impact on the quality of the analysis, identified issues, or the MTA performance. For more information, see Configuring credentials.
When your system is in a disconnected environment, but you have access to a Maven proxy, the application analysis runs without failure. However, if you do not have access to the Maven proxy, Maven cannot build the application because it cannot access the required dependencies.
Note also that the analysis output in the disconnected environment usually results in fewer incidents because a dependency analysis does not run accurately without access to Maven.
Procedure
- In the Migration view, click Application inventory.
- Select an application that you want to analyze.
- Review the credentials assigned to the application.
- Click Analyze.
Select the Analysis mode from the list:
- Binary
- Source code
- Source code and dependencies
- Upload a local binary. This option only appears if you are analyzing a single application. If you chose this option, you are prompted to Upload a local binary. Either drag a file into the area provided or click Upload and select the file to upload.
- Click Next.
Select one or more target options for the analysis:
Application server migration to either of the following platforms:
- JBoss EAP 7
- JBoss EAP 8
- Containerization
- Quarkus
- OracleJDK to OpenJDK
OpenJDK. Use this option to upgrade to either of the following JDK versions:
- OpenJDK 11
- OpenJDK 17
- OpenJDK 21
- Linux. Use this option to ensure that there are no Microsoft Windows paths hard-coded into your applications.
- Jakarta EE 9. Use this option to migrate from Java EE 8.
- Spring Boot on Red Hat Runtimes
- Open Liberty
- Camel. Use this option to migrate from Apache Camel 2 to Apache Camel 3 or from Apache Camel 3 to Apache Camel 4.
- Azure App Service
- Click Next.
Select one of the following Scope options to better focus the analysis:
- Application and internal dependencies only.
- Application and all dependencies, including known Open Source libraries.
- Select the list of packages to be analyzed manually. If you choose this option, type the file name and click Add.
- Exclude packages. If you choose this option, type the name of the package and click Add.
- Click Next.
In Advanced, you can attach additional custom rules to the analysis by selecting the Manual or Repository mode:
- In the Manual mode, click Add Rules. Drag the relevant files or select the files from their directory and click Add.
In the Repository mode, you can add rule files from a Git or Subversion repository.
ImportantAttaching custom rules is optional if you have already attached a migration target to the analysis. If you have not attached any migration target, you must attach rules.
Optional: Set any of the following options:
- Target
- Source(s)
- Excluded rules tags. Rules with these tags are not processed. Add or delete as needed.
Enable automated tagging. Select the checkbox to automatically attach tags to the application. This checkbox is selected by default.
NoteAutomatically attached tags are displayed only after you run the analysis. You can attach tags to the application manually instead of enabling automated tagging or in addition to it.
NoteAnalysis engines use standard rules for a comprehensive set of migration targets. However, if the target is not included, is a customized framework, or the application is written in a language that is not supported, for example, Ruby, you can add custom rules by skipping the target selection in the Set Target tab and uploading custom rule files in the Custom Rules tab. Only custom rule files that are uploaded manually are validated.
- Click Next.
- In Review, verify the analysis parameters.
Click Run.
The analysis status is
Scheduled
as MTA downloads the image for the container to execute. When the image is downloaded, the status changes toIn-progress.
NoteAnalysis takes minutes to hours to run depending on the size of the application and the capacity and resources of the cluster.
NoteMTA relies on Kubernetes scheduling capabilities to determine how many analyzer instances are created based on cluster capacity. If several applications are selected for analysis, by default, only one analyzer can be provisioned at a time. With more cluster capacity, more analysis processes can be executed in parallel.
Optional: To track the status of your active analysis task, open the Task Manager drawer by clicking the notifications button.
Alternatively, hover over the application name to display the pop-over window.
- When analysis is complete, to see its results, open the application drawer by clicking on the application name.
After creating an application instance on the Application Inventory page, the language discovery task starts, automatically pre-selecting the target filter option. However, you can choose a different language that you prefer.
9.2. Reviewing analysis details Copy linkLink copied to clipboard!
You can display the activity log of the analysis. The activity log contains such analysis details as, for example, analysis steps.
Procedure
- In the Migration view, click Application inventory.
- Click on the application row to open the application drawer.
- Click the Reports tab.
- Click View analysis details for the activity log of the analysis.
Optional: For issues and dependencies found during the analysis, click the Details tab in the application drawer and click Issues or Dependencies.
Alternatively, open the Issues or Dependencies page in the Migration view.
9.3. Accessing unmatched rules Copy linkLink copied to clipboard!
To access unmatched rules, you must run the analysis with enhanced logging enabled.
Procedure
- Navigate to Advanced under Application analysis.
- Select Options.
- Check Enhanced advanced analysis details.
When you run an analysis:
- Navigate to Reports in the side drawer.
- Click View analysis details, which opens the YAML/JSON format log view.
-
Select the
issues.yaml
file. For each ruleset, there is an unmatched section that lists the rule IDs that do not find match rules.
9.4. Downloading an analysis report Copy linkLink copied to clipboard!
An MTA analysis report contains several sections, including a listing of the technologies used by the application, the dependencies of the application, and the lines of code that must be changed to successfully migrate or modernize the application.
For more information about the contents of an MTA analysis report, see Reviewing the reports.
For your convenience, you can download analysis reports. Note that by default this option is disabled.
Procedure
- In Administration view, click General.
- Toggle the Allow reports to be downloaded after running an analysis. switch.
- Go to the Migration view and click Application inventory.
- Click on the application row to open the application drawer.
- Click the Reports tab.
Click either the HTML or YAML link:
-
By clicking the HTML link, you download the compressed
analysis-report-app-<application_name>.tar
file. Extracting this file creates a folder with the same name as the application. -
By clicking the YAML link, you download the uncompressed
analysis-report-app-<application_name>.yaml
file.
-
By clicking the HTML link, you download the compressed
9.5. Accessing analysis insights Copy linkLink copied to clipboard!
Analysis insights contain information about the technologies used in the application and their usage in the code. Unlike issues, you do not need to fix insights for a successful migration. They are generated by any rule that does not have a positive effort value and category assigned. They might have a message and a tag. You can access analysis insights after you run an application analysis either from a static or dynamic report.
Procedure
Depending on your scenario, complete either of the following procedures:
Access application insights from the static report:
-
Download an analysis report in the
.tar
format. For more information, see Downloading an analysis report. -
Extract the
.tar
file. -
Open the
index.html
file to view the static report. - Click Insights.
-
Download an analysis report in the
Access application insights from the dynamic report:
- In the Migration view, click Insights.
- On the Insights page, filter application insights by an application name to display insights for a particular application.