in maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/internal/EnforcerRuleManager.java [133:165]
private EnforcerRuleDesc createRuleDesc(String name, String implementation) throws EnforcerRuleManagerException {
// component name should always start at lowercase character
String ruleName = Character.toLowerCase(name.charAt(0)) + name.substring(1);
if (plexusContainer.hasComponent(EnforcerRuleBase.class, ruleName)) {
try {
return new EnforcerRuleDesc(ruleName, plexusContainer.lookup(EnforcerRuleBase.class, ruleName));
} catch (ComponentLookupException e) {
throw new EnforcerRuleManagerException(e);
}
}
String ruleClass;
if (implementation != null && !implementation.isEmpty()) {
ruleClass = implementation;
} else {
ruleClass = name;
}
if (!ruleClass.contains(".")) {
ruleClass = "org.apache.maven.plugins.enforcer." + Character.toUpperCase(ruleClass.charAt(0))
+ ruleClass.substring(1);
}
try {
return new EnforcerRuleDesc(
ruleName, (EnforcerRuleBase) Class.forName(ruleClass).newInstance());
} catch (Exception e) {
throw new EnforcerRuleManagerException(
"Failed to create enforcer rules with name: " + ruleName + " or for class: " + ruleClass, e);
}
}