1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugin.internal;
20
21 import javax.inject.Named;
22 import javax.inject.Singleton;
23
24 import org.apache.maven.plugin.descriptor.MojoDescriptor;
25 import org.apache.maven.plugin.descriptor.Parameter;
26 import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
27 import org.codehaus.plexus.configuration.PlexusConfiguration;
28
29
30
31
32
33
34 @Named
35 @Singleton
36 class ReadOnlyPluginParametersValidator extends AbstractMavenPluginDescriptorSourcedParametersValidator {
37 @Override
38 protected String getParameterLogReason(Parameter parameter) {
39 return "is read-only, must not be used in configuration";
40 }
41
42 @Override
43 protected void doValidate(
44 MojoDescriptor mojoDescriptor,
45 PlexusConfiguration pomConfiguration,
46 ExpressionEvaluator expressionEvaluator) {
47 if (mojoDescriptor.getParameters() == null) {
48 return;
49 }
50
51 mojoDescriptor.getParameters().stream()
52 .filter(parameter -> !parameter.isEditable())
53 .forEach(parameter -> checkParameter(parameter, pomConfiguration, expressionEvaluator));
54 }
55
56 private void checkParameter(
57 Parameter parameter, PlexusConfiguration pomConfiguration, ExpressionEvaluator expressionEvaluator) {
58 PlexusConfiguration config = pomConfiguration.getChild(parameter.getName(), false);
59
60 if (isValueSet(config, expressionEvaluator)) {
61 logParameter(parameter);
62 }
63 }
64 }