Eclipse および Red Hat CodeReady Studio ガイド

Migration Toolkit for Applications 6.0

Eclipse または Red Hat CodeReady Studio の MTA プラグインでアプリケーションを分析して、移行の問題を特定し、解決します。

Red Hat Customer Content Services

概要

このガイドでは、Eclipse または Red Hat CodeReady Studio 用の MTA プラグインを使用して、Red Hat OpenShift 上のハイブリッドクラウド環境全体で大規模なアプリケーションモダナイゼーションの取り組みを促進する方法について説明します。

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

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

第1章 はじめに

1.1. Eclipse および Red Hat CodeReady Studio の MTA プラグインについて

Eclipse および Red Hat CodeReady Studio の Migration Toolkit for Applications (MTA) プラグインを使用すると、アプリケーションの移行およびモダナイゼーションが可能になります。

MTA プラグインはカスタマイズ可能なルールセットを使用してプロジェクトを分析し、ソースコード内の問題をマークし、問題を修正するためのガイダンスを提供し、可能な場合は自動コードの置き換えを提供します。

1.2. Migration Toolkit for Applications の概要

Migration Toolkit for Applications とは ?

Migration Toolkit for Applications (MTA) は、Red Hat OpenShift 上のハイブリッドクラウド環境全体で大規模なアプリケーションモダナイゼーションに対する取り組みを促進します。このソリューションは、ポートフォリオレベルとアプリケーションレベルの両方で、採用プロセス全体を通じて洞察を提供します。つまり、アプリケーションのインベントリー、評価、分析、および管理を行い、ユーザーインターフェイスを介して OpenShift への移行をより短い期間で行うことができます。

MTA は、アプリケーションを評価するための基礎として広範にわたる質問リストを使用して、コンテナー化のアプリケーションの準備に必要な難易度、時間、およびその他のリソースを見積もることができるようにします。ステークホルダー間の議論の基礎として評価の結果を使用して、どのアプリケーションがコンテナー化に適しているか、最初に多大な作業が必要なアプリケーション、およびコンテナー化に適していないアプリケーションを判断できます。

MTA は、考慮された各アプリケーションに 1 つ以上のルールセットを適用してアプリケーションを分析し、最新化する前にそのアプリケーションの中でどの特定の行を変更する必要があるかを判断します。

MTA は、プロジェクトソースディレクトリーやアプリケーションアーカイブを含むアプリケーションアーティファクトを検査し、変更を必要とするエリアを強調表示する HTML レポートを作成します。MTA は、以下を含む多くの移行パスをサポートします。

  • Red Hat JBoss Enterprise Application Platform の最新リリースへのアップグレード
  • Oracle WebLogic または IBM WebSphere Application Server から Red Hat JBoss Enterprise Application Platform への移行
  • アプリケーションのコンテナー化とクラウド化
  • Java Spring Boot から Quarkus への移行
  • OpenJDK 8 から OpenJDK 11 へのアップグレード
  • OpenJDK 11 から OpenJDK 17 へのアップグレード
  • EAP Java アプリケーションの Azure App Service への移行
  • Spring Boot Java アプリケーションの Azure App Service への移行

ユースケースおよび移行パスの詳細は、開発者向け MTA Web ページを参照してください。

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

Migration Toolkit for Applications は一般的なリソースを探し、アプリケーションを移行する際の既知の問題点を明らかにします。これは、アプリケーションが使用するテクノロジーのハイレベルビューを提供します。

MTA は、移行またはモダナイゼーションパスの評価に関する詳細なレポートを生成します。このレポートは、大規模なプロジェクトに必要な作業を見積もり、関係する作業を減らすのに役立ちます。

第2章 MTA プラグインのインストール

接続されているネットワーク環境またはネットワークが制限された環境に MTA プラグインをインストールできます。

2.1. 接続環境でのインストール

接続されている環境に MTA プラグインをインストールできます。

MTA プラグインは、Java Enterprise Developers 2022-03 および Red Hat CodeReady Studio 12.21.3.GA の Eclipse IDE でテストされています。

前提条件

手順

  1. Eclipse または CodeReady Studio を起動します。
  2. メニューバーから HelpInstall New Software を選択します。
  3. Work with フィールドの横にある Add をクリックします。
  4. Name フィールドに MTA を入力します。
  5. Location フィールドに http://download.jboss.org/jbosstools/photon/stable/updates/mta/ を入力し、OK をクリックします。
  6. すべての JBoss Tools - MTA チェックボックスを選択して、Next をクリックします。
  7. インストールの詳細を確認し、Next をクリックします。
  8. ライセンス契約の条件に同意し、Finish をクリックします。
  9. Eclipse または CodeReady Studio を再起動します。

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

