第3章 レポートの確認
次のセクションに示すレポートの例は、MTR GitHub ソースリポジトリーにある jee-example-app-1.0.0.ear サンプルアプリケーションの com.acme
パッケージおよび org.apache
パッケージを分析した結果です。
以下のコマンドを使用してレポートが生成されました。
$ <MTR_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 アプリケーションリスト
新しいルールが MTR に追加されると、インシデントと予測されるストーリーポイントが変わります。この値は、このアプリケーションをテストする際に表示される値と一致しない場合があります。
以下の表は、このメインの MTR ランディングページからアクセスできるレポートおよびページの一覧です。アプリケーションの名前 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 リンクをクリックし、MTR チームにフィードバックを送信できるフォームを開きます。 |
アプリケーションが、他の分析済みアプリケーションとアーカイブを共有している場合は、共有アーカイブからのストーリーポイントの数と、このアプリケーションに固有のストーリーポイントの数が表示されることに注意してください。
図3.2 共有アーカイブ
アプリケーション間で共有されるアーカイブに関する情報は、複数のアプリケーションで共有されるアーカイブレポートを参照してください。
3.1. アプリケーションレポート
3.1.1. ダッシュボード
アプリケーションのリスト でアプリケーション名をクリックして、レポートランディングページからこのレポートにアクセスします。
ダッシュボードでは、アプリケーションの移行作業全体の概要が表示されます。つまり、以下のようになります。
- カテゴリー別のインシデントおよびストーリーポイント
- 提案された変更の作業レベル別のインシデントおよびストーリーポイント
- パッケージ別のインシデント
図3.3 ダッシュボード
上部のナビゲーションバーには、このアプリケーションの移行に関する追加の詳細を含むさまざまなレポートが一覧表示されます。現在のアプリケーションに適用可能なレポートのみが利用できることに注意してください。
レポート | 説明 |
---|---|
Issues | 注意が必要な問題すべてについて簡潔に説明します。 |
Application Details | 移行時に注意する必要がある可能性のあるアプリケーション内で見つかったすべてのリソースの詳細を説明します。 |
Technologies | 機能を基にグループ化されたすべての埋め込みライブラリーを表示します。これにより、各アプリケーションで使用されるテクノロジーを迅速に表示できます。 |
Dependencies Graph | 分析したアプリケーション内にあるすべての Java パッケージの依存関係のグラフを表示します。このグラフは、各依存関係の関係も示しており、ネストになった複数の依存関係を表示できます。 |
Dependencies | アプリケーション内にある Java パッケージの依存関係をすべて表示します。 |
Unparsable |
MTR が想定される形式で解析できなかったすべてのファイルを示しています。たとえば、 |
Remote Services | アプリケーション内で見つかったすべてのリモートサービス参照を表示します。 |
EJB | アプリケーション内の EJB のリストが含まれます。 |
JBPM | 分析中に見つかった JBPM 関連のリソースすべてが含まれます。 |
JPA | アプリケーションで見つかったすべての JPA 関連リソースの詳細が含まれます。 |
Hibernate | アプリケーションで検出されたすべての Hibernate 関連リソースの詳細が含まれています。 |
Server Resources | 入力アプリケーションですべてのサーバーリソース (JNDI リソースなど) を表示します。 |
Spring Beans | 分析中に見つかった Spring Bean の一覧が含まれます。 |
Hard-Coded IP Addresses | アプリケーションで見つかったすべてのハードコーディングされた IP アドレスの一覧を提供します。 |
Ignored Files |
特定のルールおよび MTR 設定に基づいてアプリケーションに含まれるファイルを一覧表示し、処理されませんでした。詳細は、 |
About | 現在のバージョンの MTR を説明し、詳細なヘルプリンクを提供します。 |
3.1.2. Issues レポート
Issues リンクをクリックして、Dashboard からこのレポートにアクセスします。
このレポートには、選択した移行パスによって発生したすべての問題に関する詳細情報が含まれます。発生した問題ごとに以下の情報が提供されます。
- 問題を要約するタイトル。
- インシデントの合計数、または問題の発生回数。
- 問題の 1 つののインスタンスを解決するルールのストーリーポイント。
- この問題を解決するための推定作業量レベル。
- 発生したすべてのインスタンスを解決するための全ストーリーポイント。これは、インシデントごとのストーリーポイントで検出されたインシデントの数を掛けて計算されます。
図3.4 Issues レポート
報告された各問題は、タイトルをクリックして追加情報を取得することで拡張できます。以下の情報が含まれています。
- インシデントが発生したファイルの一覧と、各ファイル内のインシデントの数。ファイルが Java ソースファイルの場合は、ファイル名をクリックすると、対応するソースレポートが表示されます。
- 問題の詳細情報。この説明は問題の概要を示し、既知の解決策を提供し、問題または解決策に関するサポートドキュメントを参照します。
- 問題を生成したルールへの Show Rule というタイトルの直接リンク。
図3.5 問題の拡張
デフォルトでは、問題は 4 つのカテゴリーに分類されます。これらのカテゴリーに関する情報は、カテゴリーを参照してください。
3.1.3. Application Details レポート
Application Details リンクをクリックして、ダッシュボードからこのレポートにアクセスします。
レポートには、ストーリーポイント、パッケージごとの Java インシデント、およびアプリケーションで見つかったテクノロジーの発生回数が記載されます。以下は、移行プロセス中に生成されたアプリケーションメッセージの表示です。最後に、プロセス中に分析される各アーカイブにこの情報の内訳が表示されます。
図3.6 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 ソースレポート