CLI ガイド


Migration Toolkit for Applications 7.3

Migration Toolkit for Applications のコマンドラインインターフェイスを使用してアプリケーションを移行する

Red Hat Customer Content Services

概要

Migration Toolkit for Applications (MTA) のコマンドラインインターフェイス (CLI) を使用すると、さまざまな言語で記述されたアプリケーションの移行とモダナイゼーションの取り組みを評価し、優先順位を付けることができます。CLI を使用して MTA 分析オプションをカスタマイズしたり、外部の自動化ツールと統合したりできます。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。

第1章 MTA コマンドラインインターフェイスの概要

Migration Toolkit for Applications (MTA) コマンドラインインターフェイス (CLI) は、Red Hat OpenShift でのコンテナー化とデプロイメントに対するアプリケーションの適合性を評価するための包括的なルールセットを提供します。MTA CLI を使用すると、さまざまな言語で記述されたアプリケーションの移行とモダナイゼーションの取り組みを評価し、優先順位を付けることができます。たとえば、MTA を使用して、次の言語で記述されたアプリケーションを分析できます。

  • Java
  • Go
  • .NET
  • Node.js
  • Python
重要

.NET 言語で記述されたアプリケーションの分析は、開発者プレビュー機能です。開発者プレビュー機能は、Red Hat ではいかなる形でもサポートされていません。また、機能的には完全ではなく、実稼働環境に対応していません。開発者プレビュー機能は、実稼働ワークロードまたはビジネスクリティカルなワークロードには使用しないでください。開発者プレビュー機能は、Red Hat 製品オファリングに含まれる可能性がある前に、今後の製品機能への早期アクセスを提供し、お客様が機能をテストし、開発プロセス中にフィードバックを提供できるようにします。これらの機能にはドキュメントがない可能性があり、いつでも変更または削除される可能性があり、テストは制限されています。Red Hat は、関連する SLA なしで、開発者プレビュー機能に関するフィードバックを送信する方法を提供する場合があります。

重要

Python および Node.js 言語で記述されたアプリケーションの分析は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

CLI は、他のツールを使用せずに分析を強調表示する多数のレポートを提供します。CLI を使用して MTA 分析オプションをカスタマイズしたり、外部の自動化ツールと統合したりできます。

第2章 サポート対象の MTA 移行パス

Migration Toolkit for Applications (MTA) 分析を実行して、複数のターゲットプラットフォームへの移行に対するアプリケーションの適合性を評価できます。MTA は次の移行パスをサポートしています。

Expand
表2.1 サポート対象の Java 移行パス
ソースプラットフォーム ⇒JBoss EAP 7、8 への移行OpenShift (クラウド対応)OpenJDK 11、17、21Jakarta EE 9Camel 3、4Spring Boot in Red Hat RuntimesQuarkusOpen 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 移行パス

Expand
ソースプラットフォーム ⇒OpenShift (クラウド対応).NET 8.0 への移行

.NET Framework 4.5+ (Windows 専用)

重要

.NET 言語で記述されたアプリケーションの分析は、開発者プレビュー機能です。開発者プレビュー機能は、Red Hat ではいかなる形でもサポートされていません。また、機能的には完全ではなく、実稼働環境に対応していません。開発者プレビュー機能は、実稼働ワークロードまたはビジネスクリティカルなワークロードには使用しないでください。開発者プレビュー機能は、Red Hat 製品オファリングに含まれる可能性がある前に、今後の製品機能への早期アクセスを提供し、お客様が機能をテストし、開発プロセス中にフィードバックを提供できるようにします。これらの機能にはドキュメントがない可能性があり、いつでも変更または削除される可能性があり、テストは制限されています。Red Hat は、関連する SLA なしで、開発者プレビュー機能に関するフィードバックを送信する方法を提供する場合があります。

第3章 MTA コマンドラインインターフェイスのインストール

Migration Toolkit for Applications (MTA) コマンドラインインターフェイス (CLI) を Linux、Windows、または macOS オペレーティングシステムにインストールできます。

注記

Windows 上の Docker で使用するために CLI をインストールすることもできます。ただし、これは開発者プレビュー機能であることに注意してください。

3.1. .zip ファイルを使用した CLI のインストール

公式 MTA ダウンロードページ からダウンロード可能な .zip ファイルを使用して、Migration Toolkit for Applications (MTA) コマンドラインインターフェイス (CLI) をインストールできます。

前提条件

  • registry.redhat.io の Red Hat コンテナーレジストリーの認証。Red Hat は、認証を必要とする registry.redhat.io からコンテナーイメージを配布します。詳細は、Red Hat コンテナーレジストリーの認証 を参照してください。

    注記

    この前提条件はコンテナーレスモードには適用されません。詳細は、コンテナーレスモードでのアプリケーションの分析 を参照してください。

  • Java Development Kit (JDK) バージョン 17 以降がインストールされている。
  • JAVA_HOME 環境変数が設定されている。
  • Maven バージョン 3.9.9 以降をインストールし、そのバイナリーを $PATH 変数に追加した。

手順

  1. MTA ダウンロードページ に移動し、以下のオペレーティングシステム固有の CLI ファイルまたは src ファイルをダウンロードします。

    • mta-7.3.2-cli-linux-amd64.zip
    • mta-7.3.2-cli-linux-arm64.zip
    • mta-7.3.2-cli-darwin-amd64.zip
    • mta-7.3.2-cli-darwin-arm64.zip
    • mta-7.3.2-cli-windows-amd64.zip
    • mta-7.3.2-cli-windows-arm64.zip
    • mta-7.3.2-cli-src.zip
  2. .zip ファイルを $HOME ディレクトリー内の .kantra ディレクトリーに展開します。.zip ファイルを展開すると、mta-cli バイナリーとその他の必要なディレクトリーおよびファイルが作成されます。
  3. mta-cli バイナリーを $PATH 変数に移動します。

    注記

    mta-cli バイナリーは $PATH 変数に含まれる任意のフォルダーに配置できます。または、mta-cli を含むフォルダーを $PATH に追加することもできます。これにより、CLI の使用時に完全パスを指定する必要はありません。

