Javaアプリケーションの近代化

watsonx Code Assistant 標準プラン

アプリケーションをLibertyにモダナイズすることができます。 アプリケーションを最新化するには、まず移行バンドルをアップロードするか、アプリケーションをビルドして分析し、アプリケーションの問題を修正します。

始める前に、エンタープライズJava環境をセットアップし てください。

アプリケーション・サーバーのソースは以下の中から選択できる:

  • Apache Tomcatアプリケーションサーバー
  • JBoss アプリケーション・サーバー
  • Weblogic Application Server
  • WebSphere Application Server 伝統的 V6.1
  • WebSphere Application Server 伝統的 V7.0
  • WebSphere Application Server 伝統的 V8.0
  • WebSphere Application Server 伝統的 V8.5.5
  • WebSphere Application Server 伝統的 V9.0
  • その他のサードパーティアプリケーションサーバー

**Eclipse IDE ** のみ :マルチモジュール Javaで最良の結果を得るには、アグリゲーター・モジュールと各サブモジュールを Eclipse内の個別のプロジェクトとしてインポートしてください。最上位ディレクトリを単一プロジェクトとしてインポートすると Watsonx Code Assistantプロジェクトを正しく内省できない可能性があります。

アプリケーション移行バンドルをアップロードする手順、またはアプリケーションを分析する手順のいずれかを完了します。 一連のステップを完了したら、移行に関する問題を修正できます。 問題を修正する手順は、マイグレーションバンドルステップとアプリケーション解析の両方で同じです。 問題を修正した後、最新化されたアプリケーションが完成する。

コード解析に要する時間

申請書の審査には、さまざまな時間がかかります。 以下の時間は典型的なものである。

分析に要する時間
時刻 アプリケーションの詳細
数秒から数分 100クラス以下
2分から10分 2万行から5万行のコード
10分以上 30万行のコード

あなたのアプリケーションをwatsonx Code Assistantが解析するとき、デフォルトではいくつかのサードパーティパッケージをコード解析から除外します。 詳細については、アプリケーション解析から除外されるサードパーティ製 パッケージを参照してください。

マイグレーションバンドルを使用してアプリケーションを最新化する

以下の手順では、IBM Cloud® Transformation Advisorバージョン3.10以降を使用してマイグレーションバンドルを生成していると仮定します。 マイグレーション・バンドルには、対処すべき近代化問題のリストが含まれている。 また、リバティでアプリケーションが正しく機能するように、自動的に生成される設定情報も含まれている。

プロジェクト用の移行バンドルをすでにアップロードして分析した場合は、新しい移行バンドルをアップロードすると、既存の分析が上書きされます。

アプリケーションを近代化する前に、アプリケーションのフルビルドを行い、既知の良好なアプリケーションビルドから開始していることを確認してください。 このビルドでは、 Java のバージョンアップグレード用の変更を追加する自動化を実行する前に必要な要件である、クラスファイルが最新のソースコードに更新されていることも確認します。

