1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.settings.validation;
20
21 import javax.inject.Inject;
22 import javax.inject.Named;
23 import javax.inject.Singleton;
24
25 import java.util.List;
26 import java.util.regex.Pattern;
27
28 import org.apache.maven.api.services.BuilderProblem;
29 import org.apache.maven.api.services.SettingsBuilder;
30 import org.apache.maven.settings.Settings;
31 import org.apache.maven.settings.building.SettingsProblem.Severity;
32 import org.apache.maven.settings.building.SettingsProblemCollector;
33
34
35
36 @Named
37 @Singleton
38 public class DefaultSettingsValidator implements SettingsValidator {
39
40 private static final String ID = "[\\w.-]+";
41 private static final Pattern ID_REGEX = Pattern.compile(ID);
42
43 private final SettingsBuilder settingsBuilder;
44
45 @Inject
46 public DefaultSettingsValidator(SettingsBuilder settingsBuilder) {
47 this.settingsBuilder = settingsBuilder;
48 }
49
50 @Override
51 public void validate(Settings settings, SettingsProblemCollector problems) {
52 validate(settings, false, problems);
53 }
54
55 @Override
56 public void validate(Settings settings, boolean isProjectSettings, SettingsProblemCollector problems) {
57 List<BuilderProblem> list = settingsBuilder.validate(settings.getDelegate(), isProjectSettings);
58 for (BuilderProblem problem : list) {
59 addViolation(problems, Severity.valueOf(problem.getSeverity().name()), problem.getMessage());
60 }
61 }
62
63
64
65
66
67 private static void addViolation(SettingsProblemCollector problems, Severity severity, String message) {
68 problems.add(severity, message, -1, -1, null);
69 }
70 }