3.3.
3.3.1. 复制链接链接已复制到粘贴板!
在一个规则的 when 部分中允许的条件需要扩展 GraphOperation,当前包括对 Java 类、XML 文件、项目和文件内容的评估。因为在基于 Java 的规则附加组件后对 XML 规则建模,因此会提供到 JavaDocs 链接到相关 Java 类的链接,以便更好地了解它们的行为。
完整的 XML 规则模式位于:http://windup.jboss.org/schema/windup-jboss-ruleset.xsd.
以下小节描述了更多常见的 XML when 规则条件。
默认情况下,如果提供了对于一个 when 规则条件时,则必须满足规则匹配的所有条件。
3.3.1.1. 复制链接链接已复制到粘贴板!
3.3.1.1.1. 概述 复制链接链接已复制到粘贴板!
使用 <javaclass> 元素查找导入、方法、变量声明、注释、类实施和其他与 Java 类相关的项目。要更好地了解 <javaclass> 条件,请参阅 JavaClass 类的 JavaDoc。
3.3.1.1.2. 复制链接链接已复制到粘贴板!
3.3.1.1.2.1. 复制链接链接已复制到粘贴板!
| 属性名称 | 类型 | 描述 |
|---|---|---|
| 参考 | CLASS_NAME | 要匹配的软件包或类名称。可以使用的通配符。此属性是必需的。 注意
出于性能原因,在启动引用时不应该使用通配符。例如,使用 references="weblogic.apache.xml.{*}"
|
| matchesSource | 字符串 | 完全匹配的确切正则表达式。这可用于区分硬编码的字符串。此属性是必需的。 matchesSource="log4j.logger"
|
| as | VARIABLE_NAME |
分配到该规则的变量名称,以便它可以在以后的处理中用作参考。请参见以下的 as="MyEjbRule"
|
| from | VARIABLE_NAME |
使用之前由其 from="MyEjbRule"
|
| in | PATH_FILTER | 过滤与此正则表达式匹配的输入文件(正则表达式)命名模式。可以使用的通配符。 in="{*}File1"
|
3.3.1.1.2.2. 复制链接链接已复制到粘贴板!
| 子元素 | 描述 |
|---|---|
| <location> | 在 Java 类中找到参考的位置。位置可以参考注解、字段和变量声明、导入和方法。有关有效值的完整列表,请查看 TypeReferenceLocation 的 JavaDoc 。 <location>IMPORT</location>
|
| <annotation-literal> | 匹配注解中的字面值。
<javaclass references="org.package.MyAnnotation">
<location>ANNOTATION</location>
<annotation-literal name="myvalue" pattern="test"/>
</javaclass>
请注意,在这种情况下, |
| <annotation-type> | 匹配特定注解类型。您可以提供与注解元素匹配的子条件。
以下示例将匹配 |
| <annotation-list> | 匹配注解中数组中的项目。如果没有指定数组的索引,则只在条件应用到数组中的所有项时才匹配。您可以提供与这个元素匹配的子条件。
以下示例将匹配
请注意,在这种情况下, |
3.3.1.2. 复制链接链接已复制到粘贴板!
3.3.1.2.1. 概述 复制链接链接已复制到粘贴板!
使用 <xmlfile> 元素在 XML 文件中找到信息。
3.3.1.2.2. 复制链接链接已复制到粘贴板!
3.3.1.2.2.1. 复制链接链接已复制到粘贴板!
| 属性名称 | 类型 | 描述 |
|---|---|---|
| matches | XPATH | 在一个 XML 文件条件上匹配 matches="/w:web-app/w:resource-ref/w:res-auth[text() = 'Container']"
|
| xpathResultMatch | XPATH_RESULT_STRING | 返回匹配指定正则表达式的结果 <xmlfile matches="//foo/text()" xpathResultMatch="Text from foo."/>
|
| as | VARIABLE_NAME |
分配到该规则的变量名称,以便它可以在以后的处理中用作参考。请参见以下的 as="MyEjbRule"
|
| in | PATH_FILTER | 过滤与此正则表达式匹配的输入文件(正则表达式)命名模式。可以使用的通配符。 in="{*}File1"
|
| from | VARIABLE_NAME |
使用之前由其 from="MyEjbRule"
|
| public-id | PUBLIC_ID | DTD public-id 正则表达式。 public-id="public"
|
3.3.1.2.2.2. 复制链接链接已复制到粘贴板!
matches 属性可以使用几个内置自定义 XPath 功能,该功能可能具有有用的副作用,例如对规则变量堆栈设置匹配值。
| 功能 | 描述 |
|---|---|
|
| 针对字符串匹配 XPath 表达式,可能包含 MTA 参数化占位符。 matches="windup:matches(//foo/@class, '{javaclassname}'"
这将匹配所有 |
3.3.1.2.2.3. 复制链接链接已复制到粘贴板!
| 子元素 | 描述 |
|---|---|
| <namespace> |
XML 文件中引用的命名空间。此元素包含两个可选属性: <namespace prefix="abc" uri="http://maven.apache.org/POM/4.0.0"/>
|
3.3.1.3. 复制链接链接已复制到粘贴板!
3.3.1.3.1. 概述 复制链接链接已复制到粘贴板!
使用 <project> 元素查询 Maven POM 文件以获取项目特征。要更好地了解 <project> 条件,请参阅 Project 类的 JavaDoc。
以下是一个规则的示例,该规则将检查 2.0.0.Final 和 2.2.0.Final 之间的 JUnit 依赖项版本。
3.3.1.3.2. 复制链接链接已复制到粘贴板!
3.3.1.3.2.1. 复制链接链接已复制到粘贴板!
<project> 元素用于与项目的 Maven POM 文件匹配。您可以使用此条件来查询项目的依赖项。它本身没有任何属性。
3.3.1.3.2.2. 复制链接链接已复制到粘贴板!
| 子元素 | 描述 |
|---|---|
| <artifact> |
|
3.3.1.3.2.3. 复制链接链接已复制到粘贴板!
| 属性名称 | 类型 | 描述 |
|---|---|---|
| groupId | PROJECT_GROUP_ID |
匹配依赖项的项目 |
| artifactId | PROJECT_ARTIFACT_ID |
匹配依赖项的项目 |
| fromVersion | FROM_VERSION |
指定工件的低版本边界。例如 |
| toVersion | TO_VERSION |
指定工件的高边界。例如 |
3.3.1.4. 复制链接链接已复制到粘贴板!
3.3.1.4.1. 概述 复制链接链接已复制到粘贴板!
使用 <filecontent> 元素在文件中查找字符串或文本,例如: Properties 文件中的一行。要更好地了解 <filecontent> 条件,请参阅 FileContent 类的 JavaDoc。
3.3.1.4.2. 复制链接链接已复制到粘贴板!
3.3.1.4.2.1. 复制链接链接已复制到粘贴板!
| 属性名称 | 类型 | 描述 |
|---|---|---|
| pattern | 字符串 | 将文件内容与提供的参数化字符串匹配。此属性是必需的。 |
| filename | 字符串 | 将文件名与提供的参数化字符串匹配。 |
| as | VARIABLE_NAME |
分配到该规则的变量名称,以便它可以在以后的处理中用作参考。请参见以下的 as="MyEjbRule"
|
| from | VARIABLE_NAME |
使用之前由其 from="MyEjbRule"
|
3.3.1.5. 复制链接链接已复制到粘贴板!
3.3.1.5.1. 概述 复制链接链接已复制到粘贴板!
使用 <file> 元素查找具有特定名称的文件是否存在,例如: ibm-webservices-ext.xmi 文件。要更好地了解 <file> 条件,请参阅 File 类的 JavaDoc。
3.3.1.5.2. 复制链接链接已复制到粘贴板!
3.3.1.5.2.1. 复制链接链接已复制到粘贴板!
| 属性名称 | 类型 | 描述 |
|---|---|---|
| filename | 字符串 | 将文件名与提供的参数化字符串匹配。此属性是必需的。 |
| as | VARIABLE_NAME |
分配到该规则的变量名称,以便它可以在以后的处理中用作参考。请参见以下的 as="MyEjbRule"
|
| from | VARIABLE_NAME |
使用之前由其 例如: from="MyEjbRule"
|
3.3.1.6. 复制链接链接已复制到粘贴板!
3.3.1.6.1. 概述 复制链接链接已复制到粘贴板!
使用 <has-hint> 元素测试某个文件或行是否已关联了 hint。它主要用于防止存在提示时触发,或者在没有其他条件时为默认执行实施规则。要更好地了解 <has-hint> 条件,请参阅 HasHint 类的 JavaDoc。
以下是一条规则,它检查是否存在用于 IBM JMS 目的地消息的提示,如果不包含它。
3.3.1.6.2. 构造 复制链接链接已复制到粘贴板!
<has-hint> 元素用于判断文件或行是否存在提示。它没有任何子元素。
3.3.1.6.2.1. 复制链接链接已复制到粘贴板!
| 属性名称 | 类型 | 描述 |
|---|---|---|
| message | 字符串 | 可选参数允许您将提示与提供的消息字符串匹配。 |
3.3.1.7. 复制链接链接已复制到粘贴板!
3.3.1.7.1. 概述 复制链接链接已复制到粘贴板!
使用 <has-classification> 元素测试文件或行是否具有分类。它主要用于防止 classification 已存在时触发,或者在没有其他条件时为默认执行实施规则。要更好地了解 <has-classification> 条件,请参阅 HasClassification 类的 JavaDoc。
3.3.1.7.2. 构造 复制链接链接已复制到粘贴板!
has-classification 元素用于判断是否存在指定的分类。它没有任何子元素。
3.3.1.7.2.1. 复制链接链接已复制到粘贴板!
| 属性名称 | 类型 | 描述 |
|---|---|---|
| title | 字符串 | 与分类匹配的可选标题。 |
3.3.1.8. Syntax 复制链接链接已复制到粘贴板!
3.3.1.8.1. 概述 复制链接链接已复制到粘贴板!
使用 <graph-query> 元素搜索生成的任何元素图表。这个元素主要用于搜索特定的存档。要更好地了解 <graph-query> 条件,请参阅 QueryHandler 类的 JavaDoc。
以下是一个规则示例,用于测试来确定是否找到了任何 ehcache 软件包。
3.3.1.8.2. 构造一个 复制链接链接已复制到粘贴板!
3.3.1.8.2.1. 复制链接链接已复制到粘贴板!
| 属性名称 | 类型 | 描述 |
|---|---|---|
| discriminator | MODEL_TYPE |
用于搜索的模态类型这可以是任何有效的模型,但建议使用 |
| as | VARIABLE_NAME |
分配到该规则的变量名称,以便它可以在以后的处理中用作参考。请参见以下的 as="MyEjbRule"
|
| from | VARIABLE_NAME |
使用之前由其 from="MyEjbRule"
|
3.3.1.8.2.2. 复制链接链接已复制到粘贴板!
| 属性名称 | 类型 | 描述 |
|---|---|---|
| name | 字符串 |
在所选模型中要匹配的属性名称。当使用任何基于文件的模型时,建议在 |
| type | property-type |
定义预期的属性类型,可以是 |
| searchType | property-search-type |
定义如何匹配条件。如果设置为 |