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