第2章 スタートガイド


カスタム MTA ルールの作成を開始するには、ルールの作成について確認 するか、クイックスタートを確認 してください。

2.1. 最初の XML ルールの作成

本セクションでは、最初の MTA XML ベースのルールを作成してテストするプロセスを説明します。これは、すでに MTA がインストールされていることを前提としています。インストール手順は、CLI ガイド を参照してください。

この例では、アプリケーションが <class-loading> 要素を含む jboss-web.xml ファイルの定義を行うインスタンスを検出するルールを記述します。また、コードの移行方法を説明するドキュメントへのリンクを提供します。

ルールのディレクトリー構造の作成

最初のルールと、テストに使用するデータファイルを含むディレクトリー構造を作成します。

$ mkdir -p /home/USER_NAME/migration-rules/rules
$ mkdir -p /home/USER_NAME/migration-rules/data
Copy to Clipboard

このディレクトリー構造は、生成された MTA レポートを保持するためにも使用されます。

ルールをテストするためのデータの作成

  1. /home/USER_NAME/migration-rules/data/ サブディレクトリーに jboss-web.xml ファイルを作成します。
  2. 以下の内容にコピーします。

    <!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 4.2//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd">
    <jboss-web>
        <class-loading java2ClassLoadingCompliance="false">
            <loader-repository>
                seam.jboss.org:loader=@projectName@
                <loader-repository-config>java2ParentDelegation=false</loader-repository-config>
            </loader-repository>
        </class-loading>
    </jboss-web>
    Copy to Clipboard

ルールの作成

MTA XML ベースのルールは、以下のルールパターンを使用します。

when(condition)
  perform(action)
otherwise(action)
Copy to Clipboard

ルールセットとルールの XML 要素については、XML ルールの構造 セクションで詳しく説明します。構文例を使用した XML ルールの作成の詳細については、基本的な XML ルールの作成 を参照してください。

  1. /home/USER_NAME/migration-rules/rules/ サブディレクトリーに JBoss5-web-class-loading.windup.xml という名前の XML ファイルを作成します。以下の内容にコピーします。

    <?xml version="1.0"?>
    <ruleset id="UNIQUE_RULESET_ID"
        xmlns="http://windup.jboss.org/schema/jboss-ruleset"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://windup.jboss.org/schema/jboss-ruleset http://windup.jboss.org/schema/jboss-ruleset/windup-jboss-ruleset.xsd">
        <metadata>
            <description>
                <!-- Ruleset Description -->
            </description>
            <dependencies>
                <!-- Ruleset Dependencies -->
            </dependencies>
            <sourceTechnology id="SOURCE_ID" versionRange="SOURCE_VERSION_RANGE"/>
            <targetTechnology id="TARGET_ID" versionRange="TARGET_VERSION_RANGE"/>
            <tag>Reviewed-2015-05-01</tag>
        </metadata>
        <rules>
            <rule id="UNIQUE_RULE_ID">
                <when>
                    <!-- Test for a condition here -->
                </when>
                <perform>
                    <!-- Perform an action -->
                </perform>
            </rule>
         </rules>
    </ruleset>
    Copy to Clipboard
    注記

    MTA は、拡張子が .windup.xml または .rhamt.xml のファイルを XML ベースのルールとして識別するため、必ずこの命名規則を使用してください。そうしないと、ルールが評価されません。

  2. ルールセットとルールに一意の識別子を追加します。

    • UNIQUE_RULESET_ID を、適切なルールセット ID (例: JBoss5-web-class-loading) に置き換えます。
    • UNIQUE_RULE_ID を、適切なルール ID (例: JBoss5-web-class-loading_001) に置き換えます。
  3. 次のルールセットアドオン依存関係を追加します。

    <dependencies>
      <addon id="org.jboss.windup.rules,windup-rules-javaee,3.0.0.Final"/>
      <addon id="org.jboss.windup.rules,windup-rules-java,3.0.0.Final"/>
    </dependencies>
    Copy to Clipboard
  4. ソースおよびターゲットのテクノロジーを追加します。

    • SOURCE_IDeap に置き換えます。
    • TARGET_IDeap に置き換えます。
  5. ソースおよびターゲットのテクノロジーバージョンを設定します。

    • SOURCE_VERSION_RANGE(4,5) に置き換えます。
    • TARGET_VERSION_RANGE[6,) に置き換えます。

    この構文のヘルプについては、Apache Maven バージョン範囲の仕様 を参照してください。

  6. when 条件を完了します。

    このルールは XML ファイルの一致をテストするため、ファイルの評価には xmlfile が使用されます。

    jboss-web の子である class-loading 要素と一致するには、xpath 式 jboss-web/class-loading を使用します。

    <when>
        <xmlfile matches="jboss-web/class-loading" />
    </when>
    Copy to Clipboard
  7. このルールの perform アクションを完了します。

    • 説明的なタイトルと作業レベル 1 を使用して分類を追加します。
    • ヒントに情報メッセージと、移行の詳細を説明するドキュメントへのリンクを提供します。

      <perform>
          <iteration>
              <classification title="JBoss Web Application Descriptor" effort="1"/>
              <hint title="JBoss Web XML class-loading element is no longer valid">
                <message>
                  The class-loading element is no longer valid in the jboss-web.xml file.
                </message>
                <link href="https://access.redhat.com/documentation/ja-JP/JBoss_Enterprise_Application_Platform/6.4/html-single/Migration_Guide/index.html#Create_or_Modify_Files_That_Control_Class_Loading_in_JBoss_Enterprise_Application_Platform_6" title="Create or Modify Files That Control Class Loading in JBoss EAP 6"/>
              </hint>
          </iteration>
      </perform>
      Copy to Clipboard