3.2. 非接続環境での CLI のインストール

システムが非接続環境にある場合は、次の操作を実行して Migration Toolkit for Applications (MTA) コマンドラインインターフェイス (CLI) をインストールできます。

  1. 外部のコンピューターを使用して必要なイメージをダウンロードします。
  2. ダウンロードしたイメージを、MTA CLI をインストールするシステムにコピーします。
重要

次の手順はコンテナーモードのみが対象です。

注記

非接続環境での分析出力では、Maven にアクセスしないと依存関係分析が正確に実行されないため、通常、インシデント数が少なくなります。

前提条件

  • Migration Toolkit for Applications Red Hat Developer ページ から必要な MTA CLI バイナリーをダウンロードした。
  • システムに Podman ツールがインストールされている。
  • Java アプリケーションの分析では、--run-local フラグを false に設定して、コンテナーランタイムの使用を有効にした。

    --run-local=false
    Copy to Clipboard Toggle word wrap

    Java 以外のアプリケーションの分析は、デフォルトでコンテナーモードで実行されます。

手順

  1. 接続されたデバイスで、次の手順を実行します。

    1. registry.redhat.io に対して認証します。

      $ podman login registry.redhat.io
      Copy to Clipboard Toggle word wrap
    2. mta-cli バイナリーファイルを実行します。バイナリーファイルは必要なプロバイダーイメージを取得します。以下に例を示します。

      $ mta-cli analyze
      Copy to Clipboard Toggle word wrap
      重要

      このコマンドは必要なイメージのみをプルします。たとえば、Java イメージを必要とするコマンドを実行すると、.NET イメージはプルされません。

    3. イメージリストを表示します。

      $ podman images
      REPOSITORY                                                        TAG         IMAGE ID      CREATED       SIZE
      registry.redhat.io/mta/mta-generic-external-provider-rhel9        7.3.1       8b8d7fa14570  13 days ago   692 MB
      registry.redhat.io/mta/mta-cli-rhel9                              7.3.1       45422a12d936  13 days ago   1.6 GB
      registry.redhat.io/mta/mta-java-external-provider-rhel9           7.3.1       4d6d0912a38b  13 days ago   715 MB
      registry.redhat.io/mta/mta-dotnet-external-provider-rhel9         7.3.1       66ec9fc51408  13 days ago   1.27 GB
      Copy to Clipboard Toggle word wrap
    4. イメージを保存します。

      $ podman save <image_ID> -o <image_name>.image
      Copy to Clipboard Toggle word wrap
    5. イメージを USB ドライブにコピーするか、非接続デバイスのファイルシステムに直接コピーします。
  2. 非接続デバイスで、次のように入力します。

    $ podman load --input <image_name>.image
    Copy to Clipboard Toggle word wrap

3.3. Windows 上の Docker で使用するための CLI のインストール

Microsoft Windows 上で .NET Framework バージョン 4.5 以降を使用して構築されたアプリケーションをクロスプラットフォーム .NET 8.0 に移行するには、Windows 上の Docker で使用するための CLI をインストールする必要があります。これを行うには、最初に Windows コンテナーを使用するように Docker を設定する必要があります。

前提条件

  • Windows 11+ 64 ビットバージョン 21H2 以降を搭載したホスト。
  • Docker Desktop for Windows インストールプログラムをダウンロードした。詳細は、Install Docker Desktop on Windows を参照してください。

手順

  1. 管理者権限で PowerShell を開きます。
  2. Hyper-V がインストールされ、有効になっていることを確認します。

    PS C:\Users\<user_name>> Enable-WindowsOptionalFeature -Online ` -FeatureName Microsoft-Hyper-V-All
    Copy to Clipboard Toggle word wrap
    PS C:\Users\<user_name>> Enable-WindowsOptionalFeature -Online ` -FeatureName Containers
    Copy to Clipboard Toggle word wrap
    注記

    変更を有効にするには、Windows を再起動する必要がある場合があります。

  3. Windows に Docker Desktop をインストールします。

    1. Docker_Desktop_Installer.exe ファイルをダブルクリックしてインストーラーを実行します。

      デフォルトでは、Docker Desktop は C:\Program Files\Docker\Docker パスにインストールされます。

    2. Docker が Linux コンテナーではなく Windows コンテナーをバックエンドとして実行するようにしてください。

      1. Windows タスクバーで、Docker アイコンを右クリックします。
      2. Switch to Windows containers をクリックします。
  4. PowerShell で、MTA 用のフォルダーを作成します。

    PS C:\Users\<user_name>> mkdir C:\Users\<user_name>\MTA
    Copy to Clipboard Toggle word wrap
  5. mta-7.3.2-cli-windows.zip ファイルを MTA フォルダーに展開します。

    PS C:\Users\<user_name>> cd C:\Users\<user_name>\Downloads
    Copy to Clipboard Toggle word wrap
    PS C:\Users\<user_name>> Expand-Archive ` -Path "{ProductShortNameLower}-{ProductVersion}-cli-windows.zip" ` -DestinationPath "C:\Users\<user_name>\MTA"
    Copy to Clipboard Toggle word wrap
  6. Docker が Windows コンテナーを実行していることを確認し、OS/Archwindows/amd64 に設定されていることを確認します。

    PS C:\Users\<user_name>> docker version
    Copy to Clipboard Toggle word wrap
    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
    Copy to Clipboard Toggle word wrap
  7. Docker を使用するには、CONTAINER_TOOL 環境変数を設定します。

    PS C:\Users\<user_name>> $env:CONTAINER_TOOL="C:\Windows\system32\docker.exe"
    Copy to Clipboard Toggle word wrap
  8. アップストリームの dotnet-external-provider を使用するように DOTNET_PROVIDER_IMG 環境変数を設定します。

    PS C:\Users\<user_name>> $env:DOTNET_PROVIDER_IMG="quay.io/konveyor/dotnet-external-provider:v0.5.0"
    Copy to Clipboard Toggle word wrap
  9. アップストリームイメージを使用するように RUNNER_IMG 環境変数を設定します。

    PS C:\Users\<user_name>> $env:RUNNER_IMG="quay.io/konveyor/kantra:v0.5.0"
    Copy to Clipboard Toggle word wrap

