CLI ガイド
Migration Toolkit for Applications CLI を使用してアプリケーションを移行する方法
概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 概要
1.1. CLI ガイドについて
このガイドは、Migration Toolkit for Applications (MTA) を使用して Java アプリケーション、.NET アプリケーション、またはその他のコンポーネントを移行するエンジニア、コンサルタント、その他のユーザーを対象としています。MTA 7.1 以降では、MTA を使用して Java 以外の言語で記述されたアプリケーションを分析できます。Java 以外の言語で記述されたアプリケーションに対して分析を実行するには、カスタムルールセットを追加し、ターゲット言語を指定しないでください。このガイドでは、CLI のインストールおよび実行方法、生成されたレポートの確認方法、追加機能を活用方法を説明します。
.NET の移行は開発者プレビュー機能です。開発者プレビュー機能は、Red Hat ではいかなる形でもサポートされていません。また、機能的には完全ではなく、実稼働環境に対応していません。本番環境またはビジネスクリティカルなワークロードには、開発者プレビュー機能を使用しないでください。開発者プレビュー機能は、Red Hat 製品オファリングに含まれる可能性がある前に、今後の製品機能への早期アクセスを提供し、お客様が機能をテストし、開発プロセス中にフィードバックを提供できるようにします。これらの機能にはドキュメントがない可能性があり、いつでも変更または削除される可能性があり、テストは制限されています。Red Hat は、関連する SLA なしで、開発者プレビュー機能に関するフィードバックを送信する方法を提供する場合があります。
Java 以外の言語で記述されたアプリケーションの分析は、開発者プレビュー機能です。開発者プレビュー機能は、Red Hat ではいかなる形でもサポートされていません。また、機能的には完全ではなく、実稼働環境に対応していません。本番環境またはビジネスクリティカルなワークロードには、開発者プレビュー機能を使用しないでください。開発者プレビュー機能は、Red Hat 製品オファリングに含まれる可能性がある前に、今後の製品機能への早期アクセスを提供し、お客様が機能をテストし、開発プロセス中にフィードバックを提供できるようにします。これらの機能にはドキュメントがない可能性があり、いつでも変更または削除される可能性があり、テストは制限されています。Red Hat は、関連する SLA なしで、開発者プレビュー機能に関するフィードバックを送信する方法を提供する場合があります。
1.2. Migration Toolkit for Applications の概要
Migration Toolkit for Applications とは
Migration Toolkit for Applications (MTA) は、Red Hat OpenShift 上のハイブリッドクラウド環境全体で大規模なアプリケーションモダナイゼーションに対する取り組みを促進します。このソリューションは、導入プロセス全体を通じて、ポートフォリオレベルとアプリケーションレベルの詳細情報を提供します。ユーザーインターフェイスを使用して、アプリケーションのインベントリー作成、評価、分析、および管理を行い、OpenShift Container Platform への移行をより短期間で行うことができます。
MTA 7.1 以降では、アプリケーションを Application Inventory に追加すると、MTA が言語検出タスクとテクノロジー検出タスクを自動的に作成して実行します。言語の検出では、アプリケーションで使用されているプログラミング言語が識別されます。テクノロジーの検出では、Enterprise Java Beans (EJB)、Spring などのテクノロジーが識別されます。その後、各タスクによってアプリケーションに適切なタグが割り当てられるため、アプリケーションに手動でタグを付ける時間と労力が削減されます。
MTA は、アプリケーションを評価するための基礎として広範にわたるデフォルトの質問リストを使用します。または、独自のカスタム質問リストを作成して、アプリケーションのコンテナー化の準備に必要な難易度、時間、およびその他のリソースを見積もることもできます。ステークホルダー間の議論の基礎として評価の結果を使用して、どのアプリケーションがコンテナー化に適しているか、どのアプリケーションが最初に多大な作業を必要とするか、どのアプリケーションがコンテナー化に適していないかを判断できます。
MTA は、対象のアプリケーションごとに 1 つ以上のルールセットを適用してアプリケーションを分析し、モダナイゼーションする前に、そのアプリケーションに含まれるどの行を変更するかを判断します。
MTA は、プロジェクトソースディレクトリーやアプリケーションアーカイブを含むアプリケーションアーティファクトを検査し、変更を必要とするエリアを強調表示する HTML レポートを作成します。
Migration Toolkit for Applications による移行を単純化する方法
Migration Toolkit for Applications は一般的なリソースを探し、アプリケーションを移行する際の既知の問題点を明らかにします。アプリケーションで使用されるテクノロジーの概要を示します。
MTA は、移行またはモダナイゼーションパスの評価に関する詳細なレポートを生成します。このレポートは、大規模なプロジェクトに必要な作業を見積もり、関係する作業を減らすのに役立ちます。
1.2.1. サポートされている Migration Toolkit for Applications の移行パス
Migration Toolkit for Applications (MTA) は、次の移行をサポートしています。
- サードパーティーのエンタープライズアプリケーションサーバー (Oracle WebLogic Server など) から JBoss Enterprise Application Platform (JBoss EAP) への移行。
- JBoss EAP の最新リリースへのアップグレード。
- Windows 専用の .NET 4.5+ Framework からクロスプラットフォームの .NET 8.0 への移行。(開発者プレビュー)
MTA は、Red Hat OpenShift Container Platform (RHOCP) でのコンテナー化およびデプロイメントのアプリケーションの適合性を評価するための包括的なルールセットを提供します。MTA 分析を実行して、複数のターゲットプラットフォームに移行するアプリケーションの適切性を評価できます。
ソースプラットフォーム ⇒ | JBoss EAP 7、8 への移行 | OpenShift (クラウド対応) | OpenJDK 11、17、21 | Jakarta EE 9 | Camel 3、4 | Spring Boot in Red Hat Runtimes | Quarkus | Open Liberty |
---|---|---|---|---|---|---|---|---|
Oracle WebLogic Server | ✔ | ✔ | ✔ | - | - | - | - | - |
IBM WebSphere Application Server | ✔ | ✔ | ✔ | - | - | - | - | ✔ |
JBoss EAP 4 | ✘ [a] | ✔ | ✔ | - | - | - | - | - |
JBoss EAP 5 | ✔ | ✔ | ✔ | - | - | - | - | - |
JBoss EAP 6 | ✔ | ✔ | ✔ | - | - | - | - | - |
JBoss EAP 7 | ✔ | ✔ | ✔ | - | - | - | ✔ | - |
Thorntail | ✔ [b] | - | - | - | - | - | - | - |
Oracle JDK | - | ✔ | ✔ | - | - | - | - | - |
Camel 2 | - | ✔ | ✔ | - | ✔ | - | - | - |
Spring Boot | - | ✔ | ✔ | ✔ | - | ✔ | ✔ | - |
すべての Java アプリケーション | - | ✔ | ✔ | - | - | - | - | - |
任意の Java EE アプリケーション | - | - | - | ✔ | - | - | - | - |
[a]
現在 MTA はこの移行パスのルールを提供していませんが、Red Hat コンサルティングはソースプラットフォームから JBoss EAP 7 への移行を支援します。
[b]
JBoss Enterprise Application Platform expansion pack 2 (EAP XP 2) が必要
|
- .NET 移行パス: ソースプラットフォーム ⇒ ターゲットプラットフォーム (開発者プレビュー)
ソースプラットフォーム ⇒ | OpenShift (クラウド対応) | .NET 8.0 への移行 |
---|---|---|
.NET Framework 4.5+ (Windows 専用) | ✔ | ✔ |
ユースケースおよび移行パスの詳細は、開発者向け MTA Web ページを参照してください。
1.3. MTA の CLI
CLI は、Migration Toolkit for Applications のコマンドラインツールです。アプリケーションの移行とモダナイゼーションの取り組みを評価し、優先順位を付けるために使用できます。他のツールを使用せずに、分析内容を示す多数のレポートを提供します。CLI には、幅広いカスタマイズオプションがあります。CLI を使用すると、MTA の分析オプションを調整したり、外部自動ツールと統合したりできます。
第2章 CLI のインストールおよび実行
2.1. CLI のインストール
CLI は、ダウンロード可能な .zip
ファイルを使用して、Linux、Windows、または macOS オペレーティングシステムにインストールできます。
MTA 7.2.0 以降では、コンテナーレスモードで Java アプリケーションのアプリケーション分析を実行できます。
コンテナーレスモードはデフォルトで設定されており、すべての要件が満たされている場合は自動的に使用されます。詳細は、コンテナーレス CLI の実行 を参照してください。
ただし、Java 以外の言語でアプリケーションを分析 (例: 変換コマンド を使用) する場合は、コンテナーを使用する必要があります。
コンテナー化された CLI の前提条件
Migration Toolkit for Applications (MTA) CLI インストール (コンテナー) の前提条件は次のとおりです。
-
registry.redhat.io
の Red Hat コンテナーレジストリーの認証。Red Hat は、認証を必要とするregistry.redhat.io
からコンテナーイメージを配布します。詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。 - Podman がインストールされている。
- MTA CLI には 8 GB のメモリーが割り当てられている。
コンテナーレス CLI の前提条件
MTA CLI を コンテナーレス CLI モードで実行する場合の前提条件は次のとおりです。
Java Development Kit (JDK) がインストールされている。
MTA がサポートしているのは以下の JDK です。
- Oracle JDK 17 以降
- Eclipse Temurin™ JDK 17 以降
OpenJDK 17 以降
JDK に
devel
パッケージが提供するコンパイラーもインストールされている。これは、OpenJDK を Red Hat Enterprise Linux (RHEL) または Fedora にインストールする場合、Java ランタイム (JRE) のみがインストールされていると分析中に問題が発生するためです。Red Hat Enterprise Linux (RHEL) に Red Hat build of OpenJDK 17 をインストールする方法の詳細は、yum を使用した RHEL への Red Hat build of OpenJDK のインストール を参照してください。
-
JAVA_HOME
およびPATH
環境変数を設定する。 -
Maven 3.9.9 がインストールされ、bin ディレクトリーが
PATH
環境変数に追加されます。パスと環境変数の設定は、使用しているオペレーティングシステムによって異なります。Maven のインストールに関する詳細は、Apache Maven インストール を参照してください。 macOS のインストールには以下が必要です。
-
maxproc
の値が2048
以上である。
-
2.1.1. CLI .zip
ファイルのインストール
手順
MTA Download page に移動し、OS 固有の CLI ファイルまたは
src
ファイルをダウンロードします。- MTA-7.2.3-cli-linux-amd64.zip
- MTA-7.2.3-cli-linux-arm64.zip
- MTA-7.2.3-cli-darwin-amd64.zip
- MTA-7.2.3-cli-darwin-arm64.zip
- MTA-7.2.3-cli-windows-amd64.zip
- MTA-7.2.3-cli-windows-arm64.zip
- MTA-7.2.3-cli-src.zip
.zip
ファイルを$HOME
ディレクトリー内の.kantra
ディレクトリーに展開します。この.zip
ファイルには、mta-cli バイナリーとその他の必要なディレクトリーおよびファイルが含まれます。このガイドで
<MTA_HOME>
が出てきた場合は、MTA インストールへの実際のパスに置き換えます。
2.1.2. Podman を使用した CLI のインストール
podman pull
を使用してコンテナー化された CLI をインストールできます。
この手順には .zip
ファイルに含まれる依存関係のプルと展開が含まれていないため、Podman を使用してコンテナーレス CLI をインストールできません。
前提条件
-
registry.redhat.io
の Red Hat コンテナーレジストリーの認証。Red Hat は、認証を必要とするregistry.redhat.io
からコンテナーイメージを配布します。詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。 - Podman がインストールされている。
Podman は、Open Containers Initiative (OCI) コンテナーとコンテナーイメージを使用してアプリケーションを簡単に検索、実行、ビルド、共有、デプロイするために設計された、オープンソースのデーモンレス Linux ネイティブツールです。Podman は、Docker Container Engine の使用経験があれば馴染みのあるコマンドラインインターフェイス (CLI) を提供します。Podman のインストールと使用の詳細は、Podman installation instructions を参照してください。
手順
次のコマンドを実行して、Podman を使用して
registry.redhat.io
に認証します。podman login registry.redhat.io
$ podman login registry.redhat.io
Copy to Clipboard Copied! ユーザー名とパスワードを入力します。
Username: <username> Password: <***********>
Username: <username> Password: <***********>
Copy to Clipboard Copied! 次のコマンドを実行して、バイナリーの
PATH
をコピーし、システム全体で使用できるようにします。podman cp $(podman create registry.redhat.com/mta-toolkit/mta-mta-cli-rhel9:{ProductVersion}):/usr/local/bin/mta-cli ./
$ podman cp $(podman create registry.redhat.com/mta-toolkit/mta-mta-cli-rhel9:{ProductVersion}):/usr/local/bin/mta-cli ./
Copy to Clipboard Copied! 警告Podman を使用したインストールも可能ですが、
.zip
ファイルをダウンロードしてインストールすることが推奨されます。
Podman のセットアップと設定には多数の変数を利用しますが、このドキュメントの範囲外です。Podman の詳細は、Podman の概要 を参照してください。
Podman のトラブルシューティングの詳細は、A list of common issues and solutions for Podman を参照してください。
2.1.3. Windows 上の Docker で使用するための CLI のインストール (開発者プレビュー)
CLI は、Windows 上の Docker で使用するためにインストールできます。これは、Windows 上で .NET Framework 4.5 以降を使用して構築されたアプリケーションを、クロスプラットフォームの .NET 8.0 に移行する場合に必要な手順です。
前提条件
- Windows 11+ 64 ビットバージョン 21H2 以降を搭載したホスト。
- Docker Desktop for Windows インストーラーをダウンロードした。詳細は、Install Docker Desktop on Windows を参照してください。
手順
- 管理者権限で PowerShell を開きます。
Hyper-V がインストールされ、有効になっていることを確認します。
PS C:\Users\<your_user_name>> Enable-WindowsOptionalFeature -Online ` -FeatureName Microsoft-Hyper-V-All
PS C:\Users\<your_user_name>> Enable-WindowsOptionalFeature -Online ` -FeatureName Microsoft-Hyper-V-All
Copy to Clipboard Copied! PS C:\Users\<your_user_name>> Enable-WindowsOptionalFeature -Online ` -FeatureName Containers
PS C:\Users\<your_user_name>> Enable-WindowsOptionalFeature -Online ` -FeatureName Containers
Copy to Clipboard Copied! 注記場合によっては Windows を再起動する必要があります。
Windows に Docker Desktop をインストールします。
-
Docker_Desktop_Installer.exe
をダブルクリックしてインストーラーを実行します。デフォルトでは、Docker Desktop はC:\Program Files\Docker\Docker
にインストールされます。 - 設定ページで Use WSL 2 instead of Hyper-V オプションの選択を解除して、Docker が Linux コンテナーではなく Windows コンテナーをバックエンドとして実行するようにします。
-
PowerShell で、MTA 用のフォルダーを作成します。
PS C:\Users\<your_user_name>> mkdir C:\Users\<your_user_name>\MTA
PS C:\Users\<your_user_name>> mkdir C:\Users\<your_user_name>\MTA
Copy to Clipboard Copied! <your_user_name>
は、ホームディレクトリーのユーザー名に置き換えます。mta-7.2.3-cli-windows.zip
ファイルをMTA
フォルダーに展開します。PS C:\Users\<your_user_name>> cd C:\Users\<your_user_name>\Downloads
PS C:\Users\<your_user_name>> cd C:\Users\<your_user_name>\Downloads
Copy to Clipboard Copied! <your_user_name>
は、ホームディレクトリーのユーザー名に置き換えます。PS C:\Users\<your_user_name>> Expand-Archive ` -Path "{ProductShortNameLower}-{ProductVersion}-cli-windows.zip" ` -DestinationPath "C:\Users\<your_user_name>\MTA"
PS C:\Users\<your_user_name>> Expand-Archive ` -Path "{ProductShortNameLower}-{ProductVersion}-cli-windows.zip" ` -DestinationPath "C:\Users\<your_user_name>\MTA"
Copy to Clipboard Copied! <your_user_name>
は、ホームディレクトリーのユーザー名に置き換えます。Docker が Windows コンテナーを実行していることを確認します。
PS C:\Users\<your_user_name>> docker version
PS C:\Users\<your_user_name>> docker version
Copy to Clipboard Copied! Client: Version: 27.0.3 API version: 1.46 Go version: go1.21.11 Git commit: 7d4bcd8 Built: Sat Jun 29 00:03:32 2024 OS/Arch: windows/amd64 Context: desktop-windows Server: Docker Desktop 4.32.0 (157355) Engine: Version: 27.0.3 API version: 1.46 (minimum version 1.24) Go version: go1.21.11 Git commit: 662f78c Built: Sat Jun 29 00:02:13 2024 OS/Arch: windows/amd64 Experimental: false
Client: Version: 27.0.3 API version: 1.46 Go version: go1.21.11 Git commit: 7d4bcd8 Built: Sat Jun 29 00:03:32 2024 OS/Arch: windows/amd64
1 Context: desktop-windows Server: Docker Desktop 4.32.0 (157355) Engine: Version: 27.0.3 API version: 1.46 (minimum version 1.24) Go version: go1.21.11 Git commit: 662f78c Built: Sat Jun 29 00:02:13 2024 OS/Arch: windows/amd64
2 Experimental: false
Copy to Clipboard Copied! Docker を使用するように
PODMAN_BIN
環境変数を設定します。PS C:\Users\<your_user_name>> $env:PODMAN_BIN="C:\Windows\system32\docker.exe"
PS C:\Users\<your_user_name>> $env:PODMAN_BIN="C:\Windows\system32\docker.exe"
Copy to Clipboard Copied! アップストリームの
dotnet-external-provider
を使用するようにDOTNET_PROVIDER_IMG
環境変数を設定します。PS C:\Users\<your_user_name>> $env:DOTNET_PROVIDER_IMG="registry.redhat.io/mta/mta-dotnet-external-provider-rhel9:7.1.0"
PS C:\Users\<your_user_name>> $env:DOTNET_PROVIDER_IMG="registry.redhat.io/mta/mta-dotnet-external-provider-rhel9:7.1.0"
Copy to Clipboard Copied! アップストリームイメージを使用するように
RUNNER_IMG
環境変数を設定します。double-check reference
# double-check reference PS C:\Users\<your_user_name>> $env:RUNNER_IMG="registry.redhat.io/mta/mta-cli-rhel9:7.1.0"
Copy to Clipboard Copied!
2.2. 非接続環境への MTA のインストール
MTA 7.2.0 以降では、コンテナーレスモードで Java アプリケーションのアプリケーション分析を実行できます。
コンテナーレスモードはデフォルトで設定されており、すべての要件が満たされている場合は自動的に使用されます。詳細は、コンテナーレス CLI の実行 を参照してください。
ただし、Java 以外の言語でアプリケーションを分析 (例: 変換コマンド を使用) する場合は、コンテナーを使用する必要があります。
インターネットに接続されたデバイスで、まず MTA バイナリーをダウンロードして保存します。次に、必要な Podman イメージ、MTA CLI イメージ、プロバイダーイメージをダウンロードして保存します。
Migration Toolkit for Applications Red Hat Developer ページ から、必要な MTA CLI バイナリーをダウンロードします。
- CLI for Linux x86_64
- CLI for Linux aarch64
- CLI for MacOS x86_64
- CLI for MacOS aarch64
- CLI for Windows x86_64
- CLI for Windows aarch64
- インターネットに接続されたデバイスでイメージをダウンロードして保存します。
- 非接続のデバイスにバイナリーをコピーします。
- さらに、Podman を使用して関連するコンテナーイメージを保存およびインポートする必要があります。
2.2.1. Podman イメージのダウンロード
前提条件
- Podman がインストールされている。詳細は、Podman を参照してください。
手順
Podman を使用して、registry.redhat.io への認証を行います。
podman login registry.redhat.io
$ podman login registry.redhat.io
Copy to Clipboard Copied! ユーザー名と、registry.redhat.io のパスワードを入力します。
Username: <registry_service_account_username> Password: <registry_service_account_password>
Username: <registry_service_account_username> Password: <registry_service_account_password>
Copy to Clipboard Copied! 以下の出力が表示されるはずです。
Login Succeeded!
Login Succeeded!
Copy to Clipboard Copied! Podman を使用してレジストリーからイメージを取得します。
podman pull registry.redhat.io/mta/mta-cli-rhel9:7.1.0
$ podman pull registry.redhat.io/mta/mta-cli-rhel9:7.1.0
Copy to Clipboard Copied! Podman を使用して、レジストリーから必要なプロバイダーイメージを取得します。
Java の場合は、次を実行します。
podman pull registry.redhat.io/mta/mta-java-external-provider-rhel9:7.1.0
$ podman pull registry.redhat.io/mta/mta-java-external-provider-rhel9:7.1.0
Copy to Clipboard Copied! .NET の場合は、次を実行します。
podman pull registry.redhat.io/mta/mta-dotnet-external-provider-rhel9:7.1.0
$ podman pull registry.redhat.io/mta/mta-dotnet-external-provider-rhel9:7.1.0
Copy to Clipboard Copied!
イメージを保存します。
podman save <image> -o <my_image.image>
$ podman save <image> -o <my_image.image>
Copy to Clipboard Copied! -
.image
ファイルとバイナリーを USB にコピーするか、非接続のデバイスのファイルシステムに直接コピーします。 非接続のデバイスで、次のコマンドを実行します。
podman load --input <my_image.image>
$ podman load --input <my_image.image>
Copy to Clipboard Copied!
2.2.2. CLI の既知の問題
Microsoft Windows における Podman の制限
CLI は、Microsoft Windows をサポートするように構築および配布されます。
ただし、Red Hat Enterprise Linux 9 (RHEL9) または Universal Base Image 9 (UBI9) に基づくコンテナーイメージを実行する場合、コンテナーの起動時に次のエラーが返されることがあります。
Fatal glibc error: CPU does not support x86-64-v2
Fatal glibc error: CPU does not support x86-64-v2
このエラーは、Red Hat Enterprise Linux 9 または Universal Base Image 9 コンテナーイメージを x86-64-v2
をサポートする CPU アーキテクチャーで実行する必要があるために発生します。
CLI はコンテナーランタイムを正しく実行します。ただし、異なるコンテナーランタイム設定はサポートされていません。
サポートされていませんが、Podman の代わりに Docker を使用して CLI を実行すると、この問題は解決されます。
これを実現するには、PODMAN_BIN
パスを Docker へのパスに置き換えます。
たとえば、この問題が発生した場合は、次のコマンドを発行する代わりに、
PODMAN_BIN=/usr/local/bin/docker mta-cli analyze
PODMAN_BIN=/usr/local/bin/docker mta-cli analyze
PODMAN_BIN
を Docker へのパスに置き換えます。
<Docker Root Dir>=/usr/local/bin/docker mta-cli analyze
<Docker Root Dir>=/usr/local/bin/docker mta-cli analyze
これはサポートされていませんが、ハードウェアをアップグレードしたり、x86_64-v2
をサポートするハードウェアに移行したりするときに、CLI を調べることができます。
2.3. CLI の実行
シナリオに応じて、Migration Toolkit for Applications (MTA) CLI を使用して、次の方法で分析を実行できます。
- 単一のアプリケーションに対して分析を実行します。
複数のアプリケーションに対して分析を実行します。
-
7.1.0 より前のバージョンの MTA では、一連の
--analyze
コマンドを入力できます。各コマンドはアプリケーションに対して実行し、それぞれ個別のレポートが生成されます。詳細は、アプリケーションに対する MTA CLI の実行 を参照してください。 -
MTA 7.1.0 以降では、
--bulk
オプションを使用して複数のアプリケーションを一度に分析し、単一のレポートを生成できます。この機能は開発者プレビュー機能のみであることに注意してください。詳細は、複数のアプリケーションに対して MTA CLI を実行し、単一のレポートを生成する (開発者プレビュー) を参照してください。
-
7.1.0 より前のバージョンの MTA では、一連の
MTA 7.2.0 以降では、コンテナーレスモードでアプリケーション分析を実行できます。このオプションはデフォルトで設定されており、すべての要件が満たされている場合は自動的に使用されることに注意してください。詳細は、コンテナーレス CLI の実行 を参照してください。
2.3.1. 1 つのアプリケーションに対して MTA CLI を実行する
Migration Toolkit for Applications (MTA) CLI は、1 つのアプリケーションに対して実行できます。
手順
-
ターミナルを開き、
<MTA_HOME>/
ディレクトリーに移動します。 mta-cli
スクリプト (Windows の場合はmta-cli.exe
) を、適切な引数を指定して実行します。./mta-cli analyze --input <path_to_input> \ --output <path_to_output> --source <source_name> --target <target_source> \
$ ./mta-cli analyze --input <path_to_input> \ --output <path_to_output> --source <source_name> --target <target_source> \
Copy to Clipboard Copied! -
--input
: 評価されるアプリケーション。 -
--output
: 生成されたレポートの出力ディレクトリー。 -
--source
: アプリケーション移行元のテクノロジー。たとえば、weblogic
です。 -
--target
: アプリケーション移行先のテクノロジー。たとえば、eap8
です。
-
- レポートにアクセスします。
2.3.1.1. MTA コマンドの例
アプリケーションアーカイブでの MTA の実行
次のコマンドでは、JBoss EAP 5 から JBoss EAP 7 に移行するために、jee-example-app-1.0.0.ear
という名前のサンプル EAR アーカイブを分析します。
<MTA_HOME>/mta-cli analyze \ --input <path_to_jee-example-app-1.0.0.ear> \ --output <path_to_report_output> --source eap5 --target eap7 \
$ <MTA_HOME>/mta-cli analyze \
--input <path_to_jee-example-app-1.0.0.ear> \
--output <path_to_report_output> --source eap5 --target eap7 \
ソースコードに対する MTA の実行
次のコマンドでは、JBoss EAP 8 に移行するために、customer-management
というサンプルアプリケーションのソースコードを分析します。
<MTA_HOME>/mta-cli analyze --mode source-only --input <path_to_customer-management>
$ <MTA_HOME>/mta-cli analyze --mode source-only --input <path_to_customer-management>
--output <path_to_report_output> --target eap8
cloud-readiness ルールの実行
次のコマンドでは、JBoss EAP 7 に移行するために、jee-example-app-1.0.0.ear
という名前のサンプル EAR アーカイブを分析します。また、アーカイブがクラウド対応しているかどうかも評価します。
<MTA_HOME>/mta-cli analyze --input <path_to_jee-example-app-1.0.0.ear> \ --output <path_to_report_output> \ --target eap7
$ <MTA_HOME>/mta-cli analyze --input <path_to_jee-example-app-1.0.0.ear> \
--output <path_to_report_output> \
--target eap7
2.3.2. 複数のアプリケーションに対して MTA CLI を実行し、1 つのレポートを生成する (開発者プレビュー)
複数のアプリケーションに対して Migration Toolkit for Applications (MTA) CLI を実行し、1 つに結合されたレポートを生成できるようになりました。これにより、時間を節約でき、移行に向けて一連のアプリケーションを準備する方法をより適切に把握できます。
この機能は現在、開発者プレビュー機能です。
1 つ以上のアプリケーションに対する CLI の実行は、開発者プレビュー機能です。開発者プレビュー機能は、Red Hat ではいかなる形でもサポートされていません。また、機能的には完全ではなく、実稼働環境に対応していません。本番環境またはビジネスクリティカルなワークロードには、開発者プレビュー機能を使用しないでください。開発者プレビュー機能は、Red Hat 製品オファリングに含まれる可能性がある前に、今後の製品機能への早期アクセスを提供し、お客様が機能をテストし、開発プロセス中にフィードバックを提供できるようにします。これらの機能にはドキュメントがない可能性があり、いつでも変更または削除される可能性があり、テストは制限されています。Red Hat は、関連する SLA なしで、開発者プレビュー機能に関するフィードバックを送信する方法を提供する場合があります。
手順
-
ターミナルを開き、
<MTA_HOME>/
ディレクトリーに移動します。 mta-cli
スクリプト (Windows の場合はmta-cli.exe
) を、適切な引数を指定して実行します。analyze
コマンドごとに 1 つの入力を指定しますが、すべての入力に対して同じ出力ディレクトリーを指定します。たとえば、アプリケーション A、B、C を分析するには、次のように指定します。入力 A について、次のコマンドを指定します。
./mta-cli analyze --bulk --input=<path_to_input_A> --output=<path_to_output_ABC> --source <source_A> --target <target_A>
$ ./mta-cli analyze --bulk --input=<path_to_input_A> --output=<path_to_output_ABC> --source <source_A> --target <target_A>
Copy to Clipboard Copied! -
--input
: 評価されるアプリケーション。 -
--output
: 生成されたレポートの出力ディレクトリー。 -
--source
: アプリケーション移行元のテクノロジー。たとえば、weblogic
です。 -
--target
: アプリケーション移行先のテクノロジー。たとえば、eap8
です。
-
入力 B について、次のコマンドを指定します。
./mta-cli analyze --bulk --input=<path_to_input_B> --output=<path_to_output_ABC> --source <source_B> --target <target_B>
$ ./mta-cli analyze --bulk --input=<path_to_input_B> --output=<path_to_output_ABC> --source <source_B> --target <target_B>
Copy to Clipboard Copied! 入力 C について、次のコマンドを指定します。
./mta-cli analyze --bulk --input=<path_to_input_C> --output=<path_to_output_ABC> --source <source_C> --target <target_C>
$ ./mta-cli analyze --bulk --input=<path_to_input_C> --output=<path_to_output_ABC> --source <source_C> --target <target_C>
Copy to Clipboard Copied! MTA によって、アプリケーションを移行する前に解決する必要があるすべての問題をリストした 1 つのレポートが生成されます。
- レポートにアクセスします。
2.3.3. コマンドラインを使用して分析を実行する
Analyze
は、analyzer-lsp
ツールを使用してソースコードとバイナリー分析の実行をサポートします。analyzer-lsp
はプロバイダーのルールを評価し、ルールの一致を判断します。
特に依存関係がバイナリー内に組み込まれていない場合は、分析中に依存関係のリストを、コンパイルされた Java バイナリーから常に展開できるわけではありません。
アプリケーションのソースコード分析を実行するには、次のコマンドを実行します。
mta-cli analyze --input=<path_to_source_code> --output=<path_to_output_directory>
mta-cli analyze --input=<path_to_source_code> --output=<path_to_output_directory>
すべてのフラグ:
Analyze application source code Usage: mta-cli analyze [flags] Flags: --analyze-known-libraries Analyze known open-source libraries. --context-lines (int) Number of lines of source code to include in the output for each incident (default: `100`). -d, --dependency-folders (stringArray) Directory for dependencies. --enable-default-rulesets Run default rulesets with analysis (default: `true`). -h, --help Help for analyze. --http-proxy (string) HTTP proxy string URL. --https-proxy (string) HTTPS proxy string URL. --incident-selector (string) An expression to select incidents based on custom variables. Example: !package=io.demo.config-utils -i, --input (string) Path to application source code or a binary. --jaeger-endpoint (string) Jaeger endpoint to collect traces. --json-output Create analysis and dependency output as JSON. --list-sources List available migration sources. --list-targets List available migration targets. -l, --label-selector (string) Run rules based on specified label selector expression. --maven-settings (string) Path to the custom maven settings file to use. --overwrite Overwrite output directory. --skip-static-report Do not generate the static report. -m, --mode (string) Analysis mode, must be one of `full` or `source-only` (default: `full`). --no-proxy (string) Proxy-excluded URLs (relevant only with proxy). -o, --output (string) Path to the directory for analysis output. --overwrite Overwrite output directory. --rules (stringArray) Filename or directory containing rule files. --run-local Run analysis directly on local system without containers (for Java and Maven). Starting from MTA 7.2.0, containerless CLI is the default mode (`--run-local=true`). You can enable container runtime usage by setting `--run-local` to `false`. --skip-static-report Do not generate the static report. -s, --source (string) Source technology to consider for analysis. To specify multiple sources, repeat the parameter: `--source <source_1> --source <source_2>` etc. -t, --target (string) Target technology to consider for analysis. To specify multiple targets, repeat the parameter: `--target <target_1> --target <target_2>` etc. Global Flags: --log-level uint32 Log level (default: 4). --no-cleanup Do not cleanup temporary resources.
Analyze application source code
Usage:
mta-cli analyze [flags]
Flags:
--analyze-known-libraries Analyze known open-source libraries.
--context-lines (int) Number of lines of source code to
include in the output for each
incident (default: `100`).
-d, --dependency-folders (stringArray) Directory for dependencies.
--enable-default-rulesets Run default rulesets with analysis
(default: `true`).
-h, --help Help for analyze.
--http-proxy (string) HTTP proxy string URL.
--https-proxy (string) HTTPS proxy string URL.
--incident-selector (string) An expression to select incidents
based on custom variables.
Example:
!package=io.demo.config-utils
-i, --input (string) Path to application source code or
a binary.
--jaeger-endpoint (string) Jaeger endpoint to collect traces.
--json-output Create analysis and dependency
output as JSON.
--list-sources List available migration sources.
--list-targets List available migration targets.
-l, --label-selector (string) Run rules based on specified label
selector expression.
--maven-settings (string) Path to the custom maven
settings file to use.
--overwrite Overwrite output directory.
--skip-static-report Do not generate the static report.
-m, --mode (string) Analysis mode, must be one of
`full` or `source-only`
(default: `full`).
--no-proxy (string) Proxy-excluded URLs
(relevant only with proxy).
-o, --output (string) Path to the directory for analysis
output.
--overwrite Overwrite output directory.
--rules (stringArray) Filename or directory containing
rule files.
--run-local Run analysis directly on
local system without containers
(for Java and Maven).
Starting from MTA 7.2.0,
containerless CLI is the default
mode (`--run-local=true`).
You can enable container runtime
usage by setting `--run-local` to `false`.
--skip-static-report Do not generate the static report.
-s, --source (string) Source technology to consider
for analysis.
To specify multiple sources,
repeat the parameter:
`--source <source_1>
--source <source_2>` etc.
-t, --target (string) Target technology to consider
for analysis.
To specify multiple targets,
repeat the parameter:
`--target <target_1>
--target <target_2>` etc.
Global Flags:
--log-level uint32 Log level (default: 4).
--no-cleanup Do not cleanup temporary resources.
上記のフラグのリストには --bulk
フラグは含まれていません。このフラグは開発者プレビュー機能の一部として提供されているためです。この機能については、CLI で複数のアプリケーションを分析するときに 1 つのレポートを提供するためのサポート で説明されています。
使用例:
- 分析を実行するサンプルアプリケーションを取得します。
利用可能なターゲットテクノロジーをリストします。
mta-cli analyze --list-targets
mta-cli analyze --list-targets
Copy to Clipboard Copied! 指定したターゲットテクノロジー (例:
cloud-readiness
) を使用して分析を実行します。mta-cli analyze --input=<path-to/example-applications/example-1> --output=<path-to-output-dir> --target=cloud-readiness
mta-cli analyze --input=<path-to/example-applications/example-1> --output=<path-to-output-dir> --target=cloud-readiness
Copy to Clipboard Copied! 指定した出力パスに、いくつかの分析レポートが作成されます。
ls ./output/ -1
$ ls ./output/ -1 analysis.log dependencies.yaml dependency.log output.yaml static-report
Copy to Clipboard Copied! -
output.yaml
は、Issues レポートが含まれるファイルです。 -
static-report
には、静的 HTML レポートが含まれています。 -
dependencies.yaml
には、依存関係レポートが含まれています。
-
2.3.4. コンテナーレス CLI の実行
MTA 7.2.0 以降では、コンテナーランタイムのインストールを必要としない MTA CLI を使用して、Java アプリケーションのアプリケーション分析を実行できます。
MTA 7.2.0 以降では、コンテナーレス CLI がデフォルトモードです。コンテナーランタイムの使用を有効にするには、--run-local
フラグを false
に設定する必要があります。
--run-local=false
--run-local=false
前提条件
- システムに OpenJDK バージョン 17 以降がインストールされている。
- システムに Maven バージョン 3.9.9 以降がインストールされている。
CLI では、
mvn
バイナリーへのパスがシステム変数に正しく登録されていることを前提としている。したがって、次の変数にmvn
が追加されていることを確認してください。-
Windows の
Path
。 -
Linux および macOS の
PATH
。
-
Windows の
-
JAVA_HOME
環境変数が設定されている。 JVM_MAX_MEM
システム変数が設定されている。注記JVM_MAX_MEM
を設定しないと、分析がハングする可能性があります。
Linux の手順
zip ファイル全体を ~/.kantra
に展開した後、そのパスを $PATH
変数に追加します。
mta-cli
バイナリーを /usr/bin
に移動するには root 権限が必要ですが、そのパスを $PATH
変数に追加するには root 権限は必要ありません。
依存関係の zip ファイルを
~/.kantra
に抽出するには、次のコマンドを実行します。unzip $HOME/mta-cli.<os>.<arch>.zip -d $HOME/.kantra
unzip $HOME/mta-cli.<os>.<arch>.zip -d $HOME/.kantra
Copy to Clipboard Copied! システム全体のバイナリーとして追加するか、グローバル
$PATH
変数に追加します。たとえば、
sudo
を使用して、mta-cli
バイナリーをシステム全体のバイナリーとして/usr/bin
に追加するには、次を実行します。sudo mv ~/.kantra/mta-cli /usr/bin/
sudo mv ~/.kantra/mta-cli /usr/bin/
Copy to Clipboard Copied! たとえば、グローバル
$PATH
変数に追加するには、次を実行します。export PATH=$HOME/.kantra:$PATH
export PATH=$HOME/.kantra:$PATH
Copy to Clipboard Copied!
注記CLI は、分析を実行するディレクトリーに要件を移動して実行できます。分析中、CLI は最初にこのディレクトリーで要件をチェックし、要件が見つからない場合は
$HOME/.kantra
ディレクトリーで検索します。オプション: すべての
mta-cli analyze
コマンドオプションを表示します。mta-cli analyze --help
mta-cli analyze --help
Copy to Clipboard Copied! アプリケーション分析を実行します。
mta-cli analyze --overwrite --input <path_to_input> --output <path_to_output> --target <target_source>
$ mta-cli analyze --overwrite --input <path_to_input> --output <path_to_output> --target <target_source>
Copy to Clipboard Copied! コマンド引数は次のものを表します。
-
--overwrite
: 出力フォルダーが存在する場合は上書きします。 -
--input
: 分析するアプリケーション。 -
--output
: 生成されたレポートの出力ディレクトリー。 -
--target
: アプリケーション移行のターゲットテクノロジー (例:eap8
)。
-
2.3.5. コマンドラインを使用して変換を実行する
変換を使用して、以下のアクションを実行できます。
-
transform openrewrite
コマンドを使用して、Java アプリケーションのソースコードを変換します。 -
transform rules
コマンドを使用して、XML ルールを YAML ルールに変換します。
変換を実行するには、コンテナーランタイムを設定する必要があります。詳細は、Podman を使用して CLI をインストールする を参照してください。
Transform application source code or mta XML rules Usage: mta-cli transform [flags] mta-cli transform [command] Available Commands: openrewrite Transform application source code using OpenRewrite recipes rules Convert XML rules to YAML Flags: -h, --help help for transform Global Flags: --log-level uint32 log level (default 4) --no-cleanup do not clean up temporary resources Use "mta-cli transform [command] --help" for more information about a command.
Transform application source code or mta XML rules
Usage:
mta-cli transform [flags]
mta-cli transform [command]
Available Commands:
openrewrite Transform application source code using OpenRewrite recipes
rules Convert XML rules to YAML
Flags:
-h, --help help for transform
Global Flags:
--log-level uint32 log level (default 4)
--no-cleanup do not clean up temporary resources
Use "mta-cli transform [command] --help" for more information about a command.
2.3.5.1. OpenRewrite
openrewrite
サブコマンドを使用すると、ソースコードに対して OpenRewrite
レシピを実行できます。
Transform application source code using OpenRewrite recipes Usage: mta-cli transform openrewrite [flags] Flags: -g, --goal string target goal (default "dryRun") -h, --help help for openrewrite -i, --input string path to application source code directory -l, --list-targets list all available OpenRewrite recipes -s, --maven-settings string path to a custom maven settings file to use -t, --target string target openrewrite recipe to use. Run --list-targets to get a list of packaged recipes. Global Flags: --log-level uint32 log level (default 4) --no-cleanup do not clean up temporary resources
Transform application source code using OpenRewrite recipes
Usage:
mta-cli transform openrewrite [flags]
Flags:
-g, --goal string target goal (default "dryRun")
-h, --help help for openrewrite
-i, --input string path to application source code directory
-l, --list-targets list all available OpenRewrite recipes
-s, --maven-settings string path to a custom maven settings file to use
-t, --target string target openrewrite recipe to use. Run --list-targets to get a list of packaged recipes.
Global Flags:
--log-level uint32 log level (default 4)
--no-cleanup do not clean up temporary resources
アプリケーションのソースコードに対して transform openrewrite
を実行するには、次のコマンドを実行します。
mta-cli transform openrewrite --input=<path/to/source/code> --target=<exactly_one_target_from_the_list>
mta-cli transform openrewrite --input=<path/to/source/code> --target=<exactly_one_target_from_the_list>
transform overwrite
コマンドの実行に使用できるターゲットは 1 つだけです。
2.3.5.2. ルール
transform
コマンドの rules
サブコマンドを使用して、mta XML ルールを analyzer-lsp
YAML ルールに変換できます。ルールを変更するために、rules
サブコマンドは windup-shim
ツールを使用します。
analyzer-lsp
はプロバイダーのルールを評価し、ルールの一致を判断します。
Convert XML rules to YAML Usage: mta-cli transform rules [flags] Flags: -h, --help help for rules -i, --input stringArray path to XML rule file(s) or directory -o, --output string path to output directory Global Flags: --log-level int log level (default 5)
Convert XML rules to YAML
Usage:
mta-cli transform rules [flags]
Flags:
-h, --help help for rules
-i, --input stringArray path to XML rule file(s) or directory
-o, --output string path to output directory
Global Flags:
--log-level int log level (default 5)
アプリケーションのソースコードで transform rules
を実行するには、以下を実行します。
mta-cli transform rules --input=<path/to/xmlrules> --output=<path/to/output/dir>
mta-cli transform rules --input=<path/to/xmlrules> --output=<path/to/output/dir>
使用例:
- ソースコードを変換するサンプルアプリケーションを取得します。
利用可能な OpenRewrite レシピを表示します。
mta-cli transform openrewrite --list-targets
mta-cli transform openrewrite --list-targets
Copy to Clipboard Copied! サンプルアプリケーションでレシピを実行します。
mta-cli transform openrewrite --input=<path-to/jakartaee-duke> --target=jakarta-imports
mta-cli transform openrewrite --input=<path-to/jakartaee-duke> --target=jakarta-imports
Copy to Clipboard Copied! jakartaee-duke
アプリケーションのソースコードの差分を調べて、変換を確認します。
2.3.5.3. 利用可能な OpenRewrite レシピ
移行パス | 目的 | rewrite.configLocation | activeRecipes |
---|---|---|---|
Java EE から Jakarta EE |
|
|
|
Java EE から Jakarta EE | ブートストラップファイルの名前を変更する |
|
|
Java EE から Jakarta EE |
|
|
|
Spring Boot から Quarkus |
|
|
|
2.4. レポートへのアクセス
Migration Toolkit for Applications を実行すると、コマンドラインの --output
引数を使用して指定する <OUTPUT_REPORT_DIRECTORY>
にレポートが生成されます。
output ディレクトリーには、以下のファイルおよびサブディレクトリーが含まれます。
<OUTPUT_REPORT_DIRECTORY>/ ├── index.html // Landing page for the report ├── <EXPORT_FILE>.csv // Optional export of data in CSV format ├── archives/ // Archives extracted from the application ├── mavenized/ // Optional Maven project structure ├── reports/ // Generated HTML reports ├── stats/ // Performance statistics
<OUTPUT_REPORT_DIRECTORY>/
├── index.html // Landing page for the report
├── <EXPORT_FILE>.csv // Optional export of data in CSV format
├── archives/ // Archives extracted from the application
├── mavenized/ // Optional Maven project structure
├── reports/ // Generated HTML reports
├── stats/ // Performance statistics
手順
MTA の実行後に表示される出力から、レポートの
index.html
ファイルのパスを取得します。Report created: <OUTPUT_REPORT_DIRECTORY>/index.html Access it at this URL: file:///<OUTPUT_REPORT_DIRECTORY>/index.html
Report created: <OUTPUT_REPORT_DIRECTORY>/index.html Access it at this URL: file:///<OUTPUT_REPORT_DIRECTORY>/index.html
Copy to Clipboard Copied! ブラウザーを使用して
index.html
ファイルを開きます。生成されたレポートが表示されます。
2.5. CLI を使用した多言語アプリケーションの分析
MTA 7.1.0 以降では、複数の言語で書かれたアプリケーションでアプリケーション分析を実行できます。分析は次のいずれかの方法で実行できます。
- 分析の実行対象とするサポートされている言語プロバイダーを選択する。
- サポートされている既存の言語プロバイダーを、サポートされていない独自の言語プロバイダーでオーバーライドし、このサポートされていないプロバイダーの分析を実行する。
2.5.1. 選択したサポートされている言語プロバイダーに対して多言語アプリケーションを分析する
Migration Toolkit for Applications (MTA) CLI を使用して多言語アプリケーションを分析する場合、分析の実行対象とするアプリケーション言語に応じて、サポートされている言語プロバイダーを明示的に設定できます。
前提条件
- 最新バージョンの MTA CLI が実行中である。
手順
分析対象としてサポートされている言語プロバイダーをリスト表示します。
mta-cli analyze --list-providers
$ mta-cli analyze --list-providers
Copy to Clipboard Copied! 選択した言語プロバイダーに対してアプリケーション分析を実行します。
mta-cli analyze --input <_path_to_the_source_repository_> --output <_path_to_the_output_directory_> --provider <_language_provider_> --rules <_path_to_custom_rules_>
$ mta-cli analyze --input <_path_to_the_source_repository_> --output <_path_to_the_output_directory_> --provider <_language_provider_> --rules <_path_to_custom_rules_>
Copy to Clipboard Copied! --provider
オプションを設定しないと、サポートされていないプロバイダーが検出されるため、分析が失敗する可能性があることに注意してください。--provider
を設定しなくても分析が完了するのは、検出されたすべてのプロバイダーがサポートされている場合だけです。
2.5.2. サポートされていない言語プロバイダーに対して多言語アプリケーションを分析する
Migration Toolkit for Applications (MTA) CLI を使用して多言語アプリケーションを分析する場合、サポートされていない言語プロバイダーに対して分析を実行できます。これを行うには、--override-provider-settings
オプションを使用して、サポートされている既存の言語プロバイダーを、サポートされていない独自の言語プロバイダーでオーバーライドする必要があります。
サポートされているプロバイダーをオーバーライドする前に、サポートされていない言語プロバイダーの設定ファイルを作成する必要があります。
前提条件
- サポートされていない言語プロバイダー用の設定ファイルを作成した。
手順
サポートされている既存の言語プロバイダーを、サポートされていないプロバイダーでオーバーライドします。
mta-cli analyze --override-provider-settings <path_to_configuration_file> --output=<path_to_the_output_directory> --rules <path_to_custom_rules>
$ mta-cli analyze --override-provider-settings <path_to_configuration_file> --output=<path_to_the_output_directory> --rules <path_to_custom_rules>
Copy to Clipboard Copied!
第3章 レポートの確認
ブラウザーを使用して、レポート出力ディレクトリーにある index.html
ファイルを開きます。これにより、処理されたアプリケーションのリストが表示されます。各行には、ストーリーポイント、インシデントの数、アプリケーションで発生したテクノロジーの概要が含まれます。
図3.1 アプリケーションリスト

