第2章 Getting Started (スタートガイド)
ルールの作成 またはクイックスタートの 確認により、カスタム 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 <!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>
<!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>
ルールの作成
MTA XML ベースのルールは、以下のルールパターンを使用します。
when(condition) perform(action) otherwise(action)
when(condition)
perform(action)
otherwise(action)
ルールセットおよびルールの XML 要素の詳細は、「 XML ルール構造」 を参照してください。構文例の XML ルールの作成に関する詳細は、「基本的な XML ルールの作成」を参照してください。
という名前の
/home/USER_NAME/migration-rules/rules/
サブディレクトリーに XML ファイルを作成しJBoss5-web-class-loading.windup.xml
ます。以下の内容にコピーします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow <?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>
<?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>
注記MTA は、
.windup.xml
または.rhamt.xml
拡張子が XML ベースのルールとして識別されるため、必ずこの命名規則を使用してください。使用しない場合は、ルールが評価されません。ruleset および rule の一意の識別子を追加します。
-
を適切なルールセット ID に
UNIQUE_RULESET_ID
置き換えます(例:)JBoss5-web-class-loading
。 -
を適切なルール ID に
UNIQUE_RULE_ID
置き換えます(例:)JBoss5-web-class-loading_001
。
-
を適切なルールセット ID に
以下の ruleset アドオン依存関係を追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <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>
ソースおよびターゲットテクノロジーを追加します。
-
を
SOURCE_ID
に置き換えeap
ます。 -
を
TARGET_ID
に置き換えeap
ます。
-
を
ソースおよびターゲットのテクノロジーバージョンを設定します。
-
を
SOURCE_VERSION_RANGE
に置き換え(4,5)
ます。 -
を
TARGET_VERSION_RANGE
に置き換え[6,)
ます。
この構文のヘルプは、Apache Maven バージョン範囲 の指定を参照してください。
-
を
when
条件を完了します。このルールが XML ファイル内のマッチに対してテストされるため、
xmlfile
はファイルの評価に使用されます。子
class-loading
要素の要素と一致するにはjboss-web
、xpath 式を使用しjboss-web/class-loading
ます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow <when> <xmlfile matches="jboss-web/class-loading" /> </when>
<when> <xmlfile matches="jboss-web/class-loading" /> </when>
このルールに対する
perform
アクションを完了します。-
タイトルの説明と作業量で分類を追加し
1
ます。 ヒントに情報メッセージと、移行の詳細を説明するドキュメントへのリンクを提供します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <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/en-US/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>
<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/en-US/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>
-
タイトルの説明と作業量で分類を追加し
ルールは完了し、以下の例のようになるはずです。
<?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/en-US/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>
<?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/en-US/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>
ルールのインストール
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/
$ cp /home/USER_NAME/migration-rules/rules/JBoss5-web-class-loading.windup.xml RHAMT_HOME/rules/
ルールのテスト
端末を開き、以下のコマンドを実行して、テストファイルを入力引数として、出力レポートのディレクトリーとして渡します。
RHAMT_HOME/bin/rhamt-cli --sourceMode --input /home/USER_NAME/migration-rules/data --output /home/USER_NAME/migration-rules/reports --target eap:6
$ RHAMT_HOME/bin/rhamt-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 テストルール実行
ルールがテストデータで一致していることを確認します。
-
メインのページから、
data
この例にあるアプリケーションまたは入力フォルダーの名前をクリックします。 - Application Details レポートリンクをクリックします。
jboss-web.xml リンクをクリックして、ソースレポート を表示します。
<class-loading>
行が強調表示されていること、カスタムルールからのヒントがインラインで表示されます。図2.2 ルールの一致
ファイルの上部には、一致するルールの分類が表示されます。リンクアイコンを使用すると、そのルールの詳細を表示できます。この例では、
jboss-web.xml
ファイルは、1
ストーリーポイントを作成した別のルール(JBoss web application descriptor (jboss-web.xml)
)で一致している点に注意してください。これにより、カスタムルールの1
ストーリーポイントと組み合わされ、このファイルの合計ストーリーポイントがに記載され2
ます。
-
メインのページから、