diff --git a/p3c-pmd/src/main/java/com/alibaba/p3c/pmd/lang/java/rule/other/AvoidApacheBeanUtilsCopyRule.java b/p3c-pmd/src/main/java/com/alibaba/p3c/pmd/lang/java/rule/other/AvoidApacheBeanUtilsCopyRule.java index 4ad8568de..3462740f4 100644 --- a/p3c-pmd/src/main/java/com/alibaba/p3c/pmd/lang/java/rule/other/AvoidApacheBeanUtilsCopyRule.java +++ b/p3c-pmd/src/main/java/com/alibaba/p3c/pmd/lang/java/rule/other/AvoidApacheBeanUtilsCopyRule.java @@ -30,8 +30,9 @@ */ public class AvoidApacheBeanUtilsCopyRule extends AbstractXpathRule { private static final String XPATH = - "//PrimaryPrefix/Name[@Image='BeanUtils.copyProperties' and " - + "//ImportDeclaration[@ImportedName='org.apache.commons.beanutils.BeanUtils']]"; + "//PrimaryPrefix/Name[(@Image='BeanUtils.copyProperties' and " + + "//ImportDeclaration[@ImportedName='org.apache.commons.beanutils.BeanUtils']) or " + + "starts-with(@Image,'org.apache.commons.beanutils.BeanUtils.copyProperties.copyProperties')]"; public AvoidApacheBeanUtilsCopyRule() { setXPath(XPATH); diff --git a/p3c-pmd/src/test/resources/com/alibaba/p3c/pmd/lang/java/rule/other/xml/AvoidApacheBeanUtilsCopyRule.xml b/p3c-pmd/src/test/resources/com/alibaba/p3c/pmd/lang/java/rule/other/xml/AvoidApacheBeanUtilsCopyRule.xml index 727a9790e..d85f880d1 100644 --- a/p3c-pmd/src/test/resources/com/alibaba/p3c/pmd/lang/java/rule/other/xml/AvoidApacheBeanUtilsCopyRule.xml +++ b/p3c-pmd/src/test/resources/com/alibaba/p3c/pmd/lang/java/rule/other/xml/AvoidApacheBeanUtilsCopyRule.xml @@ -3,7 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pmd.sourceforge.net/rule-tests https://pmd.sourceforge.io/rule-tests_1_0_0.xsd"> - - Use Apache BeanUtils copy + Use Apache BeanUtils copyProperties 1 5 - + + + + + + + + + Use Apache BeanUtils other + 0 +