第4章 MTA コマンドラインインターフェイスを使用した Java アプリケーションの分析

シナリオに応じて、Migration Toolkit for Applications (MTA) CLI を使用して次のアクションを実行できます。

  • 単一のアプリケーションに対して分析を実行します。
  • 複数のアプリケーションに対して分析を実行します。

    • 7.1.0 より前のバージョンの MTA では、一連の --analyze コマンドを入力できます。各コマンドはアプリケーションに対して実行し、それぞれ個別のレポートが生成されます。詳細は、アプリケーションに対する MTA CLI の実行 を参照してください。
    • MTA バージョン 7.1.0 以降では、--bulk オプションを使用して複数のアプリケーションを一度に分析し、単一のレポートを生成できます。この機能は開発者プレビュー機能のみであることに注意してください。詳細は、複数のアプリケーションの分析 を参照してください。
重要

MTA バージョン 7.2.0 以降では、コンテナーレスモードで Java アプリケーションのアプリケーション分析を実行できます。このオプションはデフォルトで設定されており、すべての要件が満たされている場合にのみ、自動的に使用されることに注意してください。詳細は、コンテナーレスモードでのアプリケーションの分析 を参照してください。

ただし、Java 以外の言語でアプリケーションを分析 (例: 変換コマンド を使用) する場合は、コンテナーを使用する必要があります。

注記

非接続環境での分析出力では、Maven にアクセスしないと依存関係分析が正確に実行されないため、通常、インシデント数が少なくなります。

MTA CLI は analyzer-lsp を使用したソースコードの実行とバイナリー分析をサポートします。analyzer-lsp は、言語プロバイダーを使用してルールを評価するツールです。

4.1. 単一のアプリケーションの分析

Migration Toolkit for Applications (MTA) CLI を使用して、1 つのアプリケーションのアプリケーション分析を実行できます。

注記

特に依存関係がバイナリー内に組み込まれていない場合は、分析中に依存関係のリストを、コンパイルされた Java バイナリーから常に展開できるわけではありません。

手順

  1. オプション: 分析に利用可能なターゲットテクノロジーをリストします。

    $ mta-cli analyze --list-targets
    Copy to Clipboard Toggle word wrap
  2. 分析を実行します。

    $ mta-cli analyze --input <path_to_input> --output <path_to_output> --source <source_name> --target <target_name>
    Copy to Clipboard Toggle word wrap

    次の引数を指定します。

    • --input: 評価するアプリケーション。
    • --output: 生成されたレポートの出力ディレクトリー。mta-cli analyze は、次の分析レポートを作成します。

      ./
      ├── analysis.log
      ├── dependencies.yaml
      ├── output.yaml
      ├── shim.log
      ├── static-report
      └── static-report.log
      Copy to Clipboard Toggle word wrap
    • --source: アプリケーション移行のソーステクノロジー (例: weblogic)。
    • --target: アプリケーション移行のターゲットテクノロジー (例: eap8)。
  3. 生成された分析レポートにアクセスします。

    1. mta-cli analyze コマンドの出力で、index.html 分析レポートファイルへのパスをコピーします。

      Report created: <output_report_directory>/index.html
                	Access it at this URL: file:///<output_report_directory>/index.html
      Copy to Clipboard Toggle word wrap
    2. 選択したブラウザーへのパスを貼り付けます。

    または、Ctrl を押しながらレポートファイルへのパスをクリックします。

4.2. 複数のアプリケーションの分析

Migration Toolkit for Applications (MTA) CLI を使用すると、複数のアプリケーションのアプリケーション分析を一度に実行し、結合レポートを生成できます。

重要

複数のアプリケーションの分析は、開発者プレビュー機能です。開発者プレビュー機能は、Red Hat ではいかなる形でもサポートされていません。また、機能的には完全ではなく、実稼働環境に対応していません。開発者プレビュー機能は、実稼働ワークロードまたはビジネスクリティカルなワークロードには使用しないでください。開発者プレビュー機能は、Red Hat 製品オファリングに含まれる可能性がある前に、今後の製品機能への早期アクセスを提供し、お客様が機能をテストし、開発プロセス中にフィードバックを提供できるようにします。これらの機能にはドキュメントがない可能性があり、いつでも変更または削除される可能性があり、テストは制限されています。Red Hat は、関連する SLA なしで、開発者プレビュー機能に関するフィードバックを送信する方法を提供する場合があります。

手順

  1. 複数のアプリケーションに対して分析を実行します。

    重要

    分析コマンドごとに 1 つの入力を指定する必要がありますが、すべての入力に対して同じ出力ディレクトリーを指定するようにしてください。

    たとえば、サンプルアプリケーション ABC を分析するには、次のコマンドを入力します。

    1. 入力 A には次のように指定します。

      $ mta-cli analyze --bulk --input <path_to_input_A> --output <path_to_output_ABC> --source <source_A> --target <target_A>
      Copy to Clipboard Toggle word wrap
    2. 入力 B には次のように指定します。

      $ mta-cli analyze --bulk --input <path_to_input_B> --output <path_to_output_ABC> --source <source_B> --target <target_B>
      Copy to Clipboard Toggle word wrap
    3. 入力 C には次のように指定します。

      $ mta-cli analyze --bulk --input <path_to_input_C> --output <path_to_output_ABC> --source <source_C> --target <target_C>
      Copy to Clipboard Toggle word wrap
  2. 分析レポートにアクセスします。MTA は、アプリケーションを移行する前に解決する必要があるすべての問題をリストした単一のレポートを生成します。

4.3. コンテナーレスモードでのアプリケーションの分析

MTA 7.2.0 以降では、コンテナーランタイムのインストールを必要としない MTA CLI を使用して、Java アプリケーションのアプリケーション分析を実行できます。

重要

