Skip to content

Commit 09e9da8

Browse files
Merge pull request #301607 from taoxu0903/patch-22
AppCAT 7 GA
2 parents 7c55605 + a802893 commit 09e9da8

18 files changed

+1214
-397
lines changed

articles/migrate/appcat/TOC.yml

Lines changed: 33 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,39 @@
11
items:
2-
- name: Azure Migrate application and code assessment
3-
href: index.yml
4-
- name: Overview
5-
expanded: true
6-
items:
2+
- name: Azure Migrate application and code assessment
3+
href: index.yml
74
- name: Overview
85
href: overview.md
96
- name: Assess Java applications and code
10-
href: java.md
11-
- name: Assess Java applications and code version 7 (Preview)
12-
href: java-preview.md
7+
expanded: true
8+
items:
9+
- name: Assess Java applications and code version 7
10+
expanded: true
11+
items:
12+
- name: Overview
13+
href: java.md
14+
- name: Release notes
15+
href: appcat-7-release-notes.md
16+
- name: "Quickstart: Assess a Java project"
17+
href: appcat-7-quickstart.md
18+
- name: Interpret the report
19+
href: appcat-7-interpret-report.md
20+
- name: CLI guide
21+
href: appcat-7-cli-guide.md
22+
- name: Rule development guide
23+
href: appcat-7-rule-guide.md
24+
- name: Assess Java applications and code version 6 (not recommended)
25+
expanded: true
26+
items:
27+
- name: Assess Java applications and code
28+
href: java-6.md
29+
- name: CLI usage guide
30+
href: https://azure.github.io/appcat-docs/cli/
31+
- name: Rules development guide
32+
href: https://azure.github.io/appcat-docs/rules-development-guide/
1333
- name: Assess .NET applications and code
1434
href: dotnet.md
15-
- name: Resources
16-
expanded: true
17-
items:
18-
- name: FAQ
19-
href: faq.yml
20-
- name: CLI usage guide
21-
href: https://azure.github.io/appcat-docs/cli/
22-
- name: Rules development guide
23-
href: https://azure.github.io/appcat-docs/rules-development-guide/
35+
- name: Resources
36+
expanded: true
37+
items:
38+
- name: FAQ
39+
href: faq.yml

articles/migrate/appcat/appcat-7-cli-guide.md