新しいルールが MTA に追加されると、インシデントと予測されるストーリーポイントが変わります。この値は、このアプリケーションをテストする際に表示される値と一致しない場合があります。
以下の表は、このメインの MTA ランディングページからアクセスできるレポートおよびページのリストです。アプリケーションの名前 jee-example-app-1.0.0.ear をクリックして、アプリケーションレポートを表示します。
ページ | アクセス方法 |
---|---|
アプリケーション | アプリケーションの名前をクリックします。 |
Technologies レポート | ページ上部にある Technologies リンクをクリックします。 |
複数のアプリケーションで共有されるアーカイブ | Archives shared by multiple applications リンクをクリックします。このリンクは、複数のアプリケーションに共有アーカイブがある場合にのみ利用できることに注意してください。 |
ルールプロバイダー実行の概要 | ページの下部にある Rule providers execution overview リンクをクリックします。 |
アプリケーションが、他の分析済みアプリケーションとアーカイブを共有している場合は、共有アーカイブからのストーリーポイントの数と、このアプリケーションに固有のストーリーポイントの数が表示されることに注意してください。
図3.2 共有アーカイブ

アプリケーション間で共有されるアーカイブに関する情報は、複数のアプリケーションで共有されるアーカイブレポートを参照してください。
3.1. アプリケーションレポート
3.1.1. ダッシュボード
Application List でアプリケーション名をクリックして、レポートランディングページからこのレポートにアクセスします。
ダッシュボードでは、アプリケーションの移行作業全体の概要が表示されます。つまり、以下のようになります。
- カテゴリー別のインシデントおよびストーリーポイント
- 提案された変更の作業レベル別のインシデントおよびストーリーポイント
- パッケージ別のインシデント
図3.3 ダッシュボード

