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 java.util.List;
25
26 import org.apache.maven.api.xml.XmlNode;
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
35
36
37
38
39 @Named
40 @Singleton
41 public class DefaultPluginConfigurationExpander implements PluginConfigurationExpander {
42
43 @Override
44 public void expandPluginConfiguration(Model model, ModelBuildingRequest request, ModelProblemCollector problems) {
45 Build build = model.getBuild();
46
47 if (build != null) {
48 expand(build.getPlugins());
49
50 PluginManagement pluginManagement = build.getPluginManagement();
51
52 if (pluginManagement != null) {
53 expand(pluginManagement.getPlugins());
54 }
55 }
56 }
57
58 private void expand(List<Plugin> plugins) {
59 for (Plugin plugin : plugins) {
60 XmlNode pluginConfiguration = plugin.getDelegate().getConfiguration();
61
62 if (pluginConfiguration != null) {
63 for (PluginExecution execution : plugin.getExecutions()) {
64 XmlNode executionConfiguration = execution.getDelegate().getConfiguration();
65 executionConfiguration = XmlNode.merge(executionConfiguration, pluginConfiguration);
66 execution.update(execution.getDelegate().withConfiguration(executionConfiguration));
67 }
68 }
69 }
70 }
71 }