MTA 7.2.0 以降では、コンテナーレス CLI がデフォルトモードです。Java アプリケーションの分析にコンテナーランタイムの使用を有効にするには、--run-local フラグを false に設定する必要があります。

--run-local=false
Copy to Clipboard Toggle word wrap

他のアプリケーションの分析はコンテナーモードで自動的に実行されます

前提条件

  • MTA CLI がインストールされている。詳細は、.zip ファイルを使用した CLI のインストール を参照してください。
  • Java Development Kit (JDK) バージョン 17 以降がインストールされている。
  • Red Hat Enterprise Linux (RHEL) または Fedora で OpenJDK を使用する場合、Java devel パッケージがインストールされている。
  • Maven バージョン 3.9.9 以降がインストールされている。
  • CLI では、mvn バイナリーへのパスがシステム変数に正しく登録されていることを前提としている。したがって、次の変数に mvn が追加されていることを確認してください。

    • Windows の Path
    • Linux および macOS の PATH
  • JAVA_HOME 環境変数が設定されている。
  • JVM_MAX_MEM システム変数が設定されている。

    注記

    JVM_MAX_MEM を設定しないと、Java がデフォルトの JVM_MAX_MEM 値よりも多くのメモリーを必要とする可能性があるため、分析がハングする可能性があります。

  • Gradle 分析の場合:

    • OpenJDK バージョン 8 をインストールした。
    • OpenJDK 8 のホームディレクトリーを指すように $JAVA8_HOME を設定した。
    • プロジェクトに Gradle ラッパー がある。

手順

  1. オプション: すべての mta-cli analyze コマンドオプションを表示します。

    $ mta-cli analyze --help
    Copy to Clipboard Toggle word wrap
  2. アプリケーション分析を実行します。

    $ mta-cli analyze --overwrite --input <path_to_input> --output <path_to_output> --target <target_source>
    Copy to Clipboard Toggle word wrap
    注記

    --overwrite オプションは、出力フォルダーが存在する場合にそのフィルダーを上書きします。

4.4. analyze コマンドのオプション

以下は mta-cli analyze コマンドと一緒に使用して、コマンドの動作を要件に合わせて調整できるオプションです。

Expand
表4.1 mta-cli analyze コマンドオプション
オプション説明

--analyze-known-libraries (ブール値)

オープンソースライブラリーを分析します。

--disable-maven-search

--disable-maven-search=true を設定すると、MTA が分析中に Maven 検索インデックスを利用して、依存関係が一般に公開されているものであるか (オープンソースの依存関係など)、Java バイナリーアプリケーション内部のものであるかを判別できなくなります。

Maven 検索を無効にすると、MTA は最初に JAR ファイルの POM ファイル (存在する場合) から依存関係を特定しようとします。この方法が成功しない場合、MTA はディレクトリー構造を調べて依存関係を特定します。この方法では、信頼できる依存関係の分類が生成されない可能性があります。パッケージの構造が MTA が予期するものと異なる場合があるためです。一部の依存関係が誤って内部のものとして分類される可能性があるため、より多くのインシデントが表示される場合があります。

デフォルトは --disable-maven-search=false です。そのため、MTA は JAR ファイルの SHA ダイジェストを使用して Maven 検索インデックスを検索します。この設定により、より正確な依存関係が生成されますが、Maven 検索インデックスが頻繁に利用できなくなるという欠点があります。

--context-lines (整数)

各インシデントの出力に含めるソースコードの行数。デフォルトは 100 です。

--dependency-folders (文字列配列)

依存関係のディレクトリー。

--enable-default-rulesets (ブール値)

分析を使用してデフォルトのルールセットを実行します。デフォルトは true です。

--help

analyze コマンドに使用できるフラグを表示します。

--http-proxy (文字列)

HTTP プロキシー文字列 URL。

--https-proxy (文字列)

HTTPS プロキシー文字列 URL。

--incident-selector (文字列)

カスタム変数に基づいてインシデントを選択する式。例:

!package=io.demo.config-utils
Copy to Clipboard Toggle word wrap

--input (文字列)

アプリケーションのソースコードまたはバイナリーへのパス。

--jaeger-endpoint (文字列)

トレースを収集するための Jaeger エンドポイント。

--json-output (文字列)

分析と依存関係の出力を JSON ファイルとして作成します。

--label-selector (文字列)

指定されたラベルセレクター式に基づいてルールを実行します。

--list-languages

ソースアプリケーションの言語をすべて表示します。このフラグはバイナリーアプリケーションではサポートされていません。

--list-providers

利用可能なサポートされているプロバイダーをリスト表示します。

--list-sources

利用可能な移行ソースのルールをリスト表示します。

--list-targets

利用可能な移行ターゲットのルールをリスト表示します。

--maven-settings (文字列)

使用するカスタム Maven 設定ファイルへのパス。

--mode(文字列)

分析モード。次のいずれかの値に設定する必要があります。

  • full (デフォルト)
  • source-only

--no-proxy (文字列)

プロキシー除外 URL (プロキシーにのみ関連)。

--output (文字列)

分析出力のディレクトリーへのパス。

--overwrite (ブール値)

出力ディレクトリーを上書きします。

--rules (文字列配列)

ルールファイルが含まれるファイル名またはディレクトリー。

--skip-static-report (ブール値)

静的レポートを生成しません。

--source (文字列)

分析に考慮すべきソーステクノロジー。複数のソースを指定するには、次のようにパラメーターを繰り返し指定します。

--source <source_1> --source <source_2> ...
Copy to Clipboard Toggle word wrap

--target (文字列)

分析の対象となるターゲットテクノロジー。複数のターゲットを指定するには、次のようにパラメーターを繰り返し指定します。

--target <target_1> --target <target_2> ...
Copy to Clipboard Toggle word wrap

--log-level uint32

ログレベル。デフォルトでは 4 回です。

--no-cleanup (ブール値)

一時リソースを消去しないでください。

第6章 分析レポートのレビュー

アプリケーションを分析した後、分析レポートにアクセスして、アプリケーションの移行作業の詳細を確認できます。