上部のナビゲーションバーには、このアプリケーションの移行に関する追加の詳細を含むさまざまなレポートがリスト表示されます。現在のアプリケーションに適用可能なレポートのみが利用できることに注意してください。
レポート | 説明 |
---|---|
Issues | 注意が必要なすべての問題を簡潔に説明します。 |
Insights | アプリケーションで使用されているテクノロジーと、コード内でのその使用状況に関する情報を提供します。ただし、Insights は移行には影響しません。 |
Application Details | 移行時に注意する必要がある可能性のあるアプリケーション内で見つかったすべてのリソースの詳細を説明します。 |
Technologies | 機能を基にグループ化されたすべての埋め込みライブラリーを表示します。これにより、各アプリケーションで使用されるテクノロジーを迅速に表示できます。 |
Dependencies | アプリケーション内にある Java パッケージの依存関係をすべて表示します。 |
Unparsable |
MTA が想定される形式で解析できなかったすべてのファイルを示しています。たとえば、 |
Remote Services | アプリケーション内で見つかったすべてのリモートサービス参照を表示します。 |
EJB | アプリケーション内の EJB のリストが含まれます。 |
JBPM | 分析中に見つかった JBPM 関連のリソースすべてが含まれます。 |
JPA | アプリケーションで見つかったすべての JPA 関連リソースの詳細が含まれます。 |
Hibernate | アプリケーションで検出されたすべての Hibernate 関連リソースの詳細が含まれています。 |
Server Resources | 入力アプリケーションですべてのサーバーリソース (JNDI リソースなど) を表示します。 |
Spring Beans | 分析中に見つかった Spring Bean の一覧が含まれます。 |
Hard-Coded IP Addresses | アプリケーションで見つかったすべてのハードコーディングされた IP アドレスの一覧を提供します。 |
Ignored Files |
特定のルールおよび MTA 設定に基づいてアプリケーションに含まれるファイルを一覧表示し、処理されませんでした。詳細は、 |
About | 現在のバージョンの MTA を説明し、詳細なヘルプリンクを提供します。 |
3.1.2. Issues レポート
Issues リンクをクリックして、Dashboard からこのレポートにアクセスします。
このレポートには、選択した移行パスによって発生したすべての問題に関する詳細情報が含まれます。発生した問題ごとに以下の情報が提供されます。
- 問題を要約するタイトル。
- インシデントの合計数、または問題の発生回数。
- 問題の 1 つのインスタンスを解決するルールのストーリーポイント。
- この問題を解決するための推定作業量レベル。
- 発生したすべてのインスタンスを解決するための全ストーリーポイント。これは、インシデントごとのストーリーポイントで検出されたインシデントの数を掛けて計算されます。
図3.4 Issues レポート

