Use multi valued property as a PoC

This commit is contained in:
Clément Fournier
2018-02-03 14:30:11 +01:00
parent 5e8e125afa
commit 5a3e1941d0
2 changed files with 34 additions and 5 deletions

View File

@ -25,14 +25,17 @@ The following types are considered valid: pom, jar, maven-plugin, ejb, war, ear,
<properties>
<property name="xpath">
<value>
<![CDATA[
//dependencyManagement/dependency/type/text[not(contains('pom, jar, maven-plugin, ejb, war, ear, rar, par',@Image))]
<![CDATA[
//dependencyManagement/dependency/type/text[not(@Image = $validTypes)]
]]>
</value>
</property>
<!-- FIXME: property injection seems to be failing with XML.... -->
<!-- property name="validTypes" value="pom, jar, maven-plugin, ejb, war, ear, rar, par" description="Set of valid types."-->
<!-- Then use as message: "By default, Maven only recognizes the following types: $validTypes." -->
<property name="version" value="2.0"/>
<property name="validTypes"
value="pom,jar,maven-plugin,ejb,war,ear,rar,par"
type="List[String]"
delimiter=","
description="Set of valid types."/>
</properties>
<example>
<![CDATA[

View File

@ -47,6 +47,32 @@
</dependency>
</dependencyManagement>
</project>
]]></code>
<source-type>pom</source-type>
</test-code>
<test-code>
<description>Simple POM file with violation</description>
<rule-property name="validTypes">bom</rule-property>
<expected-problems>0</expected-problems>
<code><![CDATA[
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>xml-pom</artifactId>
<version>1.0.0-SNAPSHOT</version>
<dependencyManagement>
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>${arquillian.version}</version>
<type>bom</type>
<scope>import</scope>
</dependency>
</dependencyManagement>
</project>
]]></code>
<source-type>pom</source-type>