1   package org.apache.maven.model.plugin;
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  import javax.inject.Named;
23  import javax.inject.Singleton;
24  
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  import org.codehaus.plexus.util.xml.Xpp3Dom;
32  
33  
34  
35  
36  
37  
38  @Named
39  @Singleton
40  public class DefaultReportConfigurationExpander
41          implements ReportConfigurationExpander
42  {
43  
44      @Override
45      public void expandPluginConfiguration( Model model, ModelBuildingRequest request, ModelProblemCollector problems )
46      {
47          Reporting reporting = model.getReporting();
48  
49          if ( reporting != null )
50          {
51              for ( ReportPlugin reportPlugin : reporting.getPlugins() )
52              {
53                  Xpp3Dom parentDom = (Xpp3Dom) reportPlugin.getConfiguration();
54  
55                  if ( parentDom != null )
56                  {
57                      for ( ReportSet execution : reportPlugin.getReportSets() )
58                      {
59                          Xpp3Dom childDom = (Xpp3Dom) execution.getConfiguration();
60                          childDom = Xpp3Dom.mergeXpp3Dom( childDom, new Xpp3Dom( parentDom ) );
61                          execution.setConfiguration( childDom );
62                      }
63                  }
64              }
65          }
66      }
67  
68  }