コードの変更を元に戻した場合、アプリケーションを再度モダナイズしたい場合は、Returnをクリックしてアップロード/分析を行い、完全な分析を行う必要があります。

  1. IDEで、モダナイズしたいアプリケーションのディレクトリ内の階層にある項目を右クリックします。

  2. 近代化プロセスを開始するには、いずれかのパスを使用します。 どちらも同じだ:

    • をクリックする。 watsonx Code Assistant をクリックし、 Modernize to Libertyをクリックします。
    • Modernize Java Applications をクリックし、 Modernize to Liberty をクリックします。
  3. Modernize*<アプリケーション名>*ページで、移行バンドルをアップロードします。

    IDEはプロジェクトフォルダを分析し、アプリケーションに関する情報を収集し、Transformation Advisorが生成するマイグレーションバンドルをアップロードします。

    1. 移行バンドルのアップロードをクリックします。

    2. リストからアプリケーションバンドル「.zip ファイルを選択し、「Open」をクリックします。

      移行バンドルのアップロード処理が完了すると、Modernize*<アプリケーション名>*ページに、バンドルに含まれる以下の設定ファイルが表示されます:

      • server.xml はLibertyの設定ファイルで、アプリケーションを起動するために必要です。
      • Containerfile、Libertyアプリケーションのコンテナイメージを構築する場合にのみ必要です。
    3. プロジェクトに追加するファイルを選択し、「Proceed クリックする。

      • (必須) 'server.xml ファイルを選択します。
      • (オプション) 'Containerfile ファイルを選択するのは、Liberty アプリケーション用のコンテナ・イ メージを構築する場合だけです。

    移行バンドルのアップロードが完了すると、修正またはレビューすべき課題が表示されます。

  4. アプリケーションの問題を修正する。

    修正すべき問題によって、修正能力は自動化されたり、アシストされたり、あるいは自己管理されたりする。 追加情報] タブのissueはコード変更の必要はありませんが、検証やテストが必要な場合はコード変更を行う必要があるかもしれません。

アプリケーションを分析してモダナイズする

以下の手順は、アプリケーションを最新化するためにTransformation Advisorマイグレーションバンドルを使用するのではなく、アプリケーションを分析することを想定しています。 この分析では、対処すべき問題のリストと、「server.xml ファイル内の限定的なサーバー設定が提供される。 server.xml ファイルには、アプリケーションが使用する機能の一覧が含まれていますが、データベース接続やJMS構成などの他の構成情報は含まれていません。

コードの変更を元に戻した場合、アプリケーションを再度モダナイズしたい場合は、Returnをクリックしてアップロード/分析を行い、完全な分析を行う必要があります。

  1. IDEで、モダナイズしたいアプリケーションのディレクトリ内の階層にある項目を右クリックします。

  2. 近代化プロセスを開始するには、いずれかのパスを使用します。 どちらも同じだ:

    • をクリックする。 watsonx Code Assistant をクリックし、 Modernize to Libertyをクリックします。
    • Modernize Java Applications をクリックし、 Modernize to Liberty をクリックします。
  3. Modernize*<アプリケーション名>]*ページで、[Analyze application] を展開し、[Start analysis] をクリックします。

  4. アプリケーション・サーバーを分析するルールを定義する分析パラメーターを選択します。

    1. アプリケーション・サーバー・ソースとアプリケーション・サーバー・ターゲットを選択します。

    2. オプションでJavaSEソースを変更する。推奨値が自動的に表示される。

      推奨値は、watsonx Code Assistantがアプリケーション・サーバ・ソースに推奨するJavaSEバージョンに基づいています。 アプリケーション・サーバーが、推奨されているものとは異なるJavaSEバージョンを使用している可能性があります。 もしそうなら、JavaSEソースをアプリケーション・サーバーが使用するバージョンに変更してください。

      例えば、watsonx Code Assistantでは、WebSphere Application Server V8.5.5用JavaSE 8を/span>のを推奨していますが、アプリケーション・サーバーがそれ以前のバージョンのJavaSEを使用している可能性もあります。

      Javaの最低サポートバージョンはJava5です。

    3. JavaSEターゲットを選択する。

    4. 分析」または「ビルドして分析」 のいずれかをクリックする。

      アプリケーション解析はアプリケーションバイナリに対して行われる。 分析開始前にアプリケーションを構築する必要がある。 アプリケーションの構築は、自動でも手動でも可能だ。

      • アプリケーションを自動的にビルドして分析するには、Build and analyze をクリックします。
      • 手動でアプリケーションをビルドする場合は、まずビルドしてから Analyze をクリックする。

      アプリケーションがビルドされ、分析されると、修正またはレビューすべき問題が表示されます。

      「ビルドして分析」 をクリックすると、アプリケーションは現在の Java ソースバージョンでビルドされ、 Java アップグレードに関する問題を分析できるようになります。 IDEが Java の開発者キットを Java ソースバージョンで持っていることを確認してください。IDEがアプリケーションを正常にビルドできるように構成されている必要があります。

  5. アプリケーションの問題を修正する。

    修正すべき問題によって、修正能力は自動化されたり、アシストされたり、あるいは自己管理されたりする。 追加情報] タブのissueはコード変更の必要はありませんが、検証やテストが必要な場合はコード変更を行う必要があるかもしれません。

