CLI ガイド


Migration Toolkit for Applications 4.2

Red Hat Application Migration Toolkit を使用してアプリケーションを移行する方法

概要

このガイドでは、Migration Toolkit for Applications CLI を使用して Java アプリケーションの移行を単純化する方法を説明します。

第1章 はじめに

1.1. CLI ガイドについて

このガイドは、Java アプリケーションやその他のコンポーネントを移行するために、Migration Toolkit for Applications (MTA) を使用するエンジニア、コンサルタント、およびその他のユーザーを対象としています。CLI のインストールおよび実行方法、生成されたレポートを確認し、追加機能を活用する方法を説明します。

1.1.1. このガイドでの RHAMT_HOME の使用

このガイドでは、置き換え可能な変数 RHAMT_HOME を使用して、MTA インストールへのパスを示します。インストールディレクトリーは、MTA ZIP ディストリビューションを解凍した rhamt-cli-4.2.1.Final ディレクトリーです。

このガイドで RHAMT_HOME が表示されたら、必ず MTA のインストール先への実際のパスに置き換えてください。

1.2. Migration Toolkit for Applications について

Migration Toolkit for Applications とは

Migration Toolkit for Applications (MTA) は、拡張およびカスタマイズ可能なルールベースのツールで、Java アプリケーションの移行を容易にします。

MTA は、プロジェクトソースディレクトリーやアプリケーションアーカイブを含むアプリケーションアーティファクトを検査し、変更を必要とするエリアを強調表示する HTML レポートを作成します。MTA を使用して、以前のバージョンの Red Hat JBoss Enterprise Application Platform から、または Oracle® WebLogic ServerIBM® WebSphere® Application Server などの他のコンテナーから Java アプリケーションを移行できます。

Migration Toolkit for Applications で移行を単純化する方法

Migration Toolkit for Applications は一般的なリソースを探し、アプリケーションを移行する際のテクノロジーと既知の問題点を明らかにします。この目的は、アプリケーションが使用するテクノロジーの概要を提供し、組織がエンタープライズアプリケーションを Java EE および Red Hat JBoss Enterprise Application Platform に推定、文書化、移行するために使用できる詳細なレポートを提供することです。

詳細情報

Migration Toolkit for Applications の機能、サポートされている設定、システム要件、および使用可能なツールの詳細については、スタートガイド を参照してください。

1.3. CLI について

CLI は、Migration Toolkit for Applications のコマンドラインツールです。これにより、ユーザーはアプリケーションに対する移行およびモダナイゼーションの作業を評価および優先順位付けできます。他のツールのオーバーヘッドなしに分析を強調表示する多数のレポートが提供されます。CLI にはさまざまなカスタマイズオプションが含まれており、MTA 分析オプションを細かく調整したり、外部の自動化ツールと統合したりできます。

第2章 スタートガイド

2.1. 前提条件

CLI をインストールする前に、次の前提条件を満たしていることを確認してください。

  • Java プラットフォーム、JRE バージョン 8+
  • 最低 4 GB の RAM。8GB 推奨
注記

macOS を実行している場合は、ユーザープロセスの最大数 maxproc を少なくとも 2048 に設定し、開いているファイルの最大数 maxfiles100000 に設定することを推奨します。

2.2. CLI のインストール

  1. MTA Download ページ から CLI をダウンロードします。
  2. .zip ファイルを任意のディレクトリーに解凍します。

解凍したディレクトリーは、このガイドでは RHAMT_HOME と呼ばれます。

2.3. CLI の実行

アプリケーションに対して MTA を実行するには、次の手順を使用します。

  1. ターミナルを開き、RHAMT_HOME/bin/ ディレクトリーに移動します。
  2. rhamt-cli スクリプト、または Windows の場合は rhamt-cli.bat を実行し、適切な引数を指定します。

    $ ./rhamt-cli --input /path/to/jee-example-app-1.0.0.ear --output /path/to/output --source weblogic --target eap:6 --packages com.acme org.apache
    • --input: 評価されるアプリケーション。--input 引数の説明を参照してください。
    • --output: 生成されたレポートの出力ディレクトリー。--output 引数の説明を参照してください。
    • --source: アプリケーション移行元のテクノロジー。--source 引数の説明を参照してください。
    • --target: アプリケーション移行先のテクノロジー。--target 引数の説明を参照してください。
    • --packages: 評価されるパッケージ。この引数は、パフォーマンスを改善するために強く推奨されます。--packages 引数の説明を参照してください。

    使用可能なすべてのコマンドライン引数の詳細な説明については、MTA コマンドライン引数 を参照してください。

  3. レポートにアクセスします。

MTA GitHub リポジトリーにあるソースコードディレクトリーとアーカイブを使用するコマンドの例については、以下の MTA コマンドの例 を参照してください。

MTA コマンドの例
アプリケーションアーカイブでの MTA の実行

次のコマンドは、JBoss EAP 5 から JBoss EAP 7 に移行するための サンプル EAR アーカイブ jee-example-app-1.0.0.earcom.acme パッケージおよび org.apache パッケージを解析します。

$ RHAMT_HOME/bin/rhamt-cli --input /path/to/jee-example-app-1.0.0.ear --output /path/to/report-output/ --source eap:5 --target eap:7 --packages com.acme org.apache
ソースコードでの MTA の実行

次のコマンドは、JBoss EAP 6 に移行するための seam-booking-5.2 サンプルソースコードの org.jboss.seam パッケージを分析します。

$ RHAMT_HOME/bin/rhamt-cli --sourceMode --input /path/to/seam-booking-5.2/ --output /path/to/report-output/ --target eap:6 --packages org.jboss.seam
cloud-readiness ルールの実行

次のコマンドは、JBoss EAP 7 に移行するためのサンプル EAR アーカイブ jee-example-app-1.0.0.earcom.acme パッケージおよび org.apache パッケージを解析します。また、cloud-readiness についても評価します。

$ RHAMT_HOME/bin/rhamt-cli --input /path/to/jee-example-app-1.0.0.ear --output /path/to/report-output/ --target eap:7 --target cloud-readiness --packages com.acme org.apache
MTA プロパティーを上書きする

デフォルトの Fernflower デコンパイラーを上書きするには、コマンドラインで -Dwindup.decompiler 引数を渡します。たとえば、Procyon デコンパイル機能を使用する場合は、以下の構文を使用します。