Lines changed: 226 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
---
2+
title: Interpret the AppCAT 7 Report
3+
description: Learn how to interpret the AppCAT report.
4+
author: KarlErickson
5+
ms.author: karler
6+
ms.reviewer: brborges
7+
ms.service: azure
8+
ms.custom: devx-track-java, build-2025
9+
ms.topic: overview
10+
ms.date: 06/27/2025
11+
#customer intent: As a developer, I want to assess my Java application so that I can understand its readiness for migration to Azure.
12+
---
13+
14+
# Interpret the AppCAT 7 report
15+
16+
This article guides you through the AppCAT report to help you understand it for assessing the readiness of your Java application for migration to Azure. The report provides a comprehensive overview of the application and its components. You can use this report to gain insights into the structure and dependencies of the application and to determine its suitability for replatforming and modernization.
17+
18+
## Application list view
19+
20+
The landing page of the report presents an overall view of all analyzed applications. From here, you can navigate to individual application reports to explore detailed findings.
21+
22+
:::image type="content" source="media/java/appcat-7-report-app-list.png" alt-text="Screenshot of the AppCAT assessment report Applications list." lightbox="media/java/appcat-7-report-app-list.png":::
23+
24+
## Application view
25+
26+
The application report consists of the following three sections:
27+
28+
- **Application Information**: reveals the basic information of your application including Java version, framework, build tool, and so on.
29+
- **Issue Summary**: shows the issue overview for three domains with percentages for issue criticality.
30+
- The detail report is organized into the following four subsections:
31+
- **Issues**: Provides a concise summary of all issues that require attention.
32+
- **Dependencies**: Displays all Java-packaged dependencies found within the application.
33+
- **Technologies**: Displays all embedded libraries grouped by functionality, enabling you to quickly view the technologies used in the application.
34+
- **Insights**: Displays file details and information to help you understand the detected technologies.
35+
36+
:::image type="content" source="media/java/appcat-7-report-app.png" alt-text="Screenshot of the AppCAT assessment report." lightbox="media/java/appcat-7-report-app.png":::
37+
38+
### Issues
39+
40+
Access this part by selecting the **Issues** tab. This tab provides a categorized issues list of various aspects of Azure readiness, cloud native, and Java modernization that you need to address to successfully migrate the application to Azure. The following tables describe the **Domain** and **Criticality** values:
41+
42+
| Domain | Description |
43+
|--------------------|-------------------------------------------------------------------------------------------------|
44+
| Azure readiness | Identifies app dependencies and suggests equivalent Azure solutions. |
45+
| cloud native | Assesses how well the app follows cloud-native practices like scalability and containerization. |
46+
| Java modernization | Identifies JDK and framework issues for version upgrade. |
47+
48+
| Criticality | Description |
49+
|-------------|-------------------------------------------------------------|
50+
| Mandatory | Issues that must be fixed for migration to Azure. |
51+
| Potential | Issues that might impact migration and need review. |
52+
| Optional | Low-impact issues. Fixing them is recommended but optional. |
53+
54+
:::image type="content" source="media/java/appcat-7-report-issues.png" alt-text="Screenshot of the AppCAT assessment report Issues tab." lightbox="media/java/appcat-7-report-issues.png":::
55+
56+
For more information, you can expand each reported issue by selecting the title. The report provides the following information:
57+
58+
- A list of files where the incidents occurred, along with the number of code lines impacted. If the file is a Java source file, then selecting the filename directs you to the corresponding source report.
59+
- A detailed description of the issue. This description outlines the problem, provides any known solutions, and references supporting documentation regarding either the issue or resolution.
60+
61+
:::image type="content" source="media/java/appcat-7-report-issue-detail.png" alt-text="Screenshot of the AppCAT assessment report issue details." lightbox="media/java/appcat-7-report-issue-detail.png":::
62+
63+
:::image type="content" source="media/java/appcat-7-report-issue-code.png" alt-text="Screenshot of the AppCAT assessment issue code report." lightbox="media/java/appcat-7-report-issue-code.png":::
64+
65+
### Technologies
66+
67+
Access this part by selecting the **Technologies** tab. The report lists the occurrences of technologies, grouped by function, in the analyzed application. This report is an overview of the technologies found in the application, and is designed to assist you in quickly understanding each application's purpose.
68+
69+
:::image type="content" source="media/java/appcat-7-report-technologies.png" alt-text="Screenshot of the AppCAT assessment report Technologies tab." lightbox="media/java/appcat-7-report-technologies.png":::
70+
71+
### Dependencies
72+
73+
Access this part by selecting the **Dependencies** tab. Displays all Java-packaged dependencies found within the application.
74+
75+
:::image type="content" source="media/java/appcat-7-report-dependencies.png" alt-text="Screenshot of the AppCAT assessment report Dependencies tab." lightbox="media/java/appcat-7-report-dependencies.png":::
76+
77+
### Insights
78+
79+
Access this part by selecting the **Insights** tab. Displays file details and information to help you understand the detected technologies.
80+
81+
:::image type="content" source="media/java/appcat-7-report-insights.png" alt-text="Screenshot of the AppCAT assessment report Insights tab." lightbox="media/java/appcat-7-report-insights.png":::
82+
83+
## Next steps
84+
85+
- [CLI Command Guide for AppCAT 7](appcat-7-cli-guide.md)
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
---
2+
title: "Quickstart: Assess a Java Project using AppCAT 7"
3+
description: Learn how to assess a Java project using AppCAT 7.
4+
author: KarlErickson
5+
ms.author: karler
6+
ms.reviewer: brborges
7+
ms.service: azure
8+
ms.custom: devx-track-java, build-2025
9+
ms.topic: overview
10+
ms.date: 06/27/2025
11+
#customer intent: As a developer, I want to assess my Java application so that I can understand its readiness for migration to Azure.
12+
---
13+
14+
# Quickstart: Assess a java project using AppCAT 7
15+
16+
This quickstart shows you how to download, install, and run AppCAT 7 against a sample Java project.
17+
18+
## Prerequisites
19+
20+
Before downloading AppCAT, be sure the JDK is installed and configured correctly.
21+
22+
- [The Microsoft Build of OpenJDK 17](/java/openjdk/install). Ensure that the `JAVA_HOME` environment variable is set.
23+
24+
## Download and install
25+
26+
To use the `appcat` CLI, you must download the package specific to your environment, and have the required dependencies in your environment. The `appcat` CLI runs on any environment such as Windows, Linux, or Mac, using Intel, Arm, or Apple Silicon hardware. For the JDK requirement, we recommend you use the [Microsoft Build of OpenJDK](/java/openjdk).
27+
28+
| OS | Architecture | Download Link | Other files |
29+
|---------|-----------------|----------------|--------------------------|
30+
| *x64*
31+
| Windows | x64 | [Download][13] | [sha256][14] / [sig][15] |
32+
| macOS | x64 | [Download][7] | [sha256][8] / [sig][9] |
33+
| Linux | x64 | [Download][1] | [sha256][2] / [sig][3] |
34+
| *AArch64*
35+
| Windows | AArch64 / ARM64 | [Download][16] | [sha256][17] / [sig][18] |
36+
| macOS | Apple Silicon | [Download][10] | [sha256][11] / [sig][12] |
37+
| Linux | AArch64 / ARM64 | [Download][4] | [sha256][5] / [sig][6] |
38+
39+
[1]: https://aka.ms/appcat/azure-migrate-appcat-for-java-cli-linux-amd64.tar.gz
40+
[2]: https://aka.ms/appcat/azure-migrate-appcat-for-java-cli-linux-amd64.tar.gz.sha256sum.txt
41+
[3]: https://aka.ms/appcat/azure-migrate-appcat-for-java-cli-linux-amd64.tar.gz.sig
42+
[4]: https://aka.ms/appcat/azure-migrate-appcat-for-java-cli-linux-arm64.tar.gz
43+
[5]: https://aka.ms/appcat/azure-migrate-appcat-for-java-cli-linux-arm64.tar.gz.sha256sum.txt
44+
[6]: https://aka.ms/appcat/azure-migrate-appcat-for-java-cli-linux-arm64.tar.gz.sig
45+
[7]: https://aka.ms/appcat/azure-migrate-appcat-for-java-cli-macos-amd64.tar.gz
46+
[8]: https://aka.ms/appcat/azure-migrate-appcat-for-java-cli-macos-amd64.tar.gz.sha256sum.txt
47+
[9]: https://aka.ms/appcat/azure-migrate-appcat-for-java-cli-macos-amd64.tar.gz.sig
48+
[10]: https://aka.ms/appcat/azure-migrate-appcat-for-java-cli-macos-arm64.tar.gz
49+
[11]: https://aka.ms/appcat/azure-migrate-appcat-for-java-cli-macos-arm64.tar.gz.sha256sum.txt
50+
[12]: https://aka.ms/appcat/azure-migrate-appcat-for-java-cli-macos-arm64.tar.gz.sig
51+
[13]: https://aka.ms/appcat/azure-migrate-appcat-for-java-cli-windows-amd64.zip
52+
[14]: https://aka.ms/appcat/azure-migrate-appcat-for-java-cli-windows-amd64.zip.sha256sum.txt
53+
[15]: https://aka.ms/appcat/azure-migrate-appcat-for-java-cli-windows-amd64.zip.sig
54+
[16]: https://aka.ms/appcat/azure-migrate-appcat-for-java-cli-windows-arm64.zip
55+
[17]: https://aka.ms/appcat/azure-migrate-appcat-for-java-cli-windows-arm64.zip.sha256sum.txt
56+
[18]: https://aka.ms/appcat/azure-migrate-appcat-for-java-cli-windows-arm64.zip.sig
57+
58+
To install `appcat`, download the appropriate zip file for your platform. After you download the file, depending on your operating system, you should find either a **.tar.gz** (Linux/macOS) or **.zip** file (Windows).
59+
60+
Extract the binary from the downloaded file. You should see the following folder structure:
61+
62+
```
63+
/azure-migrate-appcat-for-java-cli-<OS>-<architecture>-<release-version>/
64+
├── appcat.exe (Windows) / appcat (Linux/macOS)
65+
├── samples/
66+
├── fernflower.jar
67+
├── LICENSE
68+
├── NOTICE.txt
69+
├── maven.default.index
70+
├── jdtls/
71+
├── static-report/
72+
├── rulesets/
73+
├── readme.md
74+
└── readme.html
75+
```
76+
77+
## Run AppCAT against a sample Java project
78+
79+
In following steps, you do an application assessment using AppCAT against [Airsonic-Advanced](https://github.com/airsonic-advanced/airsonic-advanced) - a community-driven, web-based media streamer that enables you to access and share your music collection.
80+
81+
1. To run `appcat` from any location in your terminal, extract the archive to your desired location. Then, update the `PATH` environment variable to include the directory where you extracted the archive.
82+
83+
> [!NOTE]
84+
> When the `appcat` binary is called, it first looks for its dependencies in the executable folder specified in the `PATH` environment variable. If the dependencies aren't found, it falls back to the user's home directory - **~/.appcat** on Linux/Mac or **%USERPROFILE%\\.appcat** on Windows.
85+
86+
1. Clone the application repository to a local folder using the following command:
87+
88+
```sh
89+
git clone https://github.com/airsonic-advanced/airsonic-advanced.git
90+
```
91+
92+
1. Run the assessment scripts in the samples folder of the downloaded AppCAT release package by providing the path to the cloned folder from the previous step. Depending on your operating system, run the appropriate script, as shown in the following example. The reports are automatically generated and opened in your web browser. You can find the reports under **../samples/report-\*** (Linux/macOS) or **..\samples\report-\*** (Windows).
93+
94+
### [Linux / macOS](#tab/linux)
95+
96+
```bash
97+
./samples/run-assessment <path-to-airsonic-advanced>
98+
```
99+
100+
### [Windows](#tab/windows)
101+
102+
```cmd
103+
.\samples\run-assessment.bat <path-to-airsonic-advanced>
104+
```
105+
106+
> [!NOTE]
107+
> Ensure that the file permissions for scripts in the extracted folder are set to allow execution.
108+
109+
In the **samples** directory, you can find the following scripts to run different types of analysis:
110+
111+
- **run-assessment**: Provides a report with code assessment and steps for migrating Airsonic to Azure App Service on Tomcat.
112+
- **run-assessment-transform-rules**: Converts Windup XML rules to analyzer-lsp-compatible YAML rules.
113+
- **run-assessment-custom-rules**: Provides a code assessment report using custom rules *transform XML to YAML*.
114+
- **run-assessment-openjdk21**: Generates a report with code assessment and steps for migrating Airsonic to OpenJDK 21.
115+
- **run-assessment-package-only**: Produces a report by assessing specific packages.
116+
117+
## Next steps
118+
119+
- [Interpret the AppCAT 7 report](appcat-7-interpret-report.md)
120+
- [CLI command guide for AppCAT 7](appcat-7-cli-guide.md)
121+
- [Rules development guide for AppCAT 7](appcat-7-rule-guide.md)

0 commit comments

Comments
 (0)