6.1. 分析レポートにアクセスする

アプリケーション分析を実行すると、コマンドラインの --output 引数を使用して指定した出力ディレクトリーにレポートが生成されます。

手順

  • 分析出力から index.html ファイルのパスをコピーし、任意のブラウザーに貼り付けます。

    Report created: <output_report_directory>/index.html
              	Access it at this URL: file:///<output_report_directory>/index.html
    Copy to Clipboard Toggle word wrap

    または、Ctrl を押しながら index.html ファイルのパスをクリックします。

6.2. 分析レポートのセクション

以下は、アプリケーション分析が完了した後に利用できる分析レポートのセクションです。これらのセクションには、アプリケーションの移行に関する追加の詳細が記載されています。

注記

現在のアプリケーションに適用可能なレポートのみを確認できます。

重要

Insights はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

Expand
表6.1 分析レポートのセクション
セクション説明

Dashboard

カテゴリー別に分類されたインシデントの概要と合計ストーリーポイント。

Issues

注意を必要とするすべての問題とその詳細の簡潔な要約。

Dependencies

アプリケーション内で見つかったすべての Java パッケージ依存関係。

Technologies

すべての組み込みライブラリーは機能別にグループ化されています。このレポートを使用して、各アプリケーションで使用されているテクノロジーを表示します。

Insights

ユーザーが追加の設定をすることなく、ルールで検出された違反に関する情報。問題は一般的なルールによって生成されますが、文字列タグはタグ付けルールによって生成されます。文字列タグは、テクノロジーが存在することは示しますが、コードの場所は示しません。Insights には、アプリケーションで使用されるテクノロジーとコード内でのその使用状況に関する情報が含まれています。

Insights は移行に影響しません。たとえば、今回の移行には影響しない、コード内の非推奨の API の使用を検索するルールなどがあります。そのような API を追跡し、将来必要になったときに修正できます。

issues とは異なり、移行を成功させるために insights を修正する必要はありません。Insights は、正の作業量値とカテゴリーが割り当てられていないルールによって生成されます。Insights には、メッセージやタグがある場合があります。

6.3. 分析の問題とインシデントのレビュー

分析が完了したら、アプリケーションの移行中に発生する可能性のある問題を確認できます。各問題には、ルールが 1 回以上一致したファイルのリストが含まれています。これらのファイルには、問題内のすべてのインシデントが含まれます。各インシデントには、問題の詳細な説明と、その問題を解決する方法が記載されています。

手順

  1. 分析レポートを開きます。詳細は、分析レポートへのアクセス を参照してください。
  2. Issues をクリックします。
  3. 確認する問題をクリックします。
  4. File タブでファイルをクリックすると、問題を引き起こしたインシデントが表示されます。
  5. インシデントをトリガーした行にマウスを移動して、インシデントメッセージを表示します。例:

    Use the Quarkus Maven plugin adding the following sections to the pom.xml file:
    <properties>
    <quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
    <quarkus.platform.version>3.1.0.Final</quarkus.platform.version>
    </properties>
    <build>
    <plugins>
    <plugin>
    <groupId>$</groupId>
    <artifactId>quarkus-maven-plugin</artifactId>
    <version>$</version>
    <extensions>true</extensions>
    <executions>
    <execution>
    <goals>
    <goal>build</goal>
    <goal>generate-code</goal>
    <goal>generate-code-tests</goal>
    </goals>
    </execution>
    </executions>
    </plugin>
    </plugins>
    </build>
    Copy to Clipboard Toggle word wrap

第7章 MTA コマンドラインインターフェイスで変換を実行する

変換を使用して、以下のアクションを実行できます。

  • transform openrewrite コマンドを使用して、Java アプリケーションのソースコードを変換します。
  • transform rules コマンドを使用して、XML ルールを YAML ルールに変換します。
重要

変換を実行するには、コンテナーランタイムを設定する必要があります。

7.1. アプリケーションのソースコードの変換

javax や Spring Boot などの Java ライブラリーまたはフレームワークを更新するには、transform openrewrite コマンドを使用して Java アプリケーションのソースコードを変換できます。openrewrite サブコマンドを使用すると、ソースコードに対して OpenRewrite レシピを実行できます。

注記

transform overwrite コマンドの実行に使用できるターゲットは 1 つだけです。

前提条件

  • コンテナーランタイムを設定した。

手順

  1. 利用可能な OpenRewrite レシピを表示します。

    $ mta-cli transform openrewrite --list-targets
    Copy to Clipboard Toggle word wrap
  2. アプリケーションのソースコードを変換します。

    $ mta-cli transform openrewrite --input=<path_to_source_code> --target=<target_from_the_list>
    Copy to Clipboard Toggle word wrap

検証

  • ターゲットアプリケーションのソースコードの diff を調べて、変換を確認します。

7.2. 利用可能な OpenRewrite レシピ

以下は、アプリケーションのソースコードを変換するために使用できる OpenRewrite レシピです。

Expand
表7.1 利用可能な OpenRewrite レシピ
移行パス目的rewrite.config ファイルの場所アクティブレシピ

Java EE から Jakarta EE

javax パッケージのインポートを同等の jakarta パッケージに置き換える

pom.xml ファイル内で宣言された javax アーティファクトを jakarta と同等のものに置き換える

<MTA_HOME>/rules/openrewrite/jakarta \ /javax/imports/rewrite.yml

org.jboss.windup.JavaxToJakarta

Java EE から Jakarta EE

ブートストラップファイルの名前を変更する

<MTA_HOME>/rules/openrewrite/jakarta \ /javax/bootstrapping/rewrite.yml

org.jboss.windup.jakarta.javax. \ BootstrappingFiles

Java EE から Jakarta EE

persistence.xml ファイルの設定を変換する

<MTA_HOME>/rules/openrewrite/jakarta \ /javax/xml/rewrite.yml

org.jboss.windup.javax-jakarta. \ PersistenceXML

Spring Boot から Quarkus

