第 2 章 使用规则入门
您可以通过创建规则或查看快速入门来开始创建自定义 MTA 规则。
2.1. 创建第一个 XML 规则 复制链接链接已复制到粘贴板!
本小节介绍了创建和测试第一个基于 MTA XML 的规则的过程。这假设您已安装了 MTA。有关安装说明,请参阅 CLI 指南中的安装和运行 CLI。
在本例中,您将编写一个规则来发现应用程序定义了包含 <class-loading>
元素的 jboss-web.xml
文件,并提供描述如何迁移代码的文档的链接。
为规则创建目录结构
创建目录结构以包含您的第一条规则和用于测试的数据文件。
mkdir -p /home/<USER_NAME>/migration-rules/rules mkdir -p /home/<USER_NAME>/migration-rules/data
$ mkdir -p /home/<USER_NAME>/migration-rules/rules
$ mkdir -p /home/<USER_NAME>/migration-rules/data
此目录结构也将用于存放生成的 MTA 报告。
创建数据来测试规则
-
在
/home/<USER_NAME>/migration-rules/data/
子目录中创建一个jbossweb.xml
文件。 复制以下内容。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建规则
基于 MTA XML 的规则使用以下规则模式:
when(condition) perform(action) otherwise(action)
when(condition)
perform(action)
otherwise(action)
流程
在
/home/<USER_NAME>/migration-rules/rules/
目录中,创建一个名为JBoss5-web-class-loading.windup.xml
的文件,其中包含以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意XML 文件名必须包含
.windup.xml
扩展。否则,MTA 不会评估新规则。为 ruleset 和 rule 添加唯一标识符:
-
将
<UNIQUE_RULESET_ID>
替换为适当的规则集 ID,如JBoss5-web-class-loading
。 -
将
<UNIQUE_RULE_ID>
替换为适当的规则 ID,例如JBoss5-web-class-loading_001
。
-
将
添加以下 ruleset 附加组件依赖项:
<dependencies> <addon id="org.jboss.windup.rules,windup-rules-javaee,3.0.0.Final"/> <addon id="org.jboss.windup.rules,windup-rules-java,3.0.0.Final"/> </dependencies>
<dependencies> <addon id="org.jboss.windup.rules,windup-rules-javaee,3.0.0.Final"/> <addon id="org.jboss.windup.rules,windup-rules-java,3.0.0.Final"/> </dependencies>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加源和目标技术:
-
将
<SOURCE_ID>
替换为eap
。 -
将
<TARGET_ID>
替换为eap
。
-
将
设置源和目标技术版本。
-
将
<SOURCE_VERSION_RANGE>
替换为(4,5)
。 -
将
<TARGET_VERSION_RANGE>
替换为(6,)
。
如需更多信息,请参阅 Apache Maven 版本范围规格。
-
将
完成
when
条件。由于此规则测试在 XML 文件中的一个匹配项,因此xmlfile
被用于评估文件。要在作为
jboss-web
的子class-loading
项上匹配,请使用 xpath 表达式jboss-web/class-loading
。<when> <xmlfile matches="jboss-web/class-loading" /> </when>
<when> <xmlfile matches="jboss-web/class-loading" /> </when>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为这个规则完成
perform
操作。-
添加带有描述性标题的分类,以及
1
的工作量级别。 提供提示以及描述迁移详情的文档的链接。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
添加带有描述性标题的分类,以及
该规则现已完成,应类似以下示例。
安装规则
通过将规则放入相应的目录来安装 MTA 规则。
将 JBoss5-web-class-loading.windup.xml
复制到 <MTA_HOME>/rules/
目录。
cp /home/<USER_NAME>/migration-rules/rules/JBoss5-web-class-loading.windup.xml <MTA_HOME>/rules/
$ cp /home/<USER_NAME>/migration-rules/rules/JBoss5-web-class-loading.windup.xml <MTA_HOME>/rules/
测试规则
打开一个终端,再运行以下命令,将测试文件作为输入参数和输出报告的目录传递。
<MTA_HOME>/bin/windup-cli --sourceMode --input /home/<USER_NAME>/migration-rules/data --output /home/<USER_NAME>/migration-rules/reports --target eap:6
$ <MTA_HOME>/bin/windup-cli --sourceMode --input /home/<USER_NAME>/migration-rules/data --output /home/<USER_NAME>/migration-rules/reports --target eap:6
您应看到以下结果:
Report created: /home/<USER_NAME>/migration-rules/reports/index.html Access it at this URL: file:///home/<USER_NAME>/migration-rules/reports/index.html
Report created: /home/<USER_NAME>/migration-rules/reports/index.html
Access it at this URL: file:///home/<USER_NAME>/migration-rules/reports/index.html
查看报告
查看报告以确保它提供了预期的结果。有关 MTA 报告的详细指导,请参阅 MTA CLI 指南中的审阅报告部分。
-
在一个 web 浏览器打开
/home/<USER_NAME>/migration-rules/reports/index.html
。 验证规则是否已成功运行。
- 在主登录页面中,点 Rule providers execution overview 链接,以打开 Rule Providers Execution Overview。
找到
JBoss5-web-class-loading_001
规则,验证它的 Status? 是Condition met
,它的 Result? 是success
。图 2.1. 测试规则执行
验证规则是否与测试数据匹配:
-
在主登录页面中,点应用程序或输入文件夹的名称,本例中为
data
。 - 点 Application Details 报告链接。
点 jboss-web.xml 链接,以查看 Source 报告。
您可以看到
<class-loading>
行已被突出显示,自定义规则中的 hint 会显示内联。图 2.2. 规则匹配
文件顶部列出了匹配规则的分类。您可以使用链接图标查看该规则的详情。请注意在本示例中,
jboss-web.xml
文件匹配另外一个规则 (JBoss web application descriptor (jboss-web.xml)
) ,它生成的故事点为1
。此故事点和来自自定义规则的1
个故事点将此文件的总故事点设置为2
。
-
在主登录页面中,点应用程序或输入文件夹的名称,本例中为