MTA プラグインは、ネットワークに接続されていない環境にインストールできます。

MTA プラグインは、Java Enterprise Developers 2022-03 および Red Hat CodeReady Studio 12.21.3.GA の Eclipse IDE でテストされています。

前提条件

手順

  1. ネットワークアクセスのあるコンピューターで、Migration Toolkit for Applications の ダウンロードサイト に移動し、migrationtoolkit-mta-eclipse-plugin-repository ファイルをダウンロードします。
  2. Eclipse または CodeReady Studio を起動します。
  3. メニューバーから HelpInstall New Software を選択します。
  4. Work with フィールドの横にある Add をクリックします。
  5. Name フィールドに MTA を入力します。
  6. Location フィールドの横にある Archive をクリックします。
  7. migrationtoolkit-mta-eclipse-plugin-repository ファイルを選択し、OK をクリックします。
  8. すべての JBoss Tools - MTA チェックボックスを選択して、Next をクリックします。
  9. インストールの詳細を確認し、Next をクリックします。
  10. ライセンス契約の条件に同意し、Finish をクリックします。
  11. Eclipse または CodeReady Studio を再起動します。

2.3. MTA ツールへのアクセス

MTA パースペクティブの MTA プラグインツールにアクセスできます。

前提条件

  • MTA プラグインをインストールした後に、Eclipse IDE または Red Hat CodeReady Studio を再起動する必要があります。

手順

  1. WindowPerspectiveOpen PerspectiveOther をクリックします。
  2. MTA を選択し、OK をクリックします。

    以下のコンポーネントが表示されます。

    • Issue Explorer は、MTA プラグインで識別される移行の問題を表示します。
    • MTA Server は、プロジェクトを分析し、移行の問題にフラグを立て、レポートを生成する別個のプロセスです。

      Issue Explorer で MTA サーバーの開始、停止、およびステータス表示を行うことができます。

    • Issue Details には、ヒント、重大度、追加のリソースなど、選択した問題に関する詳細情報が表示されます。
    • MTA Report は MTA プラグインによって生成された HTML レポートです。レポートのランディングページから、アプリケーションの詳細、問題、依存関係などの詳細なレポートに移動できます。

      注記

      デフォルトでは、レポートは生成されません。実行設定で Generate Report オプションを選択する必要があります。

第3章 MTA プラグインを使用したプロジェクトの分析

MTA プラグインでプロジェクトを分析するには、実行設定を作成し、分析を実行して、MTA プラグインによって検出される移行の問題を確認し、解決します。

3.1. 実行設定の作成

Issue Explorer で実行設定を作成できます。実行設定では、分析するプロジェクト、移行パス、および追加オプションを指定します。

複数の実行設定を作成できます。実行設定にはそれぞれ一意の名前を指定する必要があります。

前提条件

  • プロジェクトを Eclipse IDE または CodeReady Studio にインポートする必要があります。

手順

  1. Issue Explorer で MTA アイコン ( MTA button ) をクリックし、実行設定を作成します。
  2. 入力 タブで、以下のフィールドを入力します。

    1. 移行パスを選択します。
    2. Projects フィールドの横にある Add をクリックし、1 つ以上のプロジェクトを選択します。
    3. Packages フィールドの横にある Add をクリックし、パッケージを 1 つまたは複数選択します。

      注記

      分析するパッケージを指定すると、ランタイム時間が短縮されます。パッケージを選択しないと、プロジェクト内のすべてのパッケージがスキャンされます。

  3. Options タブで Generate Report を選択し、HTML レポートを生成することができます。レポートは Report タブに表示され、ファイルとして保存されます。

    その他のオプションが表示されます。詳細は、CLI ガイドMTA コマンドライン引数 を参照してください。

  4. Rules タブで、MTA プラグインにインポートまたは作成したカスタムルールセットを選択できます。
  5. 実行 をクリックして分析を開始します。

3.2. プロジェクトの分析

保存した実行設定で MTA プラグインを実行することで、プロジェクトを分析できます。

手順

  1. MTA パースペクティブで、Run ボタン ( Run button ) をクリックし、実行設定を選択します。

    MTA プラグインはプロジェクトを分析します。Issue Explorer は、ルールセットで検出された移行の問題を表示します。

  2. プロジェクトの分析が終了したら、Issue Explorer で MTA サーバーを停止して、メモリーを節約します。

3.3. 問題の確認

MTA プラグインによって特定された問題を確認できます。

手順

  1. WindowShow ViewIssue Explorer をクリックします。
  2. オプション: Options メニュー kebab をクリックし、Group By およびオプションを選択して問題をフィルターリングします。

    issue ExplorerGroup By オプション
  3. 右クリックし、Issue Details を選択して問題についての情報を表示します。これには、重大度や対処方法が含まれます。

    以下のアイコンは、問題の重大度および状態を示しています。

    表3.1 問題アイコン

    アイコン説明
    必須

    移行を成功させるには、この問題を修正する必要があります。

    任意

    移行については、この問題の修正は任意となります。

    制限

    この問題は、移行時に対処する必要がある場合があります。

    Resolved

    この問題は解決されています。

    陳腐

    この問題は古くなっています。問題としてマークされたコードは、MTA が最後に問題として識別したときから変更されています。

    クイック修正 (必須)

    この問題にはクイック修正を利用できます。正常に移行するには修正は必須となります。

    クイック修正 (オプション)

    この問題にはクイック修正を利用できます。移行については、修正は任意となります。

    クイック修正 (警告)

    この問題にはクイック修正を利用できます。これは、移行中に問題が発生する可能性があります。

  4. 問題をダブルクリックして、エディターでコードの関連する行を開きます。

3.4. 問題の解決

以下のアクションのいずれかを実行して、MTA プラグインによって検出された問題を解決できます。

  • 問題をダブルクリックしてエディターで開き、ソースコードを編集できます。

    この問題は、次に MTA プラグインを実行するまで Stale アイコン ( Stale ) が表示されます。

  • 問題を右クリックし、Mark as Fixed を選択します。
  • 問題にクイック修正アイコン ( Mandatory with quick fix Optional with quick fix Warning with quick fix ) が表示される場合には、問題を右クリックし、Preview Quick Fix を選択してから Apply Quick Fix を選択します。

第4章 ルールの管理

MTA プラグインには、プロジェクトを分析し、移行およびモダナイゼーションの問題を特定するための システム ルールのコアセットが含まれています。

カスタムルールセットを作成してインポートできます。

4.1. ルールの表示

MTA プラグインで、システムおよびカスタムルールが存在する場合は、それを表示できます。

前提条件

  • システムルールを表示するには、MTA サーバーが実行している必要があります。

手順

  1. Rulesets タブをクリックします。
  2. System を展開して、システムのルールセットまたは Custom を表示してカスタムルールセットを表示します。
  3. ルールセットを展開します。
  4. ルールをダブルクリックして、ビューアーで開きます。
  5. Source タブをクリックして、ルールの XML ソースを表示します。

4.2. カスタムルールセットの作成

MTA パースペクティブでカスタムルールセットを作成できます。

カスタム XML ルールの作成に関する詳細は、ルール開発ガイド を参照してください。

手順

  1. Rulesets タブをクリックします。
  2. ルールセットの作成アイコン ( Create ruleset icon ) をクリックします。
  3. ルールセットのプロジェクトおよびディレクトリーを選択します。
  4. ファイル名を入力します。

    注記

    ファイルには拡張子 .windup.xml が必要です。

  5. ruleset ID (my-ruleset-id など) を入力します。
  6. オプション: Generate quickstart template を選択し、基本的なルールテンプレートをファイルに追加します。
  7. Finish をクリックします。
  8. エディターでルールセットファイルが開かれ、ルールを追加および編集できます。
  9. Source タブをクリックして、ルールセットファイルの XML ソースを編集します。

実行設定の作成時に、新しいルールセットを選択できます。

4.3. カスタムルールセットのインポート

カスタムルールセットを MTA プラグインにインポートして、プロジェクトを分析できます。

前提条件

  • 拡張子が .windup.xml のカスタムルールセットファイル。

    ルールセットの作成に関する詳細は、ルール開発ガイド を参照すること。

手順

  1. Rulesets タブをクリックします。
  2. ルールセットのインポートアイコン ( Import ruleset icon ) をクリックします。
  3. インポートする XML ルールファイルを参照して選択します。

    Rulesets タブで Custom を拡張すると、カスタムルールセットが表示されます。

4.4. カスタムルールセットの送信

公式の MTA ルールリポジトリーに組み込むカスタムルールセットを送信できます。これにより、カスタムルールを確認して、MTA の後続のリリースに含めることができます。

手順

  1. Rulesets タブをクリックします。
  2. 矢印アイコン ( Dropdown ) をクリックし、Submit Ruleset を選択します。
  3. 以下のフィールドに入力します。

    • Summary: ルールの目的を説明します。これは送信時のタイトルになります。
    • Code Sample: ルールが実行するソースコードの例を入力します。
    • Description: ルールの簡単な説明を入力します。
  4. Choose Files をクリックし、ルールセットファイルを選択します。
  5. Submit をクリックします。

法律上の通知

Copyright © 2023 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.