報告された各問題は、タイトルをクリックして追加情報を取得することで拡張できます。以下の情報が含まれています。
- インシデントが発生したファイルの一覧と、各ファイル内のインシデントの数。ファイルが Java ソースファイルの場合は、ファイル名をクリックすると、対応するソースレポートが表示されます。
- 問題の詳細情報。この説明は問題の概要を示し、既知の解決策を提供し、問題または解決策に関するサポートドキュメントを参照します。
- 問題を生成したルールへの Show Rule というタイトルの直接リンク。
図3.5 問題の拡張

デフォルトでは、問題は 4 つのカテゴリーに分類されます。これらのカテゴリーに関する情報は、カテゴリーを参照してください。
3.1.3. Insights
Insights はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
以前は、作業量がゼロのルールによって生成された違反が、静的レポートに問題としてリストされていました。このような違反は、Insights としてリストされるようになりました。問題は一般的なルールによって生成されますが、文字列タグはタグ付けルールによって生成されます。文字列タグは、テクノロジーが存在することは示しますが、コードの場所は示しません。Insights の導入により、アプリケーションで使用されているテクノロジーと、コード内でのその使用状況を確認できるようになりました。
たとえば、今回の移行には影響しない、コード内の非推奨の API の使用を検索するルールなどがあります。そのような API を追跡し、将来必要になったときに修正できます。
Insights は、問題とは異なり、移行を正常に実行するために修正する必要はありません。Insights は、正の作業量値とカテゴリーが割り当てられていないルールによって生成されます。Insights には、メッセージやタグがある場合があります。
Insights は、該当または存在する場合、自動的に生成されます。現在、MTA は、CLI を使用したアプリケーション分析実行時の Insights 生成をサポートしています。
Insights は、静的レポートの Insights タブで表示できます。