$ RHAMT_HOME/bin/rhamt-cli -Dwindup.decompiler=procyon --input INPUT_ARCHIVE_OR_DIRECTORY --output OUTPUT_REPORT_DIRECTORY --target TARGET_TECHNOLOGY --packages PACKAGE_1 PACKAGE_2
MTA CLI bash 補完

MTA CLI は、Linux システムの bash 補完を有効にするオプションを提供し、コマンドを入力した時に Tab キーを押して MTA コマンドライン引数 を自動化できます。たとえば、bash 補完を 有効 にすると、以下のように利用可能な引数のリストが表示されます。

$ RHAMT_HOME/bin/rhamt-cli [TAB]
bash 補完を有効にする

現在のシェルで bash 補完を有効にするには、以下のコマンドを実行します。プロンプトが返されたら、CLI の実行 の手順に従います。

$ source RHAMT_HOME/bash-completion/rhamt-cli
永続的な bash 補完を有効にする

次のコマンドを使用すると、再起動後も bash 補完を維持できます。ただし、現在のシェルで bash 補完が必要な場合は、bash 補完を有効にする の手順に従う必要があります。

  • システムを再起動しても特定のユーザーの bash 補完を有効にするには、そのユーザーの ~/.bashrc ファイルに以下の行を追加します。

    source RHAMT_HOME/bash-completion/rhamt-cli
  • システムの再起動後すべてのユーザーの bash 補完を有効にするには、Applications CLI bash 補完ファイルを /etc/bash_completion.d/ ディレクトリーにコピーします。デフォルトでは、このディレクトリーは root ユーザーのみが書き込み可能です。

    # cp RHAMT_HOME/bash-completion/rhamt-cli /etc/bash_completion.d/
MTA ヘルプ

rhamt-cli コマンドで利用可能な引数の完全な一覧を表示するには、ターミナルを開き、RHAMT_HOME ディレクトリーに移動して、以下のコマンドを実行します。

$ RHAMT_HOME/bin/rhamt-cli --help

2.4. レポートへのアクセス

Migration Toolkit for Applications を実行すると、コマンドラインの --output 引数を使用して指定する OUTPUT_REPORT_DIRECTORY にレポートが生成されます。実行が完了すると、ターミナルに次のメッセージとレポートの場所が表示されます。

Report created: OUTPUT_REPORT_DIRECTORY/index.html
              Access it at this URL: file:///OUTPUT_REPORT_DIRECTORY/index.html

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

ブラウザーを使用して、レポート出力ディレクトリーにある index.html ファイルを開きます。MTA レポートの操作については、レポートを確認する を参照してください。

第3章 レポートを確認する

次のセクションに示すレポートの例は、MTA GitHub ソースリポジトリーにある jee-example-app-1.0.0.ear サンプルアプリケーションの com.acme パッケージおよび org.apache パッケージを分析した結果です。

以下のコマンドを使用してレポートが生成されました。

$ RHAMT_HOME/bin/rhamt-cli --input /home/username/rhamt-cli-source/test-files/jee-example-app-1.0.0.ear/ --output /home/username/rhamt-cli-reports/jee-example-app-1.0.0.ear-report --target eap:6 --packages com.acme org.apache

ブラウザーを使用して、レポート出力ディレクトリーにある index.html ファイルを開きます。これにより、処理されたアプリケーションの一覧が表示されます。各行には、ストーリーポイント、インシデントの数、アプリケーションで発生したテクノロジーの概要が含まれます。

図3.1 アプリケーションリスト

アプリケーションリスト
注記

新しいルールが MTA に追加されると、インシデントと予測されるストーリーポイントが変わります。この値は、このアプリケーションをテストする際に表示される値と一致しない場合があります。

以下の表は、このメインの MTA ランディングページからアクセスできるレポートおよびページの一覧です。アプリケーションの名前 jee-example-app-1.0.0.ear をクリックして、アプリケーションレポート を表示します。

Pageアクセス方法

アプリケーション

アプリケーションの名前をクリックします。

テクノロジーレポート

ページ上部の Technologies リンクをクリックします。

Dependencies Graph レポート

ページ上部の Dependencies Graph リンクをクリックします。

複数のアプリケーションで共有されるアーカイブ

Archives shared by multiple applications リンクをクリックします。このリンクは、複数のアプリケーションに共有アーカイブがある場合にのみ利用できることに注意してください。

ルールプロバイダー実行の概要

ページの下部にある Rule providers execution overview リンクをクリックします。

使用される FreeMarker 機能およびディレクティブ

ページの下部にある FreeMarker methods リンクをクリックします。

フィードバックフォームを送信

トップナビゲーションバーの Send Feedback リンクをクリックし、MTA チームにフィードバックを送信できるフォームを開きます。

アプリケーションが、他の分析済みアプリケーションとアーカイブを共有している場合は、共有アーカイブからのストーリーポイントの数と、このアプリケーションに固有のストーリーポイントの数が表示されることに注意してください。

図3.2 共有アーカイブ

共有アーカイブ

アプリケーション間で共有されるアーカイブに関する情報は、複数のアプリケーションで共有されるアーカイブ レポートを参照してください。

3.1. アプリケーションレポート

3.1.1. ダッシュボード

アプリケーションのリスト でアプリケーション名をクリックして、レポートランディングページからこのレポートにアクセスします。

ダッシュボードでは、アプリケーションの移行作業全体の概要が表示されます。つまり、以下のようになります。

  • カテゴリー別のインシデントおよびストーリーポイント
  • 提案された変更の作業レベル別のインシデントおよびストーリーポイント
  • パッケージ別のインシデント

図3.3 ダッシュボード

ダッシュボード

上部のナビゲーションバーには、このアプリケーションの移行に関する追加の詳細を含むさまざまなレポートが一覧表示されます。現在のアプリケーションに適用可能なレポートのみが利用できることに注意してください。

レポート説明

Issues

注意が必要なすべての問題の簡潔な概要を提供します。

Application Details

移行時に注意する必要がある可能性のあるアプリケーション内で見つかったすべてのリソースの詳細を説明します。

Technologies

機能を基にグループ化されたすべての埋め込みライブラリーを表示します。これにより、各アプリケーションで使用されるテクノロジーを迅速に表示できます。

Dependencies Graph

分析したアプリケーション内にあるすべての Java パッケージの依存関係のグラフを表示します。このグラフは、各依存関係の関係も示しており、ネストになった複数の依存関係を表示できます。

Dependencies

アプリケーション内にある Java パッケージの依存関係をすべて表示します。

Unparsable

