1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  package org.apache.maven.model.plugin;
20  
21  import javax.inject.Named;
22  import javax.inject.Singleton;
23  
24  import org.apache.maven.api.xml.XmlNode;
25  import org.apache.maven.model.Model;
26  import org.apache.maven.model.ReportPlugin;
27  import org.apache.maven.model.ReportSet;
28  import org.apache.maven.model.Reporting;
29  import org.apache.maven.model.building.ModelBuildingRequest;
30  import org.apache.maven.model.building.ModelProblemCollector;
31  
32  
33  
34  
35  
36  @Named
37  @Singleton
38  public class DefaultReportConfigurationExpander implements ReportConfigurationExpander {
39  
40      @Override
41      public void expandPluginConfiguration(Model model, ModelBuildingRequest request, ModelProblemCollector problems) {
42          Reporting reporting = model.getReporting();
43  
44          if (reporting != null) {
45              for (ReportPlugin reportPlugin : reporting.getPlugins()) {
46                  XmlNode parentDom = reportPlugin.getDelegate().getConfiguration();
47  
48                  if (parentDom != null) {
49                      for (ReportSet execution : reportPlugin.getReportSets()) {
50                          XmlNode childDom = execution.getDelegate().getConfiguration();
51                          childDom = XmlNode.merge(childDom, parentDom);
52                          execution.update(execution.getDelegate().withConfiguration(childDom));
53                      }
54                  }
55              }
56          }
57      }
58  }