例: 作業量が未定義のタグ付けルールによって生成された Insights
- customVariables: [] description: Embedded library - Apache Wicket labels: - konveyor.io/include=always links: [] ruleID: mvc-01000 tag: - Apache Wicket - Embedded library - Apache Wicket when: builtin.file: pattern: .*wicket.*\.jar
- customVariables: []
description: Embedded library - Apache Wicket
labels:
- konveyor.io/include=always
links: []
ruleID: mvc-01000
tag:
- Apache Wicket
- Embedded library - Apache Wicket
when:
builtin.file:
pattern: .*wicket.*\.jar
例: 作業量がゼロのタグ付け以外のルールによって生成された Insights
- category: potential customVariables: [] description: RESTful Web Services @Context annotation has been deprecated effort: 0 message: Future versions of this API will no longer support `@Context` and related types such as `ContextResolver`. ruleID: jakarta-ws-rs-00001 when: java.referenced: location: ANNOTATION pattern: jakarta.ws.rs.core.Context
- category: potential
customVariables: []
description: RESTful Web Services @Context annotation has been deprecated
effort: 0
message: Future versions of this API will no longer support `@Context` and related
types such as `ContextResolver`.
ruleID: jakarta-ws-rs-00001
when:
java.referenced:
location: ANNOTATION
pattern: jakarta.ws.rs.core.Context
3.1.4. Application Details レポート
Application Details リンクをクリックして、ダッシュボードからこのレポートにアクセスします。
レポートには、ストーリーポイント、パッケージごとの Java インシデント、およびアプリケーションで見つかったテクノロジーの発生回数が記載されます。以下は、移行プロセス中に生成されたアプリケーションメッセージの表示です。最後に、プロセス中に分析される各アーカイブにこの情報の内訳が表示されます。
図3.6 Application Details レポート

