in src/main/java/org/apache/maven/plugins/pmd/PmdReport.java [426:449]
private String determineRulesetFilename(String ruleset) {
String result = ruleset.trim();
String lowercase = result.toLowerCase(Locale.ROOT);
if (lowercase.startsWith("http://") || lowercase.startsWith("https://") || lowercase.endsWith(".xml")) {
return result;
}
// assume last part is a single rule, e.g. myruleset.xml/SingleRule
if (result.indexOf('/') > -1) {
String rulesetFilename = result.substring(0, result.lastIndexOf('/'));
if (rulesetFilename.toLowerCase(Locale.ROOT).endsWith(".xml")) {
return rulesetFilename;
}
}
// maybe a built-in ruleset name, e.g. java-design -> rulesets/java/design.xml
int dashIndex = lowercase.indexOf('-');
if (dashIndex > -1 && lowercase.indexOf('-', dashIndex + 1) == -1) {
String language = result.substring(0, dashIndex);
String rulesetName = result.substring(dashIndex + 1);
return "rulesets/" + language + "/" + rulesetName + ".xml";
}
// fallback - no change of the given ruleset specifier
return result;
}