1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.configuration;
20
21 import java.util.Objects;
22
23 import org.apache.maven.model.Build;
24 import org.apache.maven.model.Model;
25 import org.apache.maven.model.Plugin;
26 import org.apache.maven.model.PluginExecution;
27 import org.apache.maven.model.PluginManagement;
28
29
30
31
32
33 public class DefaultBeanConfigurationRequest implements BeanConfigurationRequest {
34
35 private Object bean;
36
37 private Object configuration;
38
39 private String configurationElement;
40
41 private ClassLoader classLoader;
42
43 private BeanConfigurationValuePreprocessor valuePreprocessor;
44
45 private BeanConfigurationPathTranslator pathTranslator;
46
47 @Override
48 public Object getBean() {
49 return bean;
50 }
51
52 @Override
53 public DefaultBeanConfigurationRequest setBean(Object bean) {
54 this.bean = bean;
55 return this;
56 }
57
58 @Override
59 public Object getConfiguration() {
60 return configuration;
61 }
62
63 @Override
64 public String getConfigurationElement() {
65 return configurationElement;
66 }
67
68 @Override
69 public DefaultBeanConfigurationRequest setConfiguration(Object configuration) {
70 return setConfiguration(configuration, null);
71 }
72
73 @Override
74 public DefaultBeanConfigurationRequest setConfiguration(Object configuration, String element) {
75 this.configuration = configuration;
76 this.configurationElement = element;
77 return this;
78 }
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93 public DefaultBeanConfigurationRequest setConfiguration(
94 Model model, String pluginGroupId, String pluginArtifactId, String pluginExecutionId) {
95 Plugin plugin = findPlugin(model, pluginGroupId, pluginArtifactId);
96 if (plugin != null) {
97 if (pluginExecutionId != null && !pluginExecutionId.isEmpty()) {
98 for (PluginExecution execution : plugin.getExecutions()) {
99 if (pluginExecutionId.equals(execution.getId())) {
100 setConfiguration(execution.getConfiguration());
101 break;
102 }
103 }
104 } else {
105 setConfiguration(plugin.getConfiguration());
106 }
107 }
108 return this;
109 }
110
111 private Plugin findPlugin(Model model, String groupId, String artifactId) {
112 if (Objects.requireNonNull(groupId, "groupId cannot be null").isEmpty()) {
113 throw new IllegalArgumentException("groupId cannot be empty");
114 }
115 if (Objects.requireNonNull(artifactId, "artifactId cannot be null").isEmpty()) {
116 throw new IllegalArgumentException("artifactId cannot be empty");
117 }
118
119 if (model != null) {
120 Build build = model.getBuild();
121 if (build != null) {
122 for (Plugin plugin : build.getPlugins()) {
123 if (groupId.equals(plugin.getGroupId()) && artifactId.equals(plugin.getArtifactId())) {
124 return plugin;
125 }
126 }
127
128 PluginManagement mgmt = build.getPluginManagement();
129 if (mgmt != null) {
130 for (Plugin plugin : mgmt.getPlugins()) {
131 if (groupId.equals(plugin.getGroupId()) && artifactId.equals(plugin.getArtifactId())) {
132 return plugin;
133 }
134 }
135 }
136 }
137 }
138
139 return null;
140 }
141
142 @Override
143 public ClassLoader getClassLoader() {
144 return classLoader;
145 }
146
147 @Override
148 public DefaultBeanConfigurationRequest setClassLoader(ClassLoader classLoader) {
149 this.classLoader = classLoader;
150 return this;
151 }
152
153 @Override
154 public BeanConfigurationValuePreprocessor getValuePreprocessor() {
155 return valuePreprocessor;
156 }
157
158 @Override
159 public DefaultBeanConfigurationRequest setValuePreprocessor(BeanConfigurationValuePreprocessor valuePreprocessor) {
160 this.valuePreprocessor = valuePreprocessor;
161 return this;
162 }
163
164 @Override
165 public BeanConfigurationPathTranslator getPathTranslator() {
166 return pathTranslator;
167 }
168
169 @Override
170 public DefaultBeanConfigurationRequest setPathTranslator(BeanConfigurationPathTranslator pathTranslator) {
171 this.pathTranslator = pathTranslator;
172 return this;
173 }
174 }