2.3. 最初の YAML ルールを作成する


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

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

2.3.1. ルールの YAML ファイルを作成する

  • 最初のルール用の YAML ファイルを作成します。
$ mkdir /home/<USER>/rule.yaml

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

  1. ディレクトリーに、jboss-web.xml および pom.xml ファイルを作成します。

    mkdir /home/<USER>/data/
    touch /home/<USER>/data/jboss-web.xml
    touch /home/<USER>/data/pom.xml
  2. 作成した jboss-web.xml ファイルに、次の内容を貼り付けます。

    <!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>
  3. 作成した pom.xml ファイルに、次の内容を貼り付けます。

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
      <groupId>test</groupId>
      <artifactId>test</artifactId>
      <version>1.1.0-SNAPSHOT</version>
    
      <properties>
    	<maven.compiler.source>1.7</maven.compiler.source>
    	<maven.compiler.target>1.7</maven.compiler.target>
      </properties>
    
      <dependencies>
      </dependencies>
    </project>

2.3.3. ルールの作成

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

when(condition)
  perform(action)

手順

  • 作成した rule.yaml ファイルに、次の内容を貼り付けます。

    - ruleID: <UNIQUE_RULE_ID> 1
      description: <DESCRIPTION> 2
      when:
        <CONDITION(S)> 3
      message: <MESSAGE> 4
      labels: <LABELS> 5
      effort: <EFFORT> 6
      links:
      - <LINKS> 7
    1
    ルールの一意の ID。たとえば、jboss5-web-class-loading です。
    2
    ルールの文字での説明。
    3
    1 つ以上の条件を指定して when ブロックを完成させます。
    1. このルールは XML ファイル内の一致をチェックするため、builtin プロバイダーの XML ケイパビリティーを使用します。
    2. jboss-web の子である class-loading 要素を照合するには、XPath 式 jboss-web/web-loading を XML クエリーとして使用します。この場合、必要な条件は 1 つだけです。

      when:
        builtin.xml:
          xpath: jboss-web/class-loading
    4
    移行の問題を説明する役立つメッセージ。ルールが一致すると、レポートにメッセージが生成されます。以下に例を示します。
    message: The class-loading element is no longer valid in the jboss-web.xml file.
    5
    ルールの文字列ラベルのリスト。
    6
    この問題を解決するために予想されるストーリーポイントの数。
    7
    検出した移行問題に関するドキュメントを指す 1 つ以上のハイパーリンク。
    links:
    - url: 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

    以上でルールが完成しました。ルールは次のようになります。

    - ruleID: jboss5-web-class-loading
      description: Find class loading element in JBoss XML file.
      when:
        builtin.xml:
          xpath: jboss-web/class-loading
      message: The class-loading element is no longer valid in the jboss-web.xml file.
      effort: 3
      links:
      - url: 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

2.3.4. ルールのインストール

手順

  • CLI で、作成したルールファイルを指定します。

    –rules /home/<USER>/rules.yaml

2.3.5. ルールのテスト

手順

ルールをテストするには、作成したテストデータを入力に指定し、MTA CLI のルールオプションを使用してルールを渡します。

mta-cli analyze --input /home/<USER>/data/ --output /home/<USER>/output/ --rules /home/<USER>/rules.yaml

2.3.6. レポートを確認する

レポートを確認して、予想される結果が表示されることを確認します。

手順

  1. 分析が完了すると、コマンドは HTML レポートへのパスを出力します。

    INFO[0066] Static report created. Access it at this URL:  URL="file:/home/<USER>/output/static-report/index.html"

    Web ブラウザーで、/home/<USER_NAME>/output/static-report/index.html を開きます。

  2. 左側のメニューの Issues タブに移動します。
  3. ルールが実行されていることを確認します。

    1. Issues テーブルの検索バーに JBoss XML と入力します。
    2. テーブルに、タイトルが Find class loading element in JBoss XML file の問題が存在することを確認します。
  4. jboss-web.xml リンクをクリックして、影響を受けたファイルを開きます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.