第5章 ルールの上書き
MTR で (またはカスタムルールでも)、配布されるコアルールを上書きできます。たとえば、ルールに一致する条件、作業、またはヒントテキストを変更できます。これは、元のルールのコピーを作成し、それをルールオーバーライドとしてマークし、必要な調整を行うことで行われます。
ルールを無効にするには、空の <rule>
要素を使用してルールのオーバーライドを作成します。
5.1. ルールの上書き
コアまたはカスタムルールを上書きできます。
手順
上書きするルールが含まれる XML ファイルをカスタムの rules ディレクトリーにコピーします。
カスタムルールは、
<MTR_HOME>/rules
、${user.home}/.mtr/rules/
、または--userRulesDirectory
コマンドライン引数で指定されたディレクトリーに配置できます。上書きするルールの
<rule>
要素のみが含まれるように XML ファイルを編集します。注記新しいルールセットによってオーバーライドされない元のルールセットのルールは、通常どおり実行されます。
- 同じルールとルールセット ID を保持するようにしてください。元のルール XML をコピーすると、ID が一致します。
-
<overrideRules>true</overrideRules>
要素をルールセットメタデータに追加します。 ルール定義を更新します。
ルール定義では、すべてを変更することができます。新しいルールは、元のルールを完全に上書きします。
以下のルールは、weblogic
ルールセットの weblogic-02000
ルールの effort
を 1
から 3
に変更します。
ルール上書き定義の例
<?xml version="1.0"?> <ruleset id="weblogic" 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"> 1 <metadata> ... <overrideRules>true</overrideRules> 2 </metadata> <rules> <rule id="weblogic-02000" xmlns="http://windup.jboss.org/schema/jboss-ruleset"> 3 <when> <javaclass references="weblogic.utils.StringUtils.{*}"/> </when> <perform> <hint effort="3" category-id="mandatory" title="WebLogic StringUtils Usage"> 4 <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>
MTR を実行すると、このルールは同じルール ID で元のルールを上書きします。Rule Provider Executions Overview の内容を確認して、新規ルールが使用されていることを確認できます。