分析レポートに.javaファイルではなく.classファイルが含まれるのはなぜですか?

バイナリ(JAR/WAR/EAR)の解析を実行すると、問題は常にクラスファイルから発見されます。 バイナリ・スキャナーを watsonx Code Assistant の外部で実行すると、ソース・コードにアクセスできないため、.class ファイルが解析レポートに含まれます。 移行プランをインポートするとき、または watsonx Code Assistant 内で分析を実行するとき、レポートはクラスファイルへの参照を表示しますが、 watsonx Code Assistant は.class ファイルを.java ファイルにリンクし、.java ファイルは watsonx Code Assistant UI に表示されます。

アプリケーションの問題点の修正と追加情報の確認

Modernize*<アプリケーション名>*ページには、以下の情報が表示されます:

  • アプリケーションサーバーのソースとターゲット
  • JavaSEバージョンのソースとJavaSEバージョンのターゲット
  • 技術レポート、インベントリーレポート、分析レポートへのリンク
  • 自動修正、アシスト修正、自己修正など、修正すべき問題のタブと追加情報。

対象となる Java 開発者キットは、自動修正を実行するときと、 Java バージョンのターゲット変更後にアプリケーションをビルドするときに必要になります。 対象の Java 開発者キットがIDE用に設定されていることを確認してください。

  • Eclipse IDE 拡張機能は、IDE で構成されているすべての Java 開発者キットのセットから、 Java バージョン・ターゲットに一致する正しい Java 開発者キットを自動的に見つけようとします。
  • Visual Studio Code IDEでは、 Java 開発者キットの設定を手動で変更する必要があります。

自動修正の完了

自動修正タブに1つ以上の修正がある場合は、そのタブを選択します。

なぜなら、watsonx Code Assistantはあなたのために修正を完了するので、あなたはコードを変更する必要がないからです。 大規模言語モデル(LLM)は自動修正には使用されない。

  1. 説明書を広げて読んでください。
  2. オプションでissueを開き、issueの説明を確認できます。
  3. 自動修正プログラムの実行]をクリックします。
    • 自動化された修正は修正された。
    • 外部issueは、関連する依存関係を更新するまでリストに残ります。
  4. 自動修正の実行が完了したら、[Rebuild and refresh]をクリックしてissueリストを更新します。

自動修正が実行されず、コンソール出力にコンパイルエラーが表示される場合は、 maven-compiler プラグインのバージョンを 3.13.0 またはそれ以降に更新してください。

アシスト修正の完了

Assisted fixes タブに1つ以上の修正がある場合は、そのタブを選択してください。

あなたがコードを修正しても、watsonx Code Assistantは、あなたのコードを変更する方法についてチャットで提案することで、あなたを支援します。

問題によって受けられる支援のレベルは異なる。 アシスト機能により、問題の修正が容易になり、時にはコードの提案がすべて、またはほとんどの作業を完了させることもあります。 他の場合、コードの提案は、コンパイルの失敗を防ぐために古いAPIを削除するという単純なもので、それ以上のアクションは必要ないかもしれない。 各アシスト修正の価値と限界を理解するためには、各アシスト修正の手順に従うことが重要です。 完全なコードの提案が提供されない場合、アシストされた修正をチャットでの会話のきっかけとして考えることができます。 チャットに参加し続け、問題とその解決策について理解を深める。

アシストされた修正に関連する問題のリストについては、アシストされた修正のリファレンス を参照してください。

