3.2. 创建基本 XML 规则


这部分论述了如何创建 MTR XML 规则。这假设您已安装了 MTR。有关安装说明,请参阅 MTR CLI 指南

3.2.1. 创建基本 XML 规则模板

MTR XML 规则由 conditionsactions 组成,并使用以下规则模式:

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. 创建规则集元数据

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> 元素中。它们包含一个或多个 when 条件以及要执行的操作。

有关有效规则语法,请查看 XML 规则模式

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> 元素在满足条件时执行操作。此规则允许的操作包括应用资源分类,以及迁移步骤的线提示、迁移信息的链接和项目行报告。以下是一个有效 <when> 条件的列表。

元素描述

数据分类

此操作会添加您要应用到整个文件的元数据。例如,如果 Java 类是 JMS Message Listener,您可以添加标题为"JMS Message Listener"的分类,其中包含适用于整个文件的信息。您还可以为整个文件设置工作级别。

<hint>

此操作会将元数据添加到文件中的一行中。这提供了有关如何迁移代码部分的提示或内联信息。

<iteration>

这将指定迭代规则中定义的隐式或显式变量。

<lineitem>

这提供了在应用程序概览页面中显示的高级消息。

<link>

这提供了一个 HTML 链接,用于附加有关迁移任务的信息或文档。

<xslt>

这指定了如何转换 XML 文件。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.