application*.properties に一致するファイル内の spring.jpa.hibernate.ddl-auto プロパティーを置き換える

<MTA_HOME>/rules/openrewrite/quarkus \ /springboot/properties/rewrite.yml

org.jboss.windup.sb-quarkus.Properties

7.3. openrewrite コマンドのオプション

以下は mta-cli transform openrewrite コマンドと一緒に使用して、コマンドの動作を要件に合わせて調整できるオプションです。

Expand
表7.2 mta-cli transform openrewrite コマンドのオプション
オプション説明

--goal (文字列)

目標とするゴール。デフォルトは "dryRun" です。

--help

すべての mta-cli transform openrewrite コマンドオプションを表示します。

--input (文字列)

アプリケーションのソースコードディレクトリーへのパス。

--list-targets

利用可能なすべての OpenRewrite レシピをリスト表示します。

-maven-settings (文字列)

カスタム Maven 設定ファイルへのパス。

--target (文字列)

ターゲット OpenRewrite レシピ。

--log-level uint32

ログレベル。デフォルト値は 4 です。

--no-cleanup

一時リソースを消去しないでください。

7.4. XML ルールを YAML ルールに変換する

mta-cli transform rules コマンドを使用すると、MTA XML ルールを、保守が容易な analyzer-lsp YAML ルールに変換できます。ルールを変換するには、rules サブコマンドは windup-shim ツールを使用します。

注記

mta-cli analyze は、XML ルールを YAML ルールに自動的に変換します。

注記

analyzer-lsp は、言語プロバイダーのルールを評価し、ルールの一致を決定するツールです。

前提条件

  • Podman ツールがインストールされ、実行されている。
  • システムが非接続環境にある場合は、非接続デバイスのファイルシステムに Podman イメージをコピーし、これらのイメージをローカル Podman にアップロードしておく。

手順

  • XML ルールを YAML ルールに変換します。
$ mta-cli transform rules --input=<path_to_xml_rules> --output=<path_to_output_directory>
Copy to Clipboard Toggle word wrap

7.5. rules コマンドのオプション

以下は mta-cli transform rules コマンドと一緒に使用して、コマンドの動作を要件に合わせて調整できるオプションです。

Expand
表7.3 mta-cli 変換ルールコマンドのオプション
オプション説明

--help

すべての mta-cli transform rules コマンドオプションを表示します。

--input (文字列配列)

XML ルールファイルまたはディレクトリーへのパス。

--output (文字列)

出力ディレクトリーへのパス。

--log-level (整数)

ログレベル。デフォルトは 5 です。

第8章 アプリケーションデプロイメントのためのプラットフォームアセットの生成

MTA バージョン 7.3.0 以降では、コンテナーレスモードで discovergenerate コマンドを使用して、OpenShift Container Platform に Cloud Foundry (CF) アプリケーションをデプロイするために必要なマニフェストを自動的に生成できます。

  • discover コマンドを使用して、CF アプリケーションマニフェストから YAML 形式の検出マニフェストを生成します。検出マニフェストには、メタデータ、ランタイム、およびプラットフォーム設定を定義する CF マニフェスト内の仕様が保持されます。
  • 検出マニフェストを使用して OCP デプロイメントのデプロイメントマニフェストを生成するには、generate コマンドを使用します。デプロイメントマニフェストは、検出マニフェストを Kubernetes ネイティブ形式に変換する Helm などのテンプレートエンジンを使用して生成されます。このコマンドを使用して、Dockerfile や設定ファイルなどの Kubernetes 以外のマニフェストを生成することもできます。
重要

アプリケーションデプロイメント用のプラットフォームアセットの生成は、開発者プレビュー機能です。開発者プレビュー機能は、Red Hat ではいかなる形でもサポートされていません。また、機能的には完全ではなく、実稼働環境に対応していません。開発者プレビュー機能は、実稼働ワークロードまたはビジネスクリティカルなワークロードには使用しないでください。開発者プレビュー機能は、Red Hat 製品オファリングに含まれる可能性がある前に、今後の製品機能への早期アクセスを提供し、お客様が機能をテストし、開発プロセス中にフィードバックを提供できるようにします。これらの機能にはドキュメントがない可能性があり、いつでも変更または削除される可能性があり、テストは制限されています。Red Hat は、関連する SLA なしで、開発者プレビュー機能に関するフィードバックを送信する方法を提供する場合があります。

デプロイメントアセットを生成することの利点

デプロイメントアセットを生成すると、次の利点があります。

  • Kubernetes および非 Kubernetes デプロイメントマニフェストを生成します。
  • Kubernetes デプロイメントで広く使用されている Helm などの使い慣れたテンプレートエンジンを使用して、デプロイメントマニフェストを生成します。
  • Helm テンプレートを使用してデプロイメントマニフェストを準備するときに、Kubernetes のベストプラクティスに準拠します。

8.1. 検出マニフェストの生成

discover コマンドを使用して、Cloud Foundry (CF) アプリケーションの検出マニフェストを生成できます。検出マニフェストは、CF マニフェストにあるアプリケーションプロパティー、リソース割り当て、環境変数、サービスバインディングなどの設定を保持します。

前提条件

  • ソースプラットフォームとして Cloud Foundry (v3) を使用する。
  • ターゲットプラットフォームとして OpenShift Container Platform を使用する。
  • MTA CLI バージョン 7.3.0 がインストールされている。
  • CF アプリケーションマニフェストが YAML ファイルとして存在する。

手順

  1. ターミナルアプリケーションを開き、<MTA_HOME>/ ディレクトリーに移動します。
  2. 検出プロセスでサポートされているプラットフォームをリスト表示します。

    $ mta-cli discover --list-platforms
    Copy to Clipboard Toggle word wrap
  3. CF アプリケーションの検出マニフェストを出力ファイルとして生成します。

    $ mta-cli discover cloud-foundry \ --input <path_to_application-manifest> \ --output <path_to_discovery-manifest>\
    Copy to Clipboard Toggle word wrap

8.2. デプロイメントマニフェストの生成

