3.2. 基本的な XML ルールの作成


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

3.2.1. 基本的な XML ルールテンプレートの作成

MTR XML ルールは conditions および actions で設定され、以下のルールパターンを使用します。

when(condition)
  perform(action)
otherwise(action)

以下の内容で、XML ルールの基本的な構文であるファイルを作成します。

重要

XML ファイル名には、.windup.xml 拡張子を含める必要があります。それ以外の場合、MTR は新しいルールを評価しません。

<?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>
    <!-- Metadata about the rule including a description,
         source technology, target technology, and any
         add-on dependencies -->
  </metadata>
<rules>
    <rule id="unique-ruleset-id-01000">
        <when>
            <!-- Test a condition... -->
        </when>
        <perform>
            <!-- Perform this action when condition is satisfied -->
        </perform>
        <otherwise>
            <!-- Perform this action when condition is not satisfied -->
        </otherwise>
    </rule>
  <rules>
</ruleset>

3.2.2. ruleset メタデータの作成

XML ルールセットの metadata 要素は、説明、ソーステクノロジーおよびターゲットテクノロジー、アドオンの依存関係などのルールセットに関する追加情報を提供します。メタデータによりタグの指定が可能になり、ルールセットに関する追加情報を提供できます。

<metadata> の例

<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>
            This is the description.
    </description>
    <dependencies>
            <addon id="org.jboss.windup.rules,windup-rules-javaee,2.0.1.Final"/>
            <addon id="org.jboss.windup.rules,windup-rules-java,2.0.0.Final"/>
    </dependencies>
    <sourceTechnology id="weblogic" versionRange="(10,12]"/>
    <sourceTechnology id="ejb" versionRange="(2,3]"/>
    <targetTechnology id="eap" versionRange="(5,6]"/>
    <targetTechnology id="ejb" versionRange="(2,3]"/>
    <tag>require-stateless</tag>
    <tag>require-nofilesystem-io</tag>
    <executeAfter>AfterRulesetId</executeAfter>
    <executeBefore>BeforeRulesetId</executeBefore>
  </metadata>
  <rules>
    ...
  </rules>
</ruleset>

3.2.3. ルールの作成

個々のルールは <rules> 要素に含まれます。これには、1 つ以上の when 条件と実行アクションが含まれます。

有効なルール構文は、XML rule schema を参照してください。

3.2.3.1. <when> 条件の作成

XML ルール <when> 要素は条件をテストします。以下は、有効な <when> 条件の一覧です。

要素説明

<and>

標準の論理 and 演算子。

<filecontent>

ファイル内の文字列またはテキスト (プロパティーファイルなど) を検索します。

<file-mapping>

内部に保存されているファイルモデルにファイル名を定義します。

<javaclass>

Java クラスで一致のテスト。

<javaclass-ignore>

検出の処理で無視する javaclass を除外します。

<not>

標準の論理 not 演算子。

<or>

標準の論理 or 演算子。

<package-mapping>

組織またはライブラリーにパッケージ名を定義します。

<project>

依存関係などのプロジェクトの特性をテストします。

<true>

常に一致します。

<xmlfile>

XML ファイルで一致をテストします。

特定の構文は、Java クラス、XML ファイル、プロジェクト、またはファイルコンテンツを評価するルールを作成するかどうかによって異なります。

3.2.3.2. <perform> アクションの作成

XML ルール <perform> 要素は、条件が満たされるとアクションを実行します。このルールで許可される操作には、アプリケーションリソースの分類、移行手順のインラインヒント、移行情報へのリンク、およびプロジェクトライン項目の報告が含まれます。以下は、有効な <perform> アクションの一覧です。

要素説明

<classification>

この操作により、ファイル全体に適用するメタデータが追加されます。たとえば、Java クラスが JMS メッセージリスナーの場合は、ファイル全体に適用される情報が含まれる JMS Message Listener というタイトルで分類を追加できます。ファイル全体の作業レベルを設定することもできます。

<hint>

この操作により、ファイル内の行にメタデータが追加されます。これにより、コードのセクションを移行するヒントまたはインライン情報が提供されます。

<iteration>

これは、ルール内で定義される暗黙的な変数または明示的な変数を繰り返し処理することを指定します。

<lineitem>

これは、アプリケーションの概要ページに表示される高レベルのメッセージを提供します。

<link>

これにより、追加の情報や移行タスクに関するドキュメントへの HTML リンクが提供されます。

<xslt>

これは、XML ファイルの変換方法を指定します。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.