アシストフィックスを使うには

  1. Instructionsを展開し、指示に従ってください。

  2. 各問題について、それを拡大する。

  3. 「続きを読む」 をクリックして問題を拡大します。

  4. issueにリストされているファイルをクリックします。

    ファイルはエディターで開きます。

  5. issueを展開すると、issueの詳細が表示されます。

  6. 詳細でコード・スニペットを選択するように指示されたら、それを選択する。

  7. 問題を解決するためのサポートが必要な場合は、Help me をクリックしてください。

    Visual Studio Codeを使用している場合、以下の制限が適用されます:

    • アクティブなエディタ1つだけで、 Java コードを選択するようにしてください。
    • Java コードを選択したアクティブなエディタが、 Modernize to Liberty または Java Upgrade ビューとは異なるエディタ・グループにあることを確認してください。
  8. チャットに表示されるコードの提案に従って、問題を修正するためにコードを修正します。

    チャットでは、コードの提案ではなく、情報による回答が提供されることがあります。

  9. 問題を修正したら、すべての修正が修正されるまで 「再構築」をクリックして更新します

自己責任による修正を完了させる

Self-directed fixes タブに1つ以上の修正がある場合は、そのタブを選択します。

あなたはコードを変更し、コードを修正する方法を決定しますが、チャットから助けを得ることができます。

  1. Instructionsを展開し、指示に従ってください。

  2. 各号を拡大する。

  3. 「続きを読む」 をクリックして問題を拡大します。

  4. issueにリストされているファイルをクリックします。

    ファイルはエディターで開きます。

  5. 問題が発生するたびに表示される「チャットを開始」をクリックします。

    チャットウィンドウが開き、問題の解決に役立つサポートを受けることができます。 例えば、コードアシスタントに現在のコードが何をするものかを尋ねることができる。 あるいは、問題のあるコードに代替の実装があるかどうかを尋ねることもできる。

  6. 問題を修正したら、すべての自己指示による修正が修正されるまで、 「再構築」をクリックして更新します

追加情報への対応

追加情報タブに1以上の数字がある場合は、そのタブを選択します。

タブにリストされた問題は、他のタブの問題が決定されるのと同じ方法で決定されます。 追加の情報に関する問題は、コードの変更を必要とするものではありませんが、コードの移行時にアプリケーションが確実に動作するように、問題を確認してください。

追加の情報には、APIの軽微な動作変更や、データベースやユーザーレジストリの接続に関する懸念事項など、それらに対する対処法が示されている場合があります。

例えば、アプリケーションが接続するデータベースがあるとします。 この状況を考慮して問題を読み解くことで、アプリケーションの移行時に、アプリケーション用に設定されたホストとポートが有効でアクセス可能であることを確認します。

  • 指示を拡大し、それに従うこと。

  • 各号をクリックしてください。

    • 「続きを読む」 をクリックして問題を拡大します。
    • issueに記載されているファイルのリンクをクリックし、コードを確認してください。

現在のアプリケーション以外の外部課題に取り組む

修正に取り組んでいる間に、現在のアプリケーションの外部で発生した問題として分類されるものもあるかもしれない。 これらの問題のソースコードは、現在のソースアプリケーションの一部ではない特定のアーカイブにあります。

アーカイブがあなたの組織が所有する図書館である場合:

  1. 関連するソースコードを別のアプリケーションとして開き、 watsonx Code Assistant。

  2. その後、現在のアプリケーションをアップデートして、新しい修復バージョンを使用することができます。

アーカイブが、あなたの組織が所有していない図書館である場合:

  1. この問題を含まないバージョンにアップデートする必要があります。 そのようなバージョンが存在しない場合は、別の技術を使う必要があるかもしれない。

  2. watsonx Code Assistant、代わりの選手を決めるための話し合いを始めることができる。 手始めに、 What is the library X used for? または Is it easy to replace? に尋ねてみよう。 図書館の具体的な利用方法について、より詳しい情報を得るために会話を続けましょう。