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 java.util.List;
23
24 import javax.inject.Named;
25 import javax.inject.Singleton;
26
27 import org.apache.maven.model.Build;
28 import org.apache.maven.model.Model;
29 import org.apache.maven.model.Plugin;
30 import org.apache.maven.model.PluginExecution;
31 import org.apache.maven.model.PluginManagement;
32 import org.apache.maven.model.building.ModelBuildingRequest;
33 import org.apache.maven.model.building.ModelProblemCollector;
34 import org.codehaus.plexus.util.xml.Xpp3Dom;
35
36
37
38
39
40
41 @Named
42 @Singleton
43 public class DefaultPluginConfigurationExpander
44 implements PluginConfigurationExpander
45 {
46
47 @Override
48 public void expandPluginConfiguration( Model model, ModelBuildingRequest request, ModelProblemCollector problems )
49 {
50 Build build = model.getBuild();
51
52 if ( build != null )
53 {
54 expand( build.getPlugins() );
55
56 PluginManagement pluginManagement = build.getPluginManagement();
57
58 if ( pluginManagement != null )
59 {
60 expand( pluginManagement.getPlugins() );
61 }
62 }
63 }
64
65 private void expand( List<Plugin> plugins )
66 {
67 for ( Plugin plugin : plugins )
68 {
69 Xpp3Dom pluginConfiguration = (Xpp3Dom) plugin.getConfiguration();
70
71 if ( pluginConfiguration != null )
72 {
73 for ( PluginExecution execution : plugin.getExecutions() )
74 {
75 Xpp3Dom executionConfiguration = (Xpp3Dom) execution.getConfiguration();
76
77 executionConfiguration =
78 Xpp3Dom.mergeXpp3Dom( executionConfiguration, new Xpp3Dom( pluginConfiguration ) );
79
80 execution.setConfiguration( executionConfiguration );
81 }
82 }
83 }
84 }
85
86 }