jee-example-app-1.0.0.ear/jee-example-services.jar
をデプロイメントして、ストーリーポイント、パッケージごとの Java インシデント、およびこのアーカイブで見つかったテクノロジーの発生数を確認します。この概要は、移行に割り当てられたストーリーポイントの合計で始まり、アーカイブ内の各ファイルに必要な変更の詳細を示す表が続きます。レポートには以下のコラムが含まれます。
列名 | 説明 |
---|---|
Name | 分析されるファイルの名前。 |
Technology | 分析するファイルのタイプ (例: Decompiled Java File または Properties)。 |
Issues | レビューまたは変更が必要なコードのエリアに関する警告。 |
Story Points | ファイルの移行に必要な作業レベル。 |
アーカイブがアプリケーションに複数回複製されると、そのアーカイブはレポートで 1 回だけリスト表示され、[Included multiple times]
でタグ付けされます。
図3.7 アプリケーションでのアーカイブの重複

アプリケーション内で重複するアーカイブのストーリーポイントは、そのアプリケーションの合計ストーリーポイント数に 1 回だけカウントされます。
3.1.5. Technologies レポート
Technologies リンクをクリックして、ダッシュボードからこのレポートにアクセスします。
レポートには、解析されたアプリケーションで機能別にグループ化されたテクノロジーがリスト表示されます。これは、アプリケーションに含まれるテクノロジーの概要であり、各アプリケーションの目的を素早く理解できるように設計されています。
以下の図は、jee-example-app
で使用されるテクノロジーを示しています。
図3.8 アプリケーションのテクノロジー

3.1.6. ソースレポート
ソースレポートには、移行の問題が検出されたソースファイルのコンテキストで表示されます。
図3.9 ソースレポート

3.2. Technologies レポート
Technologies リンクをクリックして、レポートランディングページからこのレポートにアクセスします。
このレポートは、解析されたアプリケーションに使用されたテクノロジーを機能別にまとめたリストを提供します。これは、テクノロジーがどのように分散されているかを示し、通常は、多数のアプリケーションを分析してアプリケーションをグループ化し、パターンを特定した後にレビューされます。また、各アプリケーションのサイズ、ライブラリー数、およびストーリーポイントの合計も表示されます。
Markup などの任意のヘッダーをクリックすると、結果が降順に並べ替えられます。同じヘッダーを再度選択すると、結果が昇順になります。現在選択されているヘッダーは、並べ替えの方向を示す方向矢印の横に太字で示されます。
図3.10 複数のアプリケーションで使用されるテクノロジー