generate コマンドを使用して、Cloud Foundry (CF) アプリケーションの Red Hat OpenShift Container Platform デプロイメントマニフェストを自動生成できます。このコマンドは、指定した Helm テンプレートに基づいて、アプリケーションのデプロイメント用に ConfigMap などのマニフェストと Dockerfile などの Kubernetes 以外のマニフェストを生成します。

前提条件

  • ソースプラットフォームとして Cloud Foundry (v3) を使用する。
  • ターゲットプラットフォームとして OpenShift Container Platform を使用する。
  • MTA CLI バージョン 7.3.0 がインストールされている。
  • 検出マニフェストが生成されている。
  • OCP デプロイメントに必要な設定を含む Helm テンプレートが作成されている。

手順

  1. ターミナルアプリケーションを開き、<MTA_HOME>/ ディレクトリーに移動します。
  2. デプロイメントマニフェストを出力ファイルとして生成します。

    $ mta-cli generate helm --chart-dir helm_sample \ --input <path_to_discovery-manifest> \ --output-dir <location_of_deployment_manifest> \
    Copy to Clipboard Toggle word wrap
  3. ConfigMap を確認します。

    $ mta-cli cd <location_of_deployment_manifest> \
    $ cat configmap.yaml
    $ cat Dockerfile
    Copy to Clipboard Toggle word wrap
  4. Dockerfile を確認します。

    $ mta-cli cd <location_of_deployment_manifest> \
    $ cat Dockerfile
    Copy to Clipboard Toggle word wrap

8.3. discover および generate コマンドオプション

ニーズに合わせてコマンドの動作を調整するために、discover または generate コマンドとともに次のオプションを使用できます。

Expand
表8.1 discover および generate コマンドのオプション
コマンドオプション説明

discover

-h--help

さまざまなコマンド引数の詳細を表示します。

--list-platforms

検出プロセスでサポートされているプラットフォームをリスト表示します。

discover cloud-foundry

 

Cloud Foundry アプリケーションを検出します。

--input

アプリケーション設定を検出するには、<app-manifest-name> .yaml ファイルの場所を指定します。

--output

<discovery-manifest-name> .yaml ファイルを保存する場所を指定します。

generate

-h--help

さまざまなコマンド引数の詳細を表示します。

generate helm

 

Helm テンプレートを使用してデプロイメントマニフェストを生成します。

--chart-dir

Helm チャートを含むディレクトリーを指定します。

--input

デプロイメントマニフェストを生成するには、<discovery-manifest-name> .yaml ファイルの場所を指定します。

--non-k8s-only

Dockerfile などの Kubernetes 以外のテンプレートのみを生成します。

--output-dir

デプロイメントマニフェストを保存する場所を指定します。

--set

検出マニフェスト内の属性の値を、CLI から入力したキーと値のペアでオーバーライドします。

8.4. アセット生成の例

以下は、Cloud Foundry (CF) Node.js アプリケーションの検出マニフェストとデプロイメントマニフェストを生成する例です。

この例では、以下のファイルとディレクトリーが使用されます。

  • CF Node.js アプリケーションマニフェスト名: cf-nodejs-app.yaml
  • 検出マニフェスト名: discover.yaml
  • アプリケーションの Helm チャートの場所: helm_sample
  • デプロイメントマニフェスト: ConfigMap と Dockerfile
  • デプロイメントマニフェストの出力場所: newDir

cf-nodejs-app.yaml が MTA CLI バイナリーと同じディレクトリーにあると想定します。CF アプリケーションマニフェストの場所が異なる場合は、マニフェストへの場所のパスを input として入力することもできます。

前提条件

  • MTA CLI 7.3.0 がインストールされている。
  • CF アプリケーションマニフェストが YAML ファイルとして存在する。
  • OCP デプロイメントに必要な設定を含む Helm テンプレートを作成した。

手順

  1. ターミナルアプリケーションを開き、<MTA_HOME>/ ディレクトリーに移動します。
  2. CF Node.js アプリケーションマニフェストの内容を確認します。

    $ cat cf-nodejs-app.yaml
    name: cf-nodejs
    lifecycle: cnb
    buildpacks:
      - docker://my-registry-a.corp/nodejs
      - docker://my-registry-b.corp/dynatrace
    memory: 512M
    instances: 1
    random-route: true
    Copy to Clipboard Toggle word wrap
  3. 検出マニフェストを生成します。

    $ mta-cli discover cloud-foundry \ --input cf-nodejs-app.yaml \ --output discover.yaml \
    Copy to Clipboard Toggle word wrap
  4. 検出マニフェストの内容を確認します。

    $ cat discover.yaml
    name: cf-nodejs
    randomRoute: true
    timeout: 60
    buildPacks:
    - docker://my-registry-a.corp/nodejs
    - docker://my-registry-b.corp/dynatrace
    instances: 1
    Copy to Clipboard Toggle word wrap
  5. discover.yaml ファイルを使用して、newDir ディレクトリーにデプロイメントマニフェストを生成します。

    $ mta-cli generate helm \ --chart-dir helm_sample \ --input discover.yaml --output-dir newDir
    Copy to Clipboard Toggle word wrap
  6. newDir ディレクトリー内の Dockerfile の内容を確認します。

    $ cat ./newDir/Dockerfile
    FROM busybox:latest
    
    RUN echo "Hello cf-nodejs!"
    Copy to Clipboard Toggle word wrap
  7. newDir ディレクトリーの ConfigMap の内容を確認します。

    $ cat ./newDir/configmap.yaml
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cf-nodejs-config
    data:
      RANDOM_ROUTE: true
      TIMEOUT: "60"
      BUILD_PACKS: |
        - docker://my-registry-a.corp/nodejs
        - docker://my-registry-b.corp/dynatrace
      INSTANCES: "1"
    Copy to Clipboard Toggle word wrap
  8. ConfigMap で、namenodejs-app に、INSTANCES2 にオーバーライドします。

    $ mta-cli generate helm \ --chart-dir helm_sample \ --input discover.yaml --set name="nodejs-app" \ --set instances=2 \ --output-dir newDir \
    Copy to Clipboard Toggle word wrap
  9. ConfigMap の内容を再度確認します。

    $ cat ./newDir/configmap.yaml
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: nodejs-app
    data:
      RANDOM_ROUTE: true
      TIMEOUT: "60"
      BUILD_PACKS: |
        - docker://my-registry-a.corp/nodejs
        - docker://my-registry-b.corp/dynatrace
      INSTANCES: "2"
    Copy to Clipboard Toggle word wrap

