private Xpp3Dom mergeConfiguration()

in src/main/java/org/apache/maven/reporting/exec/DefaultMavenReportExecutor.java [466:498]


    private Xpp3Dom mergeConfiguration(
            PlexusConfiguration mojoConf,
            Xpp3Dom pluginMgmtConfig,
            PlexusConfiguration pluginConf,
            PlexusConfiguration reportSetConf,
            Set<String> parameters) {
        Xpp3Dom mojoConfig = (mojoConf != null) ? convert(mojoConf) : new Xpp3Dom("configuration");

        if (pluginMgmtConfig != null || pluginConf != null || reportSetConf != null) {
            Xpp3Dom pluginConfig = (pluginConf == null) ? new Xpp3Dom("fake") : convert(pluginConf);

            // merge pluginConf into reportSetConf
            Xpp3Dom mergedConfig = Xpp3DomUtils.mergeXpp3Dom(convert(reportSetConf), pluginConfig);
            // then merge pluginMgmtConfig
            mergedConfig = Xpp3DomUtils.mergeXpp3Dom(mergedConfig, pluginMgmtConfig);
            // then merge mojoConf
            mergedConfig = Xpp3DomUtils.mergeXpp3Dom(mergedConfig, mojoConfig);

            // clean result
            Xpp3Dom cleanedConfig = new Xpp3Dom("configuration");
            if (mergedConfig.getChildren() != null) {
                for (Xpp3Dom parameter : mergedConfig.getChildren()) {
                    if (parameters.contains(parameter.getName())) {
                        cleanedConfig.addChild(parameter);
                    }
                }
            }

            mojoConfig = cleanedConfig;
        }

        return mojoConfig;
    }