第4章 MTA パフォーマンスの最適化
MTA のパフォーマンスは、ハードウェア設定、アプリケーション内のファイルの数と種類、評価するアプリケーションのサイズと数、アプリケーションにソースコードとコンパイル済みコードのどちらが含まれているかなど、多くの要因に依存します。たとえば、10 MB を超えるファイルは、処理に時間がかかる場合があります。
一般に、MTA はクラスの逆コンパイルに約 40%、ルールの実行に 40% の時間を費やし、残りの時間は他のタスクの処理とレポートの生成に費やします。本セクションでは、MTA のパフォーマンスを改善するために実行できる内容を説明します。
4.1. アプリケーションのデプロイおよび実行
ハードウェアをアップグレードする前に、これらの提案を試してください。
- 可能であれば、アーカイブではなくソースコードに対して MTA を実行します。これにより、追加の JAR およびアーカイブをコンパイルする必要がなくなります。
- 大規模なアプリケーションを分析する際に ulimit を増やします。Red Hat Enterprise Linux でこれを行う方法は、この Red Hat ナレッジアーティクル を参照してください。
- ラップトップまたはデスクトップマシンよりも優れたリソースを持つサーバーにアクセスできる場合は、そのサーバーで MTA を実行することを検討してください。
4.2. ハードウェアのアップグレード
上記のアプリケーションとコマンドラインの提案がパフォーマンスを改善しない場合は、ハードウェアをアップグレードが必要な場合があります。
- ラップトップまたはデスクトップよりも優れたリソースを持つサーバーにアクセスできる場合は、そのサーバーで MTA を実行することを検討してください。
- 逆コンパイルが必要な非常に大規模なアプリケーションには、大容量のメモリーが必要です。8 GB の RAM が推奨されます。これにより、3 ~ 4 GB の RAM が JVM で使用できるようになります。
- シングルコアまたはデュアルコアからクアッドコアの CPU プロセッサーへのアップグレードにより、パフォーマンスが向上します。
- ディスク領域と断片化はパフォーマンスに影響を及ぼす可能性があります。高速ディスク、特にソリッドステートドライブ (SSD) で、4 GB を超える最適化されたディスク領域があると、パフォーマンスが向上します。
付録A 参考資料
A.1. MTA コマンドライン引数
以下は、利用可能な MTA コマンドライン引数の詳細な説明です。
スクリプトから実行した場合など、プロンプトを表示せずに MTA コマンドを実行するには、以下の引数を使用する必要があります。
-
--overwrite
-
--input
-
--target
例A.1 MTA CLI 引数
コマンド | 型 | 説明 |
---|---|---|
| 既知のオープンソースライブラリーを分析するフラグ。 | |
| 複数の分析コマンドを一括で実行するためのフラグ。これにより、静的なレポートが結合されます。 | |
| Integer |
各インシデントの出力に追加するソースコードの行数を定義するフラグ (デフォルト: |
| String Array | 依存関係のディレクトリーのフラグ。 |
| Boolean |
分析でデフォルトのルールセットを実行するためのフラグ (デフォルト: |
| 分析のヘルプを出力するフラグ | |
| String | Hyper Text Transfer Protocol (HTTP) プロキシー文字列 URL のフラグ |
| String | Hypertext Transfer Protocol Secure (HTTPS) プロキシー文字列 URL のフラグ |
| String |
カスタム変数に基づきインシデントを選択するためのフラグ (例: |
| String | アプリケーションのソースコードまたはバイナリーへのパスのフラグ。詳細は、入力の指定 を参照してください。 |
| String | トレースを収集するための jaeger エンドポイントのフラグ。 |
| 分析と依存関係の出力を JSON として作成するためのフラグ。 | |
| String | 指定されたラベルセレクター式に基づきルールを実行するためのフラグ。 |
| サポートされている使用可能なプロバイダーをリスト表示するフラグ。 | |
| 使用可能な移行ソースのルールをリスト表示するフラグ。 | |
| 使用可能な移行ターゲットのルールをリスト表示するフラグ。 | |
| string | 使用するカスタム Maven 設定ファイルへのパスのフラグ |
| String |
分析モードのフラグ。 |
| String | プロキシーを通過させない URL のフラグ (プロキシーにのみ関連) |
| String | 分析出力のディレクトリーへのパスのフラグ。詳細は、出力ディレクトリーの指定 を参照してください。 |
| String | プロバイダー設定をオーバーライドするためのフラグ。分析 Pod はホストネットワーク上で実行され、プロバイダーは起動されません。 |
|
出力ディレクトリーを上書きするためのフラグ。この引数を指定せず、 | |
| String Array | 実行するプロバイダーを指定するためのフラグ。 |
| String Array |
ルールファイルを格納するファイル名またはディレクトリーを指定するためのフラグ。追加のルールがある場合は複数回使用します (例: |
| コンテナーを使用せずにローカルシステムで直接分析を実行するためのローカルフラグ (Java および Maven 用) | |
| 静的レポートを生成しないためのフラグ。 | |
| String Array |
分析で考慮するソーステクノロジーのフラグ。追加のソースがある場合は複数回使用します (例: |
| String Array |
分析で考慮するターゲットテクノロジーのフラグ。追加のターゲットがある場合は複数回使用します (例: |
A.1.1. 入力の指定
分析する 1 つ以上のアプリケーションを含むファイルまたはディレクトリーへのパスのスペースで区切られたリスト。この引数は必須です。
使用方法
--input <INPUT_ARCHIVE_OR_DIRECTORY> [...]
--input <INPUT_ARCHIVE_OR_DIRECTORY> [...]
--input
引数に指定された入力ファイルタイプがファイルであるかディクショナリーであるかに応じて、指定された追加の引数に応じて次のように評価されます。
- ディレクトリー
-
--sourceMode
: ディレクトリーは単一のアプリケーションとして評価されます。
-
- ファイル
-
--sourceMode
: ファイルは圧縮されたプロジェクトとして評価されます。
-
A.1.2. 出力ディレクトリーの指定
MTA が生成したレポート情報を出力するディレクトリーへのパスを指定します。
使用方法
--output <OUTPUT_REPORT_DIRECTORY>
--output <OUTPUT_REPORT_DIRECTORY>
-
省略すると、レポートは
<INPUT_ARCHIVE_OR_DIRECTORY>.report
ディレクトリーに生成されます。 出力ディレクトリーが存在する場合は次の質問が表示され、デフォルトの回答は
N
になります。Overwrite all contents of "/home/username/<OUTPUT_REPORT_DIRECTORY>" (anything already in the directory will be deleted)? [y,N]
Overwrite all contents of "/home/username/<OUTPUT_REPORT_DIRECTORY>" (anything already in the directory will be deleted)? [y,N]
Copy to Clipboard Copied!
ただし、--overwrite
引数を指定すると、MTA はディレクトリーの削除と再作成を続行します。詳細は、この引数の説明を参照してください。
A.1.3. ソーステクノロジーの設定
移行元の 1 つ以上のソーステクノロジー、サーバー、プラットフォーム、またはフレームワークのスペース区切りのリスト。この引数を --target
引数と組み合わせて使用することで、使用するルールセットを決定できます。--listSourceTechnologies
引数を使用して、利用可能なソースをリスト表示します。
使用方法
--source <SOURCE_1> <SOURCE_2>
--source <SOURCE_1> <SOURCE_2>
--source
引数は、Maven バージョン範囲の構文 に続くバージョンサポートを提供するようになりました。これは、指定されたバージョンに一致するルールセットのみを実行するように MTA に指示します (例: --source eap:5
)。
JBoss EAP に移行する場合は、バージョン (例: eap:6
) を指定してください。eap
のみを指定すると、移行パスに関連しないものを含め、すべてのバージョンの JBoss EAP にルールセットが実行されます。
適切な JBoss EAP バージョンは、Migration Toolkit for Applications の概要 の サポートされる移行パス を参照してください。
A.1.4. ターゲットテクノロジーの設定
移行先の 1 つ以上のターゲットテクノロジー、サーバー、プラットフォーム、またはフレームワークのスペース区切りのリスト。この引数を --source
引数と組み合わせて使用することで、使用するルールセットを決定できます。このオプションを指定しないと、ターゲットを選択するように求められます。--listTargetTechnologies
引数を使用して、利用可能なターゲットをリスト表示します。
使用方法
--target <TARGET_1> <TARGET_2>
--target <TARGET_1> <TARGET_2>
--target
引数は、Maven バージョン範囲の構文 に続くバージョンサポートを提供するようになりました。これは、指定されたバージョンに一致するルールセットのみを実行するように MTA に指示します (例: --target eap:7
)。
A.2. サポート対象のテクノロジータグ
MTA 7.2.3 では、以下のテクノロジープレビュータグがサポートされています。
- 0MQ Client
- 3scale
- Acegi Security
- AcrIS Security
- ActiveMQ library
- Airframe
- Airlift Log Manager
- AKKA JTA
- Akka Testkit
- Amazon SQS Client
- AMQP Client
- Anakia
- AngularFaces
- ANTLR StringTemplate
- AOP Alliance
- Apache Accumulo Client
- Apache Aries
- Apache Commons JCS
- Apache Commons Validator
- Apache Flume
- Apache Geronimo
- Apache Hadoop
- Apache HBase Client
- Apache Ignite
- Apache Karaf
- Apache Mahout
- Apache Meecrowave JTA
- Apache Sirona JTA
- Apache Synapse
- Apache Tapestry
- Apiman
- Applet
- Arquillian
- AspectJ
- Atomikos JTA
- Avalon Logkit
- Axion Driver
- Axis
- Axis2
- BabbageFaces
- Bean Validation
- BeanInject
- Blaze
- Blitz4j
- BootsFaces
- Bouncy Castle
- ButterFaces
- Cache API
- Cactus
- Camel
- Camel Messaging Client
- Camunda
- Cassandra Client
- CDI
- Cfg Engine
- Chunk Templates
- Cloudera
- Coherence
- Common Annotations
- Composite Logging
- Composite Logging JCL
- Concordion
- CSS
- Cucumber
- Dagger
- DbUnit
- Demoiselle JTA
- Derby Driver
- Drools
- DVSL
- Dynacache
- EAR Deployment
- Easy Rules
- EasyMock
- Eclipse RCP
- EclipseLink
- Ehcache
- EJB
- EJB XML
- Elasticsearch
- Entity Bean
- EtlUnit
- Eureka
- Everit JTA
- Evo JTA
- Feign
- File system Logging
- FormLayoutMaker
- FreeMarker
- Geronimo JTA
- GFC Logging
- GIN
- GlassFish JTA
- Google Guice
- Grails
- Grapht DI
- Guava Testing
- GWT
- H2 Driver
- Hamcrest
- Handlebars
- HavaRunner
- Hazelcast
- Hdiv
- Hibernate
- Hibernate Cfg
- Hibernate Mapping
- Hibernate OGM
- HighFaces
- HornetQ Client
- HSQLDB Driver
- HTTP Client
- HttpUnit
- ICEfaces
- Ickenham
- Ignite JTA
- Ikasan
- iLog
- Infinispan
- Injekt for Kotlin
- Iroh
- Istio
- Jamon
- Jasypt
- Java EE Batch
- Java EE Batch API
- Java EE JACC
- Java EE JAXB
- Java EE JAXR
- Java EE JSON-P
- Java Transaction API
- JavaFX
- JavaScript
- Javax Inject
- JAX-RS
- JAX-WS
- JayWire
- JBehave
- JBoss Cache
- JBoss EJB XML
- JBoss logging
- JBoss Transactions
- JBoss Web XML
- JBossMQ Client
- JBPM
- JCA
- Jcabi Log
- JCache
- JCunit
- JDBC
- JDBC datasources
- JDBC XA datasources
- Jersey
- Jetbrick Template
- Jetty
- JFreeChart
- JFunk
- JGoodies
- JMock
- JMockit
- JMS Connection Factory
- JMS Queue
- JMS Topic
- JMustache
- JNA
- JNI
- JNLP
- JPA entities
- JPA Matchers
- JPA named queries
- JPA XML
- JSecurity
- JSF
- JSF Page
- JSilver
- JSON-B
- JSP Page
- JSTL
- JTA
- Jukito
- JUnit
- Ka DI
- Keyczar
- Kibana
- KLogger
- Kodein
- Kotlin Logging
- KouInject
- KumuluzEE JTA
- LevelDB Client
- Liferay
- LiferayFaces
- Lift JTA
- Log.io
- Log4J
- Log4s
- Logback
- Logging Utils
- Logstash
- Lumberjack
- Macros
- Magicgrouplayout
- Management EJB
- MapR
- MckoiSQLDB Driver
- Memcached
- Message (MDB)
- Micro DI
- Micrometer
- Microsoft SQL Driver
- MiGLayout
- MinLog
- Mixer
- Mockito
- MongoDB Client
- Monolog
- Morphia
- MRules
- Mule
- Mule Functional Test Framework
- MultithreadedTC
- Mycontainer JTA
- MyFaces
- MySQL Driver
- Narayana Arjuna
- Needle
- Neo4j
- NLOG4J
- Nuxeo JTA/JCA
- OACC
- OAUTH
- OCPsoft Logging Utils
- OmniFaces
- OpenFaces
- OpenPojo
- OpenSAML
- OpenWS
- OPS4J Pax Logging Service
- Oracle ADF
- Oracle DB Driver
- Oracle Forms
- Orion EJB XML
- Orion Web XML
- Oscache
- OTR4J
- OW2 JTA
- OW2 Log Util
- OWASP CSRF Guard
- OWASP ESAPI
- Peaberry
- Pega
- Persistence units
- Petals EIP
- PicketBox
- PicketLink
- PicoContainer
- Play
- Play Test
- Plexus Container
- Polyforms DI
- Portlet
- PostgreSQL Driver
- PowerMock
- PrimeFaces
- Properties
- Qpid Client
- RabbitMQ Client
- RandomizedTesting Runner
- Resource Adapter
- REST Assured
- Restito
- RichFaces
- RMI
- RocketMQ Client
- Rythm Template Engine
- SAML
- Santuario
- Scalate
- Scaldi
- Scribe
- Seam
- Security Realm
- ServiceMix
- Servlet
- ShiftOne
- Shiro
- Silk DI
- SLF4J
- Snippetory Template Engine
- SNMP4J
- Socket handler logging
- Spark
- Specsy
- Spock
- Spring
- Spring Batch
- Spring Boot
- Spring Boot Actuator
- Spring Boot Cache
- Spring Boot Flo
- Spring Cloud Config
- Spring Cloud Function
- Spring Data
- Spring Data JPA
- spring DI
- Spring Integration
- Spring JMX
- Spring Messaging Client
- Spring MVC
- Spring Properties
- Spring Scheduled
- Spring Security
- Spring Shell
- Spring Test
- Spring Transactions
- Spring Web
- SQLite Driver
- SSL
- Standard Widget Toolkit (SWT)
- Stateful (SFSB)
- Stateless (SLSB)
- Sticky Configured
- Stripes
- Struts
- SubCut
- Swagger
- SwarmCache
- Swing
- SwitchYard
- Syringe
- Talend ESB
- Teiid
- TensorFlow
- Test Interface
- TestNG
- Thymeleaf
- TieFaces
- tinylog
- Tomcat
- Tornado Inject
- Trimou
- Trunk JGuard
- Twirl
- Twitter Util Logging
- UberFire
- Unirest
- Unitils
- Vaadin
- Velocity
- Vlad
- Water Template Engine
- Web Services Metadata
- Web Session
- Web XML File
- WebLogic Web XML
- Webmacro
- WebSocket
- WebSphere EJB
- WebSphere EJB Ext
- WebSphere Web XML
- WebSphere WS Binding
- WebSphere WS Extension
- Weka
- Weld
- WF Core JTA
- Wicket
- Winter
- WSDL
- WSO2
- WSS4J
- XACML
- XFire
- XMLUnit
- Zbus Client
- Zipkin
A.3. ルールのストーリーポイントについて
A.3.1. ストーリーポイントとは
ストーリーポイント は、アジャイルソフトウェア開発で一般的に使用される抽象メトリックで、機能や変更を実装するのに必要な 作業量 を予測します。
Migration Toolkit for Applications はストーリーポイントを使用して、特定のアプリケーションコンストラクトとアプリケーション全体を移行するために必要な作業のレベルを表現します。必ずしも工数に変換される訳ではありませんが、この値はタスク全体で一貫性を持たせる必要があります。
A.3.2. ルールにおけるストーリーポイントの見積方法
ルールのストーリーポイントの作業レベルを見積もることは複雑です。以下は、ルールに必要な作業レベルを見積もる際に MTA が使用する一般的なガイドラインです。
作業レベル | Story Points | 説明 |
---|---|---|
Information | 0 | 移行の優先度が非常に低いか、優先度のない情報警告。 |
Trivial | 1 | 移行は簡単な変更、または API の変更がないか最小限の変更を伴う単純なライブラリーの交換です。 |
Complex | 3 | 移行タスクに必要な変更は複雑ですが、解決策が文書化されています。 |
Redesign | 5 | 移行タスクでは、API が大幅に変更され、再設計または完全なライブラリーの変更が必要になります。 |
Rearchitecture | 7 | 移行には、コンポーネントまたはサブシステムの完全な再アーカイブが必要です。 |
Unknown | 13 | 移行ソリューションは不明なため、完全な再書き込みが必要になる場合があります。 |
A.3.3. タスクカテゴリー
作業量レベルに加えて、移行タスクを分類してタスクの重大度を示すことができます。次のカテゴリーは、移行作業の優先順位を行えるように、問題をグループ化するために使用されます。
- Mandatory
- 移行を成功させるには、タスクを完了する必要があります。変更が行われないと、生成されるアプリケーションはビルドまたは実行に成功しません。たとえば、ターゲットプラットフォームでサポートされないプロプライエタリー API の置き換え例が含まれます。
- Optional
- 移行タスクが完了しない場合、アプリケーションは動作しますが、結果が最適になるとは限りません。移行時に変更が行われない場合は、移行の完了後すぐにスケジュールに配置することが推奨されます。
- Potential
- 移行プロセス中にタスクを調べる必要があります。しかし、移行を成功させるためにタスクが必須かどうかを判断するのに十分な詳細情報がありません。これの例は、直接互換性のあるタイプがないサードパーティーのプロプライエタリータイプの移行です。
- Information
- タスクは、特定のファイルの存在を通知するために含まれています。これらは、モダナイゼーション作業の一部として検証または変更する必要がある場合がありますが、通常は変更は必要ありません。
タスクの分類に関する詳細は、カスタムルールカテゴリーの使用 を参照してください。
A.4. 関連情報
A.4.1. プロジェクトへの貢献
Migration Toolkit for Applications がほとんどのアプリケーション設定とサーバー設定 (お客様のものを含む) に対応できるように、次の項目にご協力をお願いします。
- jboss-migration-feedback@redhat.com にメールを送信し、MTA 移行ルールが対象とする必要がある内容を知らせる。
- 移行ルールをテストするためのアプリケーションの例を指定する。
移行が困難なアプリケーションコンポーネントおよび問題の領域を特定する。
- 問題がある移行領域について簡単な説明を記入する。
- 移行領域の問題を解決する方法の簡単な説明を記入する。
- アプリケーションで Migration Toolkit for Applications を試行する。問題が発生した場合は必ず報告してください。
Migration Toolkit for Applications ルールリポジトリーに貢献する。
- Migration Toolkit for Applications ルールを記述して、移行プロセスを識別または自動化する。
- 新規ルールのテストを作成します。
詳細は、ルール開発ガイド を参照してください。
プロジェクトのソースコードに貢献する。
- コアルールを作成する。
- MTA のパフォーマンスまたは効率が向上する。
どのレベルの参加でも大歓迎です。
A.4.2. Migration Toolkit for Applications の開発リソース
Migration Toolkit for Applications の開発を理解し、貢献するには、次のリソースを使用してください。
- MTA フォーク: https://developer.jboss.org/en/windup
- Jira 問題トラッカー: https://issues.redhat.com/projects/MTA/issues
- MTA メーリングリスト: jboss-migration-feedback@redhat.com
A.4.3. 問題の報告
MTA は Jira を問題追跡システムとして使用します。MTA の実行で問題が発生した場合は、Jira issue を作成してください。
改訂日時: 2025-06-24