View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.maven.plugin;
20  
21  import java.util.ArrayList;
22  import java.util.List;
23  
24  import org.apache.maven.artifact.Artifact;
25  import org.apache.maven.plugin.descriptor.PluginDescriptor;
26  
27  /**
28   * MavenPluginValidator
29   */
30  public class MavenPluginValidator {
31      private final Artifact pluginArtifact;
32  
33      private List<String> errors = new ArrayList<>();
34  
35      private boolean firstDescriptor = true;
36  
37      public MavenPluginValidator(Artifact pluginArtifact) {
38          this.pluginArtifact = pluginArtifact;
39      }
40  
41      public void validate(PluginDescriptor pluginDescriptor) {
42          /*
43           * NOTE: For plugins that depend on other plugin artifacts the plugin realm contains more than one plugin
44           * descriptor. However, only the first descriptor is of interest.
45           */
46          if (!firstDescriptor) {
47              return;
48          }
49          firstDescriptor = false;
50  
51          if (!pluginArtifact.getGroupId().equals(pluginDescriptor.getGroupId())) {
52              errors.add("Plugin's descriptor contains the wrong group ID: " + pluginDescriptor.getGroupId());
53          }
54  
55          if (!pluginArtifact.getArtifactId().equals(pluginDescriptor.getArtifactId())) {
56              errors.add("Plugin's descriptor contains the wrong artifact ID: " + pluginDescriptor.getArtifactId());
57          }
58  
59          if (!pluginArtifact.getBaseVersion().equals(pluginDescriptor.getVersion())) {
60              errors.add("Plugin's descriptor contains the wrong version: " + pluginDescriptor.getVersion());
61          }
62      }
63  
64      public boolean hasErrors() {
65          return !errors.isEmpty();
66      }
67  
68      public List<String> getErrors() {
69          return errors;
70      }
71  }