第3章 XML ルールの作成


3.1. XML ルール構造

このセクションでは、XML ルールの基本構造を説明します。すべての XML ルールは、rulesets 内の要素として定義されます。詳細は、MTR XML ルールスキーマ を参照してください。

3.1.1. Rulesets

ルールセットとは、特定の移行領域をターゲットとする 1 つ以上のルールのグループです。これは <ruleset> 要素の基本構造です。

  • <ruleset id="<UNIQUE_RULESET_ID>">: これを MTR ルールセットとして定義し、一意のルールセット ID を指定します。

    • <metadata>: ルールセットに関するメタデータ。

      • <description>: ルールセットの説明。
      • <dependencies/>: このルールセットで必要なルールアドオン。
      • <sourceTechnology/>: ソーステクノロジー。
      • <targetTechnology/>: ターゲットテクノロジー。
      • <overrideRules/>: true に設定した場合は、MTR で配布されるコアルールセットと同じ ID で、このルールセットのルールを上書きします。ルールセット ID とルール ID の両方がコアルールセット内のルールと一致する必要があり、ルールは無視されます。さらに、このルールセットのターゲットテクノロジーは、分析を実行するために指定したターゲットの 1 つと一致させる必要があります。

        デフォルトは false です。

    • <rules>: 個々のルールのセット。

      • <rule id="<UNIQUE_RULE_ID>"> ルールを定義して、一意の ID を指定します。ルール ID の一部としてルールセット ID を含めることが推奨されます (例: <UNIQUE_RULESET_ID_UNIQUE_RULE_ID>)。ルールセットには 1 つ以上のルールを定義できます。

        • <when>: 照合する条件。
        • <perform>: ルール条件が一致したときに実行されるアクション。
        • <otherwise>: ルール条件が一致しない場合に実行されるアクション。この要素は、<perform> 要素と同じ子要素を取ります。
        • <where>: パラメーターとして定義される文字列パターン。このパターンは、ルール定義の他の場所で使用できます。
      • <file-mapping/>: エクステンションをグラフタイプにマップします。
      • <package-mapping/>: パッケージパターン (正規表現) から組織名にマッピングします。

3.1.2. 事前定義されたルール

MTR は、一般的な移行要件に事前定義されたルールを提供します。これらのコア MTR ルールは、MTR インストールの <MTR_HOME>/rules/migration-core/ にあります。

以下は、プロプライエタリーユーティリティークラスで一致するコア MTR ルールの例になります。

<?xml version="1.0"?>
<ruleset xmlns="http://windup.jboss.org/schema/jboss-ruleset" id="weblogic" 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 provides analysis of WebLogic proprietary classes and constructs that may require individual attention when migrating to JBoss EAP 6+.
        </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" />
        <targetTechnology id="eap" versionRange="[6,)" />
        <tag>reviewed-2015-06-02</tag>
        <tag>weblogic</tag>
    </metadata>
    <rules>
        ...
        <rule id="weblogic-02000">
            <when>
                <javaclass references="weblogic.utils.StringUtils.{*}" />
            </when>
            <perform>
                <hint title="WebLogic StringUtils usage" effort="1" category-id="mandatory">
                    <message>Replace with the `StringUtils` class from Apache Commons.</message>
                    <link href="https://commons.apache.org/proper/commons-lang/" title="Apache Commons Lang" />
                    <tag>weblogic</tag>
                </hint>
            </perform>
        </rule>
        ...
    </rules>
</ruleset>
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.