class DefaultPluginConfigurationExpander implements PluginConfigurationExpander {

    @Override
    public void expandPluginConfiguration(Model model, ModelBuildingRequest request, ModelProblemCollector problems) {<FILL_FUNCTION_BODY>}

    private void expand(List<Plugin> plugins) {
        for (Plugin plugin : plugins) {
            XmlNode pluginConfiguration = plugin.getDelegate().getConfiguration();

            if (pluginConfiguration != null) {
                for (PluginExecution execution : plugin.getExecutions()) {
                    XmlNode executionConfiguration = execution.getDelegate().getConfiguration();
                    executionConfiguration = XmlNode.merge(executionConfiguration, pluginConfiguration);
                    execution.update(execution.getDelegate().withConfiguration(executionConfiguration));
                }
            }
        }
    }
}

        Build build = model.getBuild();

        if (build != null) {
            expand(build.getPlugins());

            PluginManagement pluginManagement = build.getPluginManagement();

            if (pluginManagement != null) {
                expand(pluginManagement.getPlugins());
            }
        }
    
<no_super_class>