MTA が想定される形式で解析できなかったすべてのファイルを示しています。たとえば、.xml または .wsdl 接尾辞が含まれるファイルは XML ファイルであると仮定します。XML パーサーが失敗すると、問題はここに報告され、また個々のファイルがリストされている場所も報告されます。

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 設定に基づいてアプリケーションに含まれるファイルを一覧表示し、処理されませんでした。詳細は、--userIgnorePath オプションを参照してください。

About

現在のバージョンの MTA を説明し、詳細なヘルプリンクを提供します。

3.1.2. 問題レポート

Issues リンクをクリックして、Dashboard からこのレポートにアクセスします。

このレポートには、選択した移行パスによって発生したすべての問題に関する詳細情報が含まれます。発生した問題ごとに以下の情報が提供されます。

  • 問題を要約するタイトル。
  • インシデントの合計数、または問題の発生回数。
  • 問題の 1 つののインスタンスを解決する ルールのストーリーポイント
  • この問題を解決するための推定作業量レベル。
  • 発生したすべてのインスタンスを解決するための全ストーリーポイント。これは、インシデントごとのストーリーポイントで検出されたインシデントの数を掛けて計算されます。

図3.4 問題レポート

問題レポート

報告された各問題は、タイトルをクリックして追加情報を取得することで拡張できます。以下の情報が含まれています。

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

図3.5 拡張された問題

問題レポートのルールの拡張

デフォルトでは、問題は 4 つのカテゴリーに分類されます。これらのカテゴリーに関する情報は、タスクカテゴリー を参照してください。

3.1.3. アプリケーション詳細レポート

Application Details リンクをクリックして、ダッシュボードからこのレポートにアクセスします。

レポートには、ストーリーポイント、パッケージごとの Java インシデント、およびアプリケーションで見つかったテクノロジーの発生回数が記載されます。以下は、移行プロセス中に生成されたアプリケーションメッセージの表示です。最後に、プロセス中に分析される各アーカイブにこの情報の内訳が表示されます。

図3.6 アプリケーション詳細レポート

アプリケーション詳細レポート

jee-example-app-1.0.0.ear/jee-example-services.jar を展開して、ストーリーポイント、パッケージごとの Java インシデント、およびこのアーカイブで見つかったテクノロジーの発生数を確認します。この概要は、移行に割り当てられたストーリーポイントの合計で始まり、アーカイブ内の各ファイルに必要な変更の詳細を示す表が続きます。レポートには以下のコラムが含まれます。

列名説明

名前

分析されるファイルの名前。

Technology

分析するファイルのタイプ (例: Decompiled Java File または Properties)。

Issues

レビューまたは変更が必要なコードのエリアに関する警告。

ストーリーポイント

ファイルの移行に必要な作業レベル。詳細については、ルールのストーリーポイント を参照してください。

アーカイブがアプリケーションに複数回複製されると、そのアーカイブはレポートで 1 回だけ一覧表示され、[Included Multiple Times] でタグ付けされます。

図3.7 アプリケーションでのアーカイブの重複

アーカイブの重複

アプリケーション内で重複するアーカイブのストーリーポイントは、そのアプリケーションの合計ストーリーポイント数に 1 回だけカウントされます。

3.1.4. アプリケーションテクノロジーレポート

Technologies リンクをクリックして、ダッシュボードからこのレポートにアクセスします。

レポートには、解析されたアプリケーションで機能別にグループ化されたテクノロジーが一覧表示されます。これは、アプリケーションに含まれるテクノロジーの概要であり、各アプリケーションの目的を素早く理解できるように設計されています。

以下の図は、jee-example-app で使用されるテクノロジーを示しています。

図3.8 アプリケーションのテクノロジー

テクノロジーレポートアプリケーションビュー

3.1.5. アプリケーション依存関係グラフレポート

分析したアプリケーションの依存関係が、ダッシュボードから Dependencies Graph リンクからアクセスできるこのレポートに表示されます。

これには、サードパーティー JAR を含む WAR および JAR の一覧が含まれ、含まれる各ファイル間の関係をグラフ化します。グラフの各円は、アプリケーションで定義されている一意の依存関係を表します。

以下の図は、jee-example-app で使用される依存関係と、選択したアプリケーションがグラフの中央にあります。

図3.9 アプリケーションの依存関係のグラフ

依存関係グラフアプリケーションビュー

依存関係グラフの操作

依存関係グラフは、以下のいずれかを使用して調整できます。

  • 依存関係をクリックすると、左上隅にアプリケーションの名前が表示されます。選択されている間、依存関係には、上のイメージの中央に見られるように、それを識別する影付きの円があります。
  • 円をクリックしてドラッグすると、再配置されます。マウスを放すと、依存関係がカーソルの位置に固定されます。
  • 固定された依存関係をクリックすると、依存関係がアプリケーションからデフォルトの距離に戻ります。
  • どこかをダブルクリックすると、グラフ全体がデフォルトの状態に戻ります。
  • 説明の項目をクリックすると、選択したタイプのすべての項目が有効または無効になります。たとえば、埋め込み WAR アイコンを選択すると、そのアイコンが有効な場合はすべての埋め込み WAR が無効になり、無効な場合はこれらの依存関係が有効になります。

3.1.6. ソースレポート

jee-example-services.jar の分析には、JAR 内のファイルと、各サービスに割り当てられた警告およびストーリーポイントが一覧表示されます。このテスト時の com.acme.anvil.listener.AnvilWebLifecycleListener ファイルには 22 個の警告があり、16 個のストーリーポイントが割り当てられています。ファイルリンクをクリックして詳細を表示します。

  • Information セクションは、ストーリーポイントの概要を説明します。
  • ファイルのソースコードが続きます。移行が必要な時点でファイルに警告が表示されます。

この例では、警告がさまざまなインポートステートメント、宣言、およびメソッド呼び出しに表示されます。各警告は、問題と実行すべきアクションを記述します。

図3.10 ソースレポート

ソースレポート

3.2. テクノロジーレポート

Technologies リンクをクリックして、レポートランディングページからこのレポートにアクセスします。

このレポートは、解析されたアプリケーションに使用されたテクノロジーを機能別にまとめたリストを提供します。これは、テクノロジーがどのように分散されているかを示し、通常は、多数のアプリケーションを分析してアプリケーションをグループ化し、パターンを特定した後にレビューされます。また、各アプリケーションのサイズ、ライブラリー数、およびストーリーポイントの合計も表示されます。