ルールは完了し、以下の例のようになるはずです。

<?xml version="1.0"?>
<ruleset id="JBoss5-web-class-loading"
    xmlns="http://windup.jboss.org/schema/jboss-ruleset"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://windup.jboss.org/schema/jboss-ruleset http://windup.jboss.org/schema/jboss-ruleset/windup-jboss-ruleset.xsd">
    <metadata>
        <description>
            This ruleset looks for the class-loading element in a jboss-web.xml file, which is no longer valid in JBoss EAP 6
        </description>
         <dependencies>
            <addon id="org.jboss.windup.rules,windup-rules-javaee,3.0.0.Final"/>
            <addon id="org.jboss.windup.rules,windup-rules-java,3.0.0.Final"/>
        </dependencies>
        <sourceTechnology id="eap" versionRange="(4,5)"/>
        <targetTechnology id="eap" versionRange="[6,)"/>
    </metadata>
    <rules>
        <rule id="JBoss5-web-class-loading_001">
            <when>
                <xmlfile matches="jboss-web/class-loading" />
            </when>
            <perform>
                <iteration>
                    <classification title="JBoss Web Application Descriptor" effort="1"/>
                    <hint title="JBoss Web XML class-loading element is no longer valid">
                      <message>
                        The class-loading element is no longer valid in the jboss-web.xml file.
                      </message>
                      <link href="https://access.redhat.com/documentation/ja-JP/JBoss_Enterprise_Application_Platform/6.4/html-single/Migration_Guide/index.html#Create_or_Modify_Files_That_Control_Class_Loading_in_JBoss_Enterprise_Application_Platform_6" title="Create or Modify Files That Control Class Loading in JBoss EAP 6"/>
                    </hint>
                </iteration>
            </perform>
        </rule>
     </rules>
</ruleset>
Copy to Clipboard

ルールのインストール

MTA ルールは、ルールを適切なディレクトリーに配置してインストールされます。カスタムルールを配置できる場所については、ルールを MTA に追加する を参照してください。

JBoss5-web-class-loading.windup.xml ファイルを RHAMT_HOME/rules/ ディレクトリーにコピーします。

$ cp /home/USER_NAME/migration-rules/rules/JBoss5-web-class-loading.windup.xml RHAMT_HOME/rules/
Copy to Clipboard

ルールのテスト

端末を開き、以下のコマンドを実行して、テストファイルを入力引数として、出力レポートのディレクトリーとして渡します。

$ RHAMT_HOME/bin/rhamt-cli --sourceMode --input /home/USER_NAME/migration-rules/data --output /home/USER_NAME/migration-rules/reports --target eap:6
Copy to Clipboard

以下の結果が表示されるはずです。

Report created: /home/USER_NAME/migration-rules/reports/index.html
              Access it at this URL: file:///home/USER_NAME/migration-rules/reports/index.html
Copy to Clipboard

レポートを確認する

レポートを確認して、予想される結果が表示されることを確認します。MTA レポートの詳細は、MTA のCLI ガイドレポートの確認 セクションを参照してください。

  1. Web ブラウザーで /home/USER_NAME/migration-rules/reports/index.html を開きます。
  2. ルールが実行されていることを確認します。

    1. 主な編集ページから、Rule providers execution overview リンクをクリックし、Rule Providers Execution Overview を開きます。
    2. JBoss5-web-class-loading_001 ルールを探して、Status?Condition met で、Result?success であることを確認します。

      図2.1 ルール実行のテスト

      ルール実行のテスト
  3. ルールがテストデータと一致していることを確認します。

    1. メインの発行ページから、この例の データ であるアプリケーションまたは入力フォルダーの名前をクリックします。
    2. Application Details レポートリンクをクリックします。
    3. jboss-web.xml リンクをクリックして、ソースレポート を表示します。

      <class-loading> 行が強調表示されており、カスタムルールからのヒントがインラインで表示されます。

      図2.2 ルール一致

      ルール一致

      ファイルの上部には、一致するルールの分類が表示されます。リンクアイコンを使用すると、そのルールの詳細を表示できます。この例では、jboss-web.xml ファイルが 1 つのストーリーポイントを生成した別のルール (JBoss web application descriptor (jboss-web.xml)) と一致することに注意してください。これは、カスタムルールから 1 つのストーリーポイントと組み合わせて、このファイルの合計部分を 2 にまとめます。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat