in maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/internal/EnforcerRuleManager.java [86:123]
public List<EnforcerRuleDesc> createRules(PlexusConfiguration rules, Log log) throws EnforcerRuleManagerException {
List<EnforcerRuleDesc> result = new ArrayList<>();
if (rules == null || rules.getChildCount() == 0) {
return result;
}
ClassRealm classRealm = mojoExecutionProvider
.get()
.getMojoDescriptor()
.getPluginDescriptor()
.getClassRealm();
ExpressionEvaluator evaluator =
new PluginParameterExpressionEvaluator(sessionProvider.get(), mojoExecutionProvider.get());
EnforcerLogger enforcerLoggerError = new EnforcerLoggerError(log);
EnforcerLogger enforcerLoggerWarn = new EnforcerLoggerWarn(log);
for (PlexusConfiguration ruleConfig : rules.getChildren()) {
// we need rule level before configuration in order to proper set logger
EnforcerLevel ruleLevel = getRuleLevelFromConfig(ruleConfig);
EnforcerRuleDesc ruleDesc = createRuleDesc(ruleConfig.getName(), ruleConfig.getAttribute("implementation"));
// setup logger before rule configuration
ruleDesc.getRule().setLog(ruleLevel == EnforcerLevel.ERROR ? enforcerLoggerError : enforcerLoggerWarn);
if (ruleConfig.getChildCount() > 0) {
try {
componentConfigurator.configureComponent(ruleDesc.getRule(), ruleConfig, evaluator, classRealm);
} catch (ComponentConfigurationException e) {
throw new EnforcerRuleManagerException(e);
}
}
result.add(ruleDesc);
}
return result;
}