Markup などの任意のヘッダーをクリックすると、結果が降順に並べ替えられます。同じヘッダーを再度選択すると、結果が昇順になります。現在選択されているヘッダーは、並べ替えの方向を示す方向矢印の横に太字で示されます。

図3.11 複数のアプリケーションで使用されるテクノロジー

複数のアプリケーションで使用されるテクノロジー

3.3. Dependencies Graph レポート

Dependencies Graph リンクをクリックして、レポートランディングページからこのレポートにアクセスします。

これには、WAR と JAR の一覧が含まれ、含まれる各ファイル間の関係をグラフ化します。グラフの各円は、アプリケーションで定義されている一意の依存関係を表します。ファイルを複数のアプリケーションに依存関係として組み込むと、それらはグラフにリンクされます。

以下の図では、2 つの異なるグループを確認できます。左側には、複数の JAR を依存関係として定義する単一の WAR が表示されます。右側には、複数の WAR で使用されるものと同じ依存関係があります。この 1 つは、選択された overlord-commons-auth-2.0.11.Final.jar です。

図3.12 複数のアプリケーション間の依存関係グラフ

複数のアプリケーション間の依存関係グラフ

依存関係グラフは、以下のいずれかを使用して調整できます。

  • 依存関係をクリックすると、左上隅にアプリケーションの名前が表示されます。選択されている間、依存関係には、上のイメージの中央に見られるように、それを識別する影付きの円があります。
  • 円をクリックしてドラッグすると、再配置されます。マウスを放すと、依存関係がカーソルの位置に固定されます。
  • 固定された依存関係をクリックすると、依存関係がアプリケーションからデフォルトの距離に戻ります。
  • どこかをダブルクリックすると、グラフ全体がデフォルトの状態に戻ります。
  • 説明の項目をクリックすると、選択したタイプのすべての項目が有効または無効になります。たとえば、埋め込み WAR アイコンを選択すると、そのアイコンが有効な場合はすべての埋め込み WAR が無効になり、無効な場合はこれらの依存関係が有効になります。

3.4. 複数のアプリケーションで共有されるアーカイブ

Archives shared by multiple applications リンクをクリックして、レポートランディングページからこれらのレポートにアクセスします。このリンクは、適用可能な共有アーカイブがある場合にのみ利用できることに注意してください。

図3.13 複数のアプリケーションで共有されるアーカイブ

複数のアプリケーションで共有されるアーカイブ

これにより、複数のアプリケーション間で共有されるすべてのアーカイブの詳細なレポートを表示できます。

3.5. ルールプロバイダー実行の概要

Rule providers execution overview リンクをクリックして、レポートランディングページからこのレポートにアクセスします。

このレポートは、アプリケーションに対して MTA 移行コマンドを実行する際に実行するルールの一覧を提供します。

図3.14 ルールプロバイダー実行の概要

ルールプロバイダー実行の概要

3.6. 使用される FreeMarker 機能およびディレクティブ

Migration Toolkit for Applications FreeMarker メソッド リンクをクリックして、レポートランディングページからこのレポートにアクセスします。

このレポートには、レポートの作成に使用されたすべての登録済み関数およびディレクティブがリストされます。これは、デバッグの目的で、または独自のカスタムレポートを作成する場合に役立ちます。

図3.15 Freemarker 機能およびディレクティブ

Freemarker 機能およびディレクティブ

3.7. フィードバックフォームを送信

Send feedback リンクをクリックして、レポートランディングページからこのフィードバックフォームにアクセスします。

このフォームでは、製品を評価し、好きなものについて話し、改善のための提案を行うことができます。

図3.16 フィードバックフォームを送信

フィードバックフォーム

第4章 レポートを CSV 形式でエクスポートする

MTA には、分類やヒントなどのレポートデータをローカルファイルシステムのフラットファイルにエクスポートする機能があります。export 関数は現在 CSV ファイル形式をサポートし、レポートデータはコンマ (,) で区切られたフィールドとして示されます。

CSV ファイルは、Microsoft Excel、OpenOffice Calc、LibreOffice Calc などのスプレッドシートソフトウェアでインポートおよび操作できます。スプレッドシートソフトウェアは、MTA レポートから結果データを並べ替え、分析、評価、および管理する機能を提供します。

4.1. レポートをエクスポートする

レポートを CSV ファイルにエクスポートするには、--exportCSV 引数を指定して MTA を実行します。CSV ファイルは、解析される各アプリケーションの、--output 引数で指定されたディレクトリーに作成されます。分析されたすべてのアプリケーションにわたるすべての発見された問題は、レポートのルートディレクトリーにある AllIssues.csv に含まれます。

アプリケーションレポートからのレポートへのアクセス

CSV レポートをエクスポートすると、すべての CSV 問題を 問題レポート でダウンロードできます。これらの問題は、次の図に示すように、問題レポートの右上のセクションにある Download All Issues CSV ボタンを選択してダウンロードできます。

図4.1 CSV ダウンロードに関する問題レポート

CSV ダウンロードに関する問題レポート

4.2. CSV ファイルのスプレッドシートプログラムへのインポート

  1. スプレッドシートソフトウェア (例: Microsoft Excel) を起動します。
  2. FileOpen を選択します。
  3. CSV でエクスポートされるファイルを参照し、これを選択します。
  4. これで、スプレッドシートソフトウェアでデータを分析できるようになりました。

詳細について、または問題を解決するには、スプレッドシートソフトウェアのヘルプを確認してください。

4.3. CSV データ構造の概要

CSV 形式の出力ファイルには、以下のデータフィールドが含まれます。

ルール ID
指定の項目を生成したルールの ID。
問題のタイプ
ヒント または 分類
件名
classification または hint の件名。このフィールドは、特定の項目の問題を要約します。
説明
指定項目の問題の詳細な説明。
リンク
問題に関する追加情報を提供する URL。リンクは、リンクとリンクの説明という 2 つの属性で設定されます。
アプリケーション
この項目が生成されたアプリケーションの名前。
ファイル名
指定項目のファイルの名前。
ファイルパス
指定項目のファイルパス。
指定項目のファイルの行番号。
ストーリーポイント
特定の項目に割り当てられた、努力のレベルを表すストーリーポイントの数。

第5章 アプリケーションの Maven 化

MTA は、提供されるアプリケーションに基づいて Apache Maven プロジェクト構造を生成する機能を提供します。これにより、適切な依存関係を指定する必要な Maven Project Object Model (POM) ファイルを使用してディレクトリー構造が作成されます。

この機能は、プロジェクトの最終ソリューションを作成する予定はありません。これは、開始点を示し、アプリケーションに必要な依存関係および API を特定することを目的としています。プロジェクトでは、さらにカスタマイズが必要になる場合があります。

5.1. Maven プロジェクト構造を生成する

MTA の実行時に --mavenize フラグを渡すことにより、提供されたアプリケーションの Maven プロジェクト構造を生成できます。

次の例では、jee-example-app-1.0.0.ear テストアプリケーションを使用して MTA を実行します。

$ RHAMT_HOME/bin/rhamt-cli --input /path/to/jee-example-app-1.0.0.ear --output /path/to/output --target eap:6 --packages com.acme org.apache --mavenize

これにより、Maven プロジェクト構造が /path/to/output/mavenized ディレクトリーに生成されます。

注記

--input 引数にコンパイルされたアプリケーションを指定する場合に限り、--mavenize オプションを使用できます。この機能は、ソースコードに対して MTA を実行する場合は利用できません。

--mavenizeGroupId オプションを使用して、POM ファイルに使用する <groupId> を指定することもできます。指定しないと、MTA はアプリケーションに適切な <groupId> の識別を試行するか、デフォルトで com.mycompany.mavenized になります。

5.2. Maven プロジェクト構造を確認する

/path/to/output/mavenized/APPLICATION_NAME/ ディレクトリーには、以下の項目が含まれます。

サンプルの jee-example-app-1.0.0.ear アプリケーションは、WAR と複数の JAR を含む EAR アーカイブです。これらのアーティファクトごとに個別のディレクトリーが作成されます。以下は、このアプリケーション用に作成された Maven プロジェクト構造です。

/path/to/output/mavenized/jee-example-app/
    jee-example-app-bom/pom.xml
    jee-example-app-ear/pom.xml
    jee-example-services2-jar/pom.xml
    jee-example-services-jar/pom.xml
    jee-example-web-war/pom.xml
    pom.xml

生成された各ファイルを確認し、プロジェクトに合わせてカスタマイズします。Maven POM ファイルの詳細は、Apache Maven ドキュメントの Introduction to the POM セクションを参照してください。

ルート POM ファイル

jee-example-app-1.0.0.ear アプリケーションのルート POM ファイルは /path/to/output/mavenized/jee-example-app/pom.xml にあります。このファイルは、すべてのプロジェクトモジュールのディレクトリーを特定します。

以下のモジュールは、サンプルの jee-example-app-1.0.0.ear アプリケーションのルート POM の一覧に記載されています。

<modules>
  <module>jee-example-app-bom</module>
  <module>jee-example-services2-jar</module>
  <module>jee-example-services-jar</module>
  <module>jee-example-web-war</module>
  <module>jee-example-app-ear</module>
</modules>
注記

必要に応じて、モジュールの一覧がプロジェクトの適切なビルド順序に一覧表示されるように、必ずモジュールの一覧の順番を変更してください。

また、ルート POM は Red Hat JBoss Enterprise Application Platform Maven リポジトリー を使用してプロジェクトの依存関係をダウンロードするように設定されます。

BOM ファイル

BOM (Bill of Materials) ファイルは、-bom で終わるディレクトリーに生成されます。サンプルアプリケーション jee-example-app-1.0.0.ear の場合、BOM ファイルは /path/to/output/mavenized/jee-example-app/jee-example-app-bom/pom.xml にあります。この BOM の目的は、プロジェクトで使用されるサードパーティーの依存関係のバージョンを 1 か所で定義することです。BOM の使用に関する詳細は、Apache Maven ドキュメントの Introduction to the Dependency Mechanism セクションを参照してください。

以下の依存関係は、jee-example-app-1.0.0.ear アプリケーションの BOM に一覧表示されています。

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.6</version>
    </dependency>
    <dependency>
      <groupId>commons-lang</groupId>
      <artifactId>commons-lang</artifactId>
      <version>2.5</version>
    </dependency>
  </dependencies>
</dependencyManagement>
アプリケーション POM ファイル

Maven が可能なアプリケーションモジュールには、POM ファイルが含まれる個別のディレクトリーがあります。ディレクトリー名には、アーカイブタイプに応じてアーカイブの名前と、接尾辞 -jar-war、または -ear で終わるものが含まれます。

各アプリケーション POM ファイルには、以下を含むモジュールの依存関係が一覧表示されます。

  • サードパーティーライブラリー
  • Java EE API
  • アプリケーションサブモジュール

たとえば、jee-example-app-1.0.0.ear EAR (/path/to/output/mavenized/jee-example-app/jee-example-app-ear/pom.xml) の POM ファイルには、以下の依存関係の一覧が記載されます。

<dependencies>
  <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.6</version>
  </dependency>
  <dependency>
    <groupId>org.jboss.seam</groupId>
    <artifactId>jee-example-web-war</artifactId>
    <version>1.0</version>
    <type>war</type>
  </dependency>
  <dependency>
    <groupId>org.jboss.seam</groupId>
    <artifactId>jee-example-services-jar</artifactId>
    <version>1.0</version>
  </dependency>
  <dependency>
    <groupId>org.jboss.seam</groupId>
    <artifactId>jee-example-services2-jar</artifactId>
    <version>1.0</version>
  </dependency>
</dependencies>

第6章 MTA パフォーマンスの最適化

MTA のパフォーマンスは、ハードウェア設定、アプリケーション内のファイルの数と種類、評価するアプリケーションのサイズと数、アプリケーションにソースコードとコンパイル済みコードのどちらが含まれているかなど、多くの要因に依存します。たとえば、10 MB を超えるファイルは、処理に時間がかかる場合があります。

一般に、MTA はクラスの逆コンパイルに約 40%、ルールの実行に 40% の時間を費やし、残りの時間は他のタスクの処理とレポートの生成に費やします。本セクションでは、MTA のパフォーマンスを改善するために実行できる内容を説明します。

6.1. パフォーマンスを最適化するためのヒント

6.1.1. アプリケーションとコマンドラインの提案

ハードウェアをアップグレードする前に、これらの提案を試してください。

  • 可能な場合は、アーカイブではなく、ソースコードに対して MTA を実行します。これにより、追加の JAR およびアーカイブをコンパイルする必要がなくなります。
  • RHAMT_HOME/bin/rhamt-cli コマンドラインで --packages 引数を使用して、MTA によって評価されるパッケージのコンマ区切りリストを指定します。この引数を省略すると、MTA はすべてを逆コンパイルするため、パフォーマンスに大きな影響があります。
  • --excludeTags 引数を指定すると、処理から除外できます。
  • プロプライエタリーパッケージや含まれている依存関係などの不要なパッケージやファイルの逆コンパイルや解析は回避してください。詳細については、ファイルとパッケージを除外するように MTA を設定する を参照してください。
  • 大規模なアプリケーションを分析する際に ulimit を増やします。Red Hat Enterprise Linux でこれを行う方法は、Red Hat Enterprise Linux でオープンファイルの数を制限する を参照してください。
  • ラップトップまたはデスクトップマシンよりも優れたリソースを持つサーバーにアクセスできる場合は、そのサーバーで MTA を実行することを検討してください。

6.1.2. ハードウェアアップグレードの提案

上記のアプリケーションとコマンドラインの提案がパフォーマンスを改善しない場合は、ハードウェアをアップグレードが必要な場合があります。

  • ラップトップまたはデスクトップよりも優れたリソースを持つサーバーにアクセスできる場合は、そのサーバーで MTA を実行することを検討してください。
  • 逆コンパイルが必要な非常に大規模なアプリケーションには、大容量のメモリーが必要です。8 GB の RAM が推奨されます。これにより、3 ~ 4 GB の RAM が JVM で使用できるようになります。
  • シングルコアまたはデュアルコアからクアッドコアの CPU プロセッサーへのアップグレードにより、パフォーマンスが向上します。
  • ディスク領域と断片化はパフォーマンスに影響を及ぼす可能性があります。高速ディスク、特にソリッドステートドライブ (SSD) で、4 GB を超える最適化されたディスク領域があると、パフォーマンスが向上します。

6.2. ファイルとパッケージを除外するように MTA を設定する

6.2.1. パッケージを除外する

MTA は、逆コンパイルおよび分析中にパッケージを除外して、パフォーマンスを向上させることができます。これらのパッケージへの参照は、アプリケーションのソースコードで引き続き検出されますが、独自のクラスの逆コンパイルと分析を回避します。

定義された値に一致するパッケージはすべて除外されます。たとえば、com.acme.examplecom.acme.roadrunner を除外するには、com.acme のみを指定する必要があります。

パッケージは、次のいずれかの方法を使用して除外できます。

  • CLI 引数 で説明されているように、--excludePackages 引数を使用します。
  • 無視される場所 のいずれかに含まれるファイルでパッケージを指定します。各パッケージは別々の行に含める必要があり、このファイルは .package-ignore.txt で終わる必要があります。たとえば、RHAMT_HOME/ignore/proprietary.package-ignore.txt を参照してください。

6.2.2. ファイルを除外する

MTA は、スキャンやレポートの生成中に、含まれるライブラリーや依存関係などの特定のファイルを除外できます。無視されるファイルは、.rhamt-ignore.txt または .windup-ignore.txt で終わるファイル内で、無視される場所 の 1 つに定義されています。

これらのファイルには、除外する名前の詳細を示す正規表現文字列が含まれ、1 行に 1 つのファイルがリストされます。たとえば、ライブラリー ant.jarExample で始まる Java ソースファイルを除外するには、次のファイルを使用します。

.*ant.jar
.*Example.*\.java

6.2.3. 除外を検索する場所

MTA は以下の場所を検索します。

  • ~/.rhamt/ignore/
  • ~/.windup/ignore/
  • RHAMT_HOME/ignore/
  • --userIgnorePath 引数で指定されたファイルおよびディレクトリー

これらの各ファイルは、除外するコンテンツの種類に応じて、パッケーを除外する または ファイルを除外する で指定されたルールに従う必要があります。

付録A 参考資料

A.1. MTA コマンドライン引数

以下は、利用可能な MTA コマンドライン引数の詳細な説明です。

注記

プロンプトを表示せずに MTA コマンドを実行するには (スクリプトから実行する場合など)、--batchMode を使用して指定されていないパラメーターのデフォルト値を取得し、--overwrite を使用して出力ディレクトリーを強制的に削除します。また、必要な --input および --target 引数を必ず指定してください。

詳細については、各引数の説明を参照してください。

表A.1 MTA CLI 引数
引数説明

--additionalClassPath

クラスパスに追加する追加の JAR ファイルまたはディレクトリーのスペース区切りリスト。逆コンパイルやその他の解析に使用できます。

--addonDir

指定したディレクトリーをカスタムアドオンリポジトリーとして追加します。

--batchMode

MTA を非対話モードで実行すべきように指定するフラグ。確認をプロンプトなしで実行します。このモードは、コマンドラインに渡さないパラメーターのデフォルト値を取ります。

--debug

デバッグモードで MTA を実行するフラグ。

--disableTattletale

Tattletale レポートの生成を無効にするフラグ。enableTattletaledisableTattletale の両方が true に設定されていると、disableTattletale は無視されます。また、Tatletale レポートは引き続き生成されます。

--discoverPackages

入力バイナリーアプリケーションで利用可能なパッケージをすべて表示するフラグ。

--enableClassNotFoundAnalysis

クラスパスで利用できない Java ファイルの分析を有効にするフラグ。分析時に一部のクラスが利用できない場合は、これは使用しないでください。

--enableCompatibleFilesReport

Compatible Files レポートの生成を有効にするフラグ。問題が検出されない状態ですべてのファイルを処理するため、このレポートには大規模なアプリケーションの処理に時間がかかる場合があります。

--enableTattletale

各アプリケーションの Tattletale レポートの生成を有効にするフラグ。このオプションは、eap が含まれるターゲットにある場合にデフォルトで有効になります。enableTattletaledisableTattletale の両方が true に設定されていると、disableTattletale は無視されます。また、Tatletale レポートは引き続き生成されます。

--excludePackages

評価から除外するパッケージのスペース区切りの一覧。たとえば、com.mycompany.commonutilities と入力すると、パッケージ名が com.mycompany.commonutilities で始まるクラスをすべて除外します。

--excludeTags

除外するタグのスペースで区切られた一覧。指定されている場合は、これらのタグを持つルールは処理されません。タグの全一覧を表示するには、--listTags 引数を使用します。

--explodedApp

指定された入力ディクショナリーに 1 つののアプリケーションのソースファイルが含まれていることを示すフラグ。詳細については、入力ファイルの引数テーブル を参照してください。

--exportCSV

レポートデータをローカルファイルシステムの CSV ファイルにエクスポートするフラグ。MTA は、--output 引数で指定されたディレクトリーにファイルを作成します。CSV ファイルは、データの操作および分析のためにスプレッドシートプログラムにインポートできます。詳細については、レポートを CSV 形式でエクスポートする を参照してください。

