第3章 レポートの確認

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

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

$ <MTA_HOME>/bin/windup-cli --input /home/username/windup-cli-source/test-files/jee-example-app-1.0.0.ear/ --output /home/username/windup-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 をクリックして、アプリケーションレポートを表示します。

ページアクセス方法

アプリケーション

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

Technologies レポート

ページ上部にある 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 レポート

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

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

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

図3.4 Issues レポート

Issues レポート

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

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

図3.5 問題の拡張

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

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

3.1.3. Application Details レポート

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

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

図3.6 Application Details レポート

Application Details レポート

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 レポート

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

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

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

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

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

3.1.5. アプリケーションの Dependencies Graph レポート

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

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

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

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

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

Dependencies Graph との対話

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

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

3.1.6. トランザクションレポート

トランザクションレポートには、リレーショナルデータベーステーブルで操作を実行するコールスタックが表示されます。Enable Transaction Analysis 機能は、Spring Data JPA と、SQL ステートメント実行用の従来の preparedStatement() メソッドをサポートします。Hibernate などの ORM フレームワークはサポートしていません。

以下のイメージは、トランザクションレポートの例を示しています。

図3.10 トランザクションレポート

トランザクションレポート

3.1.7. ソースレポート

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

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

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

図3.11 ソースレポート

ソースレポート