public List createRules()

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;
    }