--help

MTA ヘルプメッセージを表示します。

--immutableAddonDir

指定したディレクトリーを、読み取り専用のアドオンリポジトリーとして追加します。

--includeTags

使用するタグのスペースで区切られたリスト。指定されると、これらのタグを持つルールのみが処理されます。タグの全一覧を表示するには、--listTags 引数を使用します。

--input

分析する 1 つ以上のアプリケーションを含むファイルまたはディレクトリーへのパスのスペースで区切られたリスト。この引数は必須です。詳細については、入力の指定 を参照してください。

--install

インストールするアドオンを指定します。構文は GROUP_ID:ARTIFACT_ID[:VERSION] です。たとえば、--install core-addon-x または --install org.example.addon:example:1.0.0 です。

--keepWorkDirs

グラフデータベースや展開されたアーカイブなどの一時作業ファイルを削除しないように MTA に指示するフラグ。これはデバッグに役立ちます。

--list

インストールされたアドオンを一覧表示するフラグ。

--listSourceTechnologies

利用可能なすべてのソーステクノロジーを一覧表示するフラグ。

--listTags

使用可能なタグをすべて表示するフラグ。

--listTargetTechnologies

利用可能なすべてのターゲットテクノロジーを一覧表示するフラグ。

--mavenize

アプリケーションの構造および内容に基づいて Maven プロジェクトディレクトリー構造を作成するフラグ。これにより、適切な Java EE API とプロジェクトモジュール間の正しい依存関係を使用して pom.xml ファイルが作成されます。--mavenizeGroupId オプションも参照してください。

--mavenizeGroupId

--mavenize オプションと使用すると、生成されるすべての pom.xml ファイルは <groupId> に提供された値を使用します。この引数を省略すると、MTA はアプリケーションに基づいて適切な <groupId> を判別しようとします。または、デフォルトでは com.mycompany.mavenized に設定されます。

--online

フラグは、それを必要とする機能のネットワークアクセスを許可します。現在、外部リソースに対する XML スキーマのみの検証は、インターネットアクセスに依存します。これには、パフォーマンスの低下があることに注意してください。

--output

MTA が生成したレポート情報を出力するディレクトリーへのパスを指定します。詳細については、出力ディレクトリーの指定 を参照してください。

--overwrite

--output で指定された既存の出力ディレクトリーを強制的に削除するためのフラグ。この引数を指定せず、-output ディレクトリーが存在する場合は、内容を上書きするかどうかを選択するように求められます。

警告

重要な情報が含まれるレポート出力ディレクトリーを指定しないでください。

--packages

MTA によって評価されるパッケージのスペース区切りの一覧。この引数を使用することは強く推奨されます。詳細については、パッケージの選択 を参照してください。

--remove

指定したアドオンを削除します。構文は GROUP_ID:ARTIFACT_ID[:VERSION] です。例: --remove core-addon-x または --remove org.example.addon:example:1.0.0

--skipReports

HTML レポートが生成されないことを示すフラグ。この引数の一般的な用途は、--exportCSV を使用してレポートデータを CSV ファイルにエクスポートする場合です。

--source

移行元の 1 つ以上のソーステクノロジー、サーバー、プラットフォーム、またはフレームワークのスペース区切りの一覧。この引数は、--target 引数とともに、使用されるルールセットを判断するのに役立ちます。--listSourceTechnologies 引数を使用して、利用可能なソースを一覧表示します。詳細については、ソーステクノロジーの設定 を参照してください。

--sourceMode

評価するアプリケーションに、コンパイルされたバイナリーではなくソースファイルが含まれていることを示すフラグ。詳細については、入力ファイルの引数テーブル を参照してください。

--target

移行先の 1 つ以上のターゲットテクノロジー、サーバー、プラットフォーム、またはフレームワークのスペース区切りの一覧。この引数は、--source 引数とともに、使用されるルールセットを判断するのに役立ちます。--listTargetTechnologies 引数を使用して、利用可能なターゲットを一覧表示します。詳細については、ターゲットテクノロジーの設定 を参照してください。

--userIgnorePath

${user.home}/.rhamt/ignore/ の他に、無視すべきファイルを MTA が特定できるように場所を指定します。これらのファイルのフォーマットの詳細については、ファイルとパッケージを除外するように MTA を設定する を参照してください。

--userRulesDirectory

RHAMT_HOME/rules/ および ${user.home}/.rhamt/rules/ に加えて、MTA がカスタム MTA ルールを探す場所を指定します。値は、単数または複数のルールセットファイルを含むディレクトリーです。ルールセットファイルには .windup.xml または .rhamt.xml 接尾辞を使用する必要があります。

--version

MTA バージョンを表示します。

A.1.1. 入力の指定

分析する 1 つ以上のアプリケーションを含むファイルまたはディレクトリーへのパスのスペースで区切られたリスト。この引数は必須です。

使用方法

--input INPUT_ARCHIVE_OR_DIRECTORY [...]

--input 引数に指定された入力ファイルタイプがファイルであるかディクショナリーであるかに応じて、指定された追加の引数に応じて次のように評価されます。

ディレクトリー
--explodedApp--sourceMode引数なし

ディレクトリーは 1 つのアプリケーションとして評価されます。

ディレクトリーは 1 つのアプリケーションとして評価されます。

各サブディレクトリーはアプリケーションとして評価されます。

ファイル
--explodedApp--sourceMode引数なし

引数は無視されます。ファイルは 1 つのアプリケーションとして評価されます。

ファイルは圧縮プロジェクトとして評価されます。

ファイルは 1 つアプリケーションとして評価されます。

A.1.2. 出力ディレクトリーの指定

MTA が生成したレポート情報を出力するディレクトリーへのパスを指定します。

使用方法

--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 引数を指定すると、MTA はディレクトリーの削除と再作成を続行します。詳細は、この引数の説明を参照してください。

A.1.3. ソーステクノロジーの設定

移行元の 1 つ以上のソーステクノロジー、サーバー、プラットフォーム、またはフレームワークのスペース区切りの一覧。この引数は、--target 引数とともに、使用されるルールセットを判断するのに役立ちます。--listSourceTechnologies 引数を使用して、利用可能なソースを一覧表示します。

使用方法

--source SOURCE_1 SOURCE_2

--source 引数は、Maven バージョン範囲の構文 に続くバージョンサポートを提供するようになりました。これにより、指定されたバージョンに一致するルールセットのみを実行するように MTA が指示されます。例: --source eap:5