第9章 MTA CLI の既知の問題

このセクションでは、MTA 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
Copy to Clipboard Toggle word wrap

このエラーは、Red Hat Enterprise Linux 9 または Universal Base Image 9 コンテナーイメージを x86-64-v2 をサポートする CPU アーキテクチャーで実行する必要があるために発生します。

詳細は、(Running Red Hat Enterprise Linux 9 (RHEL) or Universal Base Image (UBI) 9 container images fail with "Fatal glibc error: CPU does not support x86-64-v2") を参照してください。

CLI はコンテナーランタイムを正しく実行します。ただし、異なるコンテナーランタイム設定はサポートされていません。

サポートされていませんが、Podman の代わりに Docker を使用して CLI を実行すると、この問題は解決されます。

これを実現するには、CONTAINER_TOOL パスを Docker へのパスに置き換えます。

たとえば、この問題が発生した場合は、次のコマンドを発行する代わりに、

CONTAINER_TOOL=/usr/local/bin/docker mta-cli analyze
Copy to Clipboard Toggle word wrap

CONTAINER_TOOL を Docker へのパスに置き換えます。

<Docker Root Dir>=/usr/local/bin/docker mta-cli analyze
Copy to Clipboard Toggle word wrap

これはサポートされていませんが、ハードウェアをアップグレードしたり、x86_64-v2 をサポートするハードウェアに移行したりするときに、CLI を調べることができます。

付録A 参考資料

以下は、Migration Toolkit for Applications (MTA) CLI を使用する際に役立つ情報です。

A.1. サポート対象のテクノロジータグ

MTA 7.3.2 では次のテクノロジータグがサポートされています。

  • 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
  • Mail
  • 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.2. ルールのストーリーポイント

ストーリーポイント は、機能や変更の実装に必要な作業量を見積もるために、アジャイルソフトウェア開発でよく使用される抽象的なメトリクスです。

Migration Toolkit for Applications はストーリーポイントを使用して、特定のアプリケーションコンストラクトとアプリケーション全体を移行するために必要な作業のレベルを表現します。必ずしも工数に変換されるわけではありませんが、その値はタスク間で一貫している必要があります。

A.2.1. 作業量見積りレベルのガイドライン

以下は、ルールに必要な作業レベルを見積もる際に MTA が使用する一般的なガイドラインです。

Expand
表A.1 作業量見積りレベルのガイドライン
作業レベルStory Points説明

Information

0

移行の優先度が非常に低いか、優先度のない情報警告。

Trivial

1

移行は簡単な変更、または API の変更がないか最小限の変更を伴う単純なライブラリーの交換です。

Complex

3

移行タスクに必要な変更は複雑ですが、解決策が文書化されています。

Redesign

5

移行タスクでは、API が大幅に変更され、再設計または完全なライブラリーの変更が必要になります。

Rearchitecture

7

移行には、コンポーネントまたはサブシステムの完全な再アーカイブが必要です。

Unknown

13

移行ソリューションは不明なため、完全な再書き込みが必要になる場合があります。

A.2.2. 移行タスクのカテゴリー

作業量レベル に加えて、移行タスクを分類してタスクの重大度を示すことができます。次のカテゴリーは、移行作業の優先順位を行えるように、問題をグループ化するために使用されます。

Mandatory
移行を成功させるには、タスクを完了する必要があります。変更が行われないと、生成されるアプリケーションはビルドまたは実行に成功しません。たとえば、ターゲットプラットフォームでサポートされないプロプライエタリー API の置き換え例が含まれます。
任意
移行タスクが完了していない場合、アプリケーションは動作しますが、結果が最適ではない可能性があります。移行時に変更が行われない場合は、移行の完了後すぐにスケジュールに配置することが推奨されます。
Potential
移行プロセス中にタスクを調べる必要があります。しかし、移行を成功させるためにタスクが必須かどうかを判断するのに十分な詳細情報がありません。これの例は、直接互換性のあるタイプがないサードパーティーのプロプライエタリータイプの移行です。
Information
タスクは、特定のファイルの存在を通知するために含まれています。これらは、モダナイゼーション作業の一部として検証または変更する必要がある場合がありますが、通常は変更は必要ありません。

付録B MTA プロジェクトへの貢献

Migration Toolkit for Applications がほとんどのアプリケーション設定とサーバー設定 (お客様のものを含む) に対応できるように、次の項目にご協力をお願いします。

  • jboss-migration-feedback@redhat.com にメールを送信し、MTA 移行ルールが対象とする必要がある内容を知らせる。
  • 移行ルールをテストするためのアプリケーションの例を指定する。
  • 移行が困難なアプリケーションコンポーネントおよび問題の領域を特定する。

    • 問題がある移行領域について簡単な説明を記入する。
    • 移行領域の問題を解決する方法の簡単な説明を記入する。
  • アプリケーションで Migration Toolkit for Applications を試行する。問題が発生した場合は必ず報告してください。
  • アプリケーションで Migration Toolkit for Applications を試行する。問題が発生した場合は必ず報告してください。MTA は問題追跡システムとして Jira を使用しています。MTA の実行で問題が発生した場合は、Jira issue を作成してください。
  • Migration Toolkit for Applications ルールリポジトリーに貢献する。

    • Migration Toolkit for Applications ルールを記述して、移行プロセスを識別または自動化する。
    • 新規ルールのテストを作成します。

      詳細は、ルール開発ガイド を参照してください。

  • プロジェクトのソースコードに貢献する。

    • コアルールを作成する。
    • MTA のパフォーマンスまたは効率が向上する。

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat