第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
$ mkdir -p /home/<USER_NAME>/migration-rules/rules
$ mkdir -p /home/<USER_NAME>/migration-rules/data
このディレクトリー構造は、生成された MTA レポートを保持するためにも使用されます。
ルールをテストするためのデータの作成
-
/home/<USER_NAME>/migration-rules/data/
サブディレクトリーにjboss-web.xml
ファイルを作成します。 以下の内容にコピーします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ルールの作成
MTA XML ベースのルールは、以下のルールパターンを使用します。
when(condition) perform(action) otherwise(action)
when(condition)
perform(action)
otherwise(action)
手順
/home/<USER_NAME>/migration-rules/rules/
ディレクトリーで、以下の内容が含まれるJBoss5-web-class-loading.windup.xml
という名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記XML ファイル名には、
.windup.xml
または.mta.xml
拡張子が含まれている必要があります。それ以外の場合には、MTA は新しいルールを評価しません。ruleset および rule に一意の識別子を追加します。
-
<UNIQUE_RULESET_ID>
を、適切なルールセット ID (例:JBoss5-web-class-loading
) に置き換えます。 -
<UNIQUE_RULE_ID>
を、適切なルール ID (例:JBoss5-web-class-loading_001
) に置き換えます。
-
次のルールセットアドオン依存関係を追加します。
<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>
<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 Copied! Toggle word wrap Toggle overflow ソースおよびターゲットのテクノロジーを追加します。
-
<SOURCE_ID>
をeap
に置き換えます。 -
<TARGET_ID>
をeap
に置き換えます。
-
ソースおよびターゲットのテクノロジーバージョンを設定します。
-
<SOURCE_VERSION_RANGE>
を(4,5)
に置き換えます。 -
<TARGET_VERSION_RANGE>
を(6,)
に置き換えます。
詳細は、Apache Maven version range specification を参照してください。
-
when
条件を完了します。このルールは XML ファイルの一致をテストするため、ファイルの評価にはxmlfile
が使用されます。jboss-web
の子であるclass-loading
要素と一致するには、xpath 式jboss-web/class-loading
を使用します。<when> <xmlfile matches="jboss-web/class-loading" /> </when>
<when> <xmlfile matches="jboss-web/class-loading" /> </when>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このルールの
perform
アクションを完了します。-
説明的なタイトルと作業レベル
1
を使用して分類を追加します。 ヒントに情報メッセージと、移行の詳細を説明するドキュメントへのリンクを提供します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
説明的なタイトルと作業レベル
ルールは完了し、以下の例のようになるはずです。
ルールのインストール
MTA ルールは、ルールを適切なディレクトリーに配置してインストールされます。
JBoss5-web-class-loading.windup.xml
ファイルを <MTA_HOME>/rules/
ディレクトリーにコピーします。
cp /home/<USER_NAME>/migration-rules/rules/JBoss5-web-class-loading.windup.xml <MTA_HOME>/rules/
$ cp /home/<USER_NAME>/migration-rules/rules/JBoss5-web-class-loading.windup.xml <MTA_HOME>/rules/
ルールのテスト
ターミナルを開き、次のコマンドを実行して、テストファイルを入力引数および出力レポートのディレクトリーとして渡します。
<MTA_HOME>/bin/mta-cli --sourceMode --input /home/<USER_NAME>/migration-rules/data --output /home/<USER_NAME>/migration-rules/reports --target eap:6
$ <MTA_HOME>/bin/mta-cli --sourceMode --input /home/<USER_NAME>/migration-rules/data --output /home/<USER_NAME>/migration-rules/reports --target eap:6
以下の結果が表示されるはずです。
Report created: /home/<USER_NAME>/migration-rules/reports/index.html Access it at this URL: file:///home/<USER_NAME>/migration-rules/reports/index.html
Report created: /home/<USER_NAME>/migration-rules/reports/index.html
Access it at this URL: file:///home/<USER_NAME>/migration-rules/reports/index.html
レポートの確認
レポートを確認して、予想される結果が表示されることを確認します。MTA レポートの詳細は、MTA のCLI ガイド の レポートの確認 セクションを参照してください。
-
Web ブラウザーで
/home/<USER_NAME>/migration-rules/reports/index.html
を開きます。 ルールが正常に実行されたことを確認します。
- 主な編集ページから、Rule providers execution overview リンクをクリックし、Rule Providers Execution Overview を開きます。
JBoss5-web-class-loading_001
ルールを探して、Status? がCondition met
で、Result? がsuccess
であることを確認します。図2.1 テストルール実行
ルールがテストデータと一致していることを確認します。
-
メインの発行ページから、この例の
データ
であるアプリケーションまたは入力フォルダーの名前をクリックします。 - Application Details レポートリンクをクリックします。
jboss-web.xml リンクをクリックして、ソースレポート を表示します。
<class-loading>
行が強調表示されており、カスタムルールからのヒントがインラインで表示されます。図2.2 ルール一致
ファイルの上部には、一致するルールの分類が表示されます。リンクアイコンを使用すると、そのルールの詳細を表示できます。この例では、
jboss-web.xml
ファイルが1
つのストーリーポイントを生成した別のルール (JBoss web application descriptor (jboss-web.xml)
) と一致することに注意してください。これは、カスタムルールから1
つのストーリーポイントと組み合わせて、このファイルの合計部分を2
にまとめます。
-
メインの発行ページから、この例の