1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.settings;
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 import java.util.ArrayList;
41 import java.util.Collections;
42 import java.util.List;
43 import java.util.stream.Collectors;
44
45 import org.apache.maven.api.model.ActivationFile;
46 import org.apache.maven.api.settings.Activation;
47 import org.apache.maven.api.settings.ActivationOS;
48 import org.apache.maven.api.settings.ActivationProperty;
49 import org.apache.maven.api.settings.Profile;
50 import org.apache.maven.api.settings.Repository;
51 import org.apache.maven.api.settings.RepositoryPolicy;
52 import org.apache.maven.api.settings.Settings;
53 import org.apache.maven.settings.v4.SettingsMerger;
54
55
56
57
58
59
60 public final class SettingsUtilsV4 {
61
62 private SettingsUtilsV4() {
63
64 }
65
66
67
68
69
70 public static Settings merge(Settings dominant, Settings recessive) {
71 return new SettingsMerger().merge(dominant, recessive, true, Collections.emptyMap());
72 }
73
74
75
76
77
78 public static Profile convertToSettingsProfile(org.apache.maven.api.model.Profile modelProfile) {
79 Profile.Builder profile = Profile.newBuilder();
80
81 profile.id(modelProfile.getId());
82
83 org.apache.maven.api.model.Activation modelActivation = modelProfile.getActivation();
84
85 if (modelActivation != null) {
86 Activation.Builder activation = Activation.newBuilder();
87
88 activation.activeByDefault(modelActivation.isActiveByDefault());
89
90 activation.jdk(modelActivation.getJdk());
91
92 org.apache.maven.api.model.ActivationProperty modelProp = modelActivation.getProperty();
93
94 if (modelProp != null) {
95 ActivationProperty prop = ActivationProperty.newBuilder()
96 .name(modelProp.getName())
97 .value(modelProp.getValue())
98 .build();
99 activation.property(prop);
100 }
101
102 org.apache.maven.api.model.ActivationOS modelOs = modelActivation.getOs();
103
104 if (modelOs != null) {
105 ActivationOS os = ActivationOS.newBuilder()
106 .arch(modelOs.getArch())
107 .family(modelOs.getFamily())
108 .name(modelOs.getName())
109 .version(modelOs.getVersion())
110 .build();
111
112 activation.os(os);
113 }
114
115 org.apache.maven.api.model.ActivationFile modelFile = modelActivation.getFile();
116
117 if (modelFile != null) {
118 org.apache.maven.api.settings.ActivationFile file =
119 org.apache.maven.api.settings.ActivationFile.newBuilder()
120 .exists(modelFile.getExists())
121 .missing(modelFile.getMissing())
122 .build();
123
124 activation.file(file);
125 }
126
127 profile.activation(activation.build());
128 }
129
130 profile.properties(modelProfile.getProperties().entrySet().stream()
131 .collect(Collectors.toMap(
132 e -> e.getKey().toString(), e -> e.getValue().toString())));
133
134 List<org.apache.maven.api.model.Repository> repos = modelProfile.getRepositories();
135 if (repos != null) {
136 List<Repository> repositories = new ArrayList<>();
137 for (org.apache.maven.api.model.Repository repo : repos) {
138 repositories.add(convertToSettingsRepository(repo));
139 }
140 profile.repositories(repositories);
141 }
142
143 List<org.apache.maven.api.model.Repository> pluginRepos = modelProfile.getPluginRepositories();
144 if (pluginRepos != null) {
145 List<Repository> repositories = new ArrayList<>();
146 for (org.apache.maven.api.model.Repository pluginRepo : pluginRepos) {
147 repositories.add(convertToSettingsRepository(pluginRepo));
148 }
149 profile.pluginRepositories(repositories);
150 }
151
152 return profile.build();
153 }
154
155
156
157
158
159 public static org.apache.maven.api.model.Profile convertFromSettingsProfile(Profile settingsProfile) {
160 org.apache.maven.api.model.Profile.Builder profile = org.apache.maven.api.model.Profile.newBuilder();
161
162 profile.id(settingsProfile.getId());
163
164 Activation settingsActivation = settingsProfile.getActivation();
165
166 if (settingsActivation != null) {
167 org.apache.maven.api.model.Activation.Builder activation =
168 org.apache.maven.api.model.Activation.newBuilder();
169
170 activation.activeByDefault(settingsActivation.isActiveByDefault());
171
172 activation.jdk(settingsActivation.getJdk());
173
174 ActivationProperty settingsProp = settingsActivation.getProperty();
175 if (settingsProp != null) {
176 activation.property(org.apache.maven.api.model.ActivationProperty.newBuilder()
177 .name(settingsProp.getName())
178 .value(settingsProp.getValue())
179 .build());
180 }
181
182 ActivationOS settingsOs = settingsActivation.getOs();
183 if (settingsOs != null) {
184 activation.os(org.apache.maven.api.model.ActivationOS.newBuilder()
185 .arch(settingsOs.getArch())
186 .family(settingsOs.getFamily())
187 .name(settingsOs.getName())
188 .version(settingsOs.getVersion())
189 .build());
190 }
191
192 org.apache.maven.api.settings.ActivationFile settingsFile = settingsActivation.getFile();
193 if (settingsFile != null) {
194 activation.file(ActivationFile.newBuilder()
195 .exists(settingsFile.getExists())
196 .missing(settingsFile.getMissing())
197 .build());
198 }
199
200 profile.activation(activation.build());
201 }
202
203 profile.properties(settingsProfile.getProperties());
204
205 List<Repository> repos = settingsProfile.getRepositories();
206 if (repos != null) {
207 profile.repositories(repos.stream()
208 .map(SettingsUtilsV4::convertFromSettingsRepository)
209 .collect(Collectors.toList()));
210 }
211
212 List<Repository> pluginRepos = settingsProfile.getPluginRepositories();
213 if (pluginRepos != null) {
214 profile.pluginRepositories(pluginRepos.stream()
215 .map(SettingsUtilsV4::convertFromSettingsRepository)
216 .collect(Collectors.toList()));
217 }
218
219 org.apache.maven.api.model.Profile value = profile.build();
220 value.setSource("settings.xml");
221 return value;
222 }
223
224
225
226
227
228 private static org.apache.maven.api.model.Repository convertFromSettingsRepository(Repository settingsRepo) {
229 org.apache.maven.api.model.Repository.Builder repo = org.apache.maven.api.model.Repository.newBuilder();
230
231 repo.id(settingsRepo.getId());
232 repo.layout(settingsRepo.getLayout());
233 repo.name(settingsRepo.getName());
234 repo.url(settingsRepo.getUrl());
235
236 if (settingsRepo.getSnapshots() != null) {
237 repo.snapshots(convertRepositoryPolicy(settingsRepo.getSnapshots()));
238 }
239 if (settingsRepo.getReleases() != null) {
240 repo.releases(convertRepositoryPolicy(settingsRepo.getReleases()));
241 }
242
243 return repo.build();
244 }
245
246
247
248
249
250 private static org.apache.maven.api.model.RepositoryPolicy convertRepositoryPolicy(
251 RepositoryPolicy settingsPolicy) {
252 org.apache.maven.api.model.RepositoryPolicy policy = org.apache.maven.api.model.RepositoryPolicy.newBuilder()
253 .enabled(Boolean.toString(settingsPolicy.isEnabled()))
254 .updatePolicy(settingsPolicy.getUpdatePolicy())
255 .checksumPolicy(settingsPolicy.getChecksumPolicy())
256 .build();
257 return policy;
258 }
259
260
261
262
263
264 private static Repository convertToSettingsRepository(org.apache.maven.api.model.Repository modelRepo) {
265 Repository repo = Repository.newBuilder()
266 .id(modelRepo.getId())
267 .layout(modelRepo.getLayout())
268 .name(modelRepo.getName())
269 .url(modelRepo.getUrl())
270 .snapshots(modelRepo.getSnapshots() != null ? convertRepositoryPolicy(modelRepo.getSnapshots()) : null)
271 .releases(modelRepo.getReleases() != null ? convertRepositoryPolicy(modelRepo.getReleases()) : null)
272 .build();
273
274 return repo;
275 }
276
277
278
279
280
281 private static RepositoryPolicy convertRepositoryPolicy(org.apache.maven.api.model.RepositoryPolicy modelPolicy) {
282 RepositoryPolicy policy = RepositoryPolicy.newBuilder()
283 .enabled(modelPolicy.isEnabled())
284 .updatePolicy(modelPolicy.getUpdatePolicy())
285 .checksumPolicy(modelPolicy.getChecksumPolicy())
286 .build();
287 return policy;
288 }
289
290
291
292
293
294 public static org.apache.maven.settings.Settings copySettings(org.apache.maven.settings.Settings settings) {
295 if (settings == null) {
296 return null;
297 }
298 return new org.apache.maven.settings.Settings(settings.getDelegate());
299 }
300 }