警告

JBoss EAP に移行する場合、バージョン (例: eap:6) を指定してください。eap のみを指定すると、移行パスに関連しないものを含め、すべてのバージョンの JBoss EAP にルールセットが実行されます。

ソースプラットフォームに適した JBoss EAP バージョンについては、MTA スタートガイドサポート対象の移行パス を参照してください。

A.1.4. ターゲットテクノロジーの設定

移行先の 1 つ以上のターゲットテクノロジー、サーバー、プラットフォーム、またはフレームワークのスペース区切りの一覧。この引数は、--source 引数とともに、使用されるルールセットを判断するのに役立ちます。このオプションを指定しないと、ターゲットを選択するように求められます。--listTargetTechnologies 引数を使用して、利用可能なターゲットを一覧表示します。

使用方法

--target TARGET_1 TARGET_2

--target 引数は、Maven バージョン範囲の構文 に続くバージョンサポートを提供するようになりました。これにより、指定されたバージョンに一致するルールセットのみを実行するように MTA が指示されます。例: --target eap:7

警告

JBoss EAP に移行する場合は、必ずバージョンをターゲットに指定してください (例: eap:6)。eap のみを指定すると、移行パスに関連しないものを含め、すべてのバージョンの JBoss EAP にルールセットが実行されます。

ソースプラットフォームに適した JBoss EAP バージョンについては、MTA スタートガイドサポート対象の移行パス を参照してください。

A.1.5. パッケージの選択

MTA によって評価されるパッケージのスペース区切りの一覧。この引数を使用することは強く推奨されます。

使用方法

--packages PACKAGE_1 PACKAGE_2 PACKAGE_N

  • 多くの場合、関心があるのは、カスタムアプリケーションクラスパッケージの評価で、標準の Java EE パッケージやサードパーティーのパッケージではありません。PACKAGE_N 引数はパッケージ接頭辞で、すべてのサブパッケージがスキャンされます。たとえば、パッケージ com.mycustomapp および com.myotherapp をスキャンするには、コマンドラインで --packages com.mycustomapp com.myotherapp 引数を使用します。
  • org.apache などの標準の Java EE サードパーティーソフトウェアにパッケージ名を指定することはできますが、通常は移行作業に影響しないため、追加しないことが推奨されます。
警告

--packages 引数を省略すると、アプリケーションのすべてのパッケージがスキャンされ、パフォーマンスに影響を及ぼす可能性があります。この引数には、1 つ以上のパッケージを指定することが推奨されます。パフォーマンスを改善する方法に関するその他のヒントについては、MTA パフォーマンスの最適化 を参照してください。

A.2. ルールのストーリーポイント

A.2.1. ストーリーポイントとは

ストーリーポイント は、アジャイルソフトウェア開発で一般的に使用される抽象メトリクスで、機能や変更を実装するのに必要な 作業量 を予測します。

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

A.2.2. ルールにおけるストーリーポイントの見積方法

ルールのストーリーポイントの作業レベルを見積もることは複雑です。以下は、ルールに必要な作業レベルを見積もる際に MTA が使用する一般的なガイドラインです。

作業レベルストーリーポイント説明

Information

0

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

Trivial

1

移行は、些細な変更または単純なライブラリースワップであり、API の変更はないか、最小限となります。

Complex

3

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

Redesign

5

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

Rearchitecture

7

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

Unknown

13

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

A.2.3. タスクカテゴリー

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

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

タスクの分類に関する詳細は、ルール開発ガイドカスタムルールカテゴリーの使用 を参照してください。

A.3. 関連情報

A.3.1. 参加する

Migration Toolkit for Applications が、自分のものを含むほとんどのアプリケーション設定とサーバー設定に対応できるように、以下の項目のいずれかを支援できます。

  • jboss-migration-feedback@redhat.com にメールを送信し、MTA 移行ルールが対象とすべき内容をご連絡ください。
  • 移行ルールをテストするためのアプリケーションの例を指定します。
  • 移行が困難なアプリケーションコンポーネントおよび問題の領域を特定してください。

    • これらの問題がある移行領域について簡単な説明を記入する。
    • 問題の移行領域を解決する方法を説明する簡単な概要を記述します。
  • アプリケーションで Migration Toolkit for Applications を試行します。発生している 問題を必ず報告 してください。
  • Migration Toolkit for Applications ルールリポジトリーへの貢献。

    • Migration Toolkit for Applications ルールを記述して、移行プロセスを識別または自動化します。
    • 新規ルールのテストを作成します。
    • 詳細は、ルール開発ガイド を参照してください。
  • プロジェクトのソースコードへの貢献。

    • コアルールを作成します。
    • MTA のパフォーマンスまたは効率が向上します。
    • 環境の設定およびプロジェクトの設定方法に関する詳細は、Core Development Guide を参照してください。

あらゆるレベルの貢献が大きく評価されます。

A.3.3. MTA の既知の問題

MTA の既知の問題は、Open MTA の問題 で確認できます。

A.3.4. MTA の問題を報告する

Migration Toolkit for Applications は、問題追跡システムとして JIRA を使用します。MTA の実行で問題が発生した場合は、JIRA Issue を作成してください。

注記

JIRA で問題を作成するために、すでに JIRA アカウントにサインアップする必要があります。

A.3.4.1. JIRA の問題を作成する
  1. ブラウザーを開き、JIRA の Create Issue ページに移動します。

    ログインしていない場合は、ページの右上にある Log In リンクをクリックし、認証情報を入力します。

  2. 以下のオプションを選択し、Next ボタンをクリックします。

    • プロジェクト

      コア MTA の問題については、Red Hat Application Migration Toolkit (WINDUP) を選択してください。

      MTA ルールの問題については、Red Hat Application Migration Toolkit ルール (WINDUPRULE) を選択してください。

    • 問題のタイプ: バグ
  3. 次の画面では、以下のフィールドを入力します。

    • Summary: 問題またはその問題の簡単な説明を入力します。
    • Environment: オペレーティングシステム、Java のバージョン、およびその他の関連情報の詳細を指定します。
    • Description: 問題の詳細情報を指定します。ログと例外トレースを必ず含めてください。
    • Attachment: 問題を生じるアプリケーションまたはアーカイブに機密情報が含まれておらず、MTA 開発チームと共有する場合は、browse ボタンを使用して問題を添付します。
  4. Create ボタンをクリックして JIRA の問題を作成します。





改訂日時: 2023-01-23 07:40:33 +1000

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.