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.cling.invoker.mvnup.goals;
20  
21  /**
22   * Constants used throughout the Maven upgrade tools.
23   * Organized into logical groups for better maintainability.
24   */
25  public final class UpgradeConstants {
26  
27      private UpgradeConstants() {
28          // Utility class
29      }
30  
31      /**
32       * Maven model version constants.
33       */
34      public static final class ModelVersions {
35          /** Maven 4.0.0 model version */
36          public static final String MODEL_VERSION_4_0_0 = "4.0.0";
37  
38          /** Maven 4.1.0 model version */
39          public static final String MODEL_VERSION_4_1_0 = "4.1.0";
40  
41          private ModelVersions() {
42              // Utility class
43          }
44      }
45  
46      /**
47       * Common XML element names used in Maven POMs.
48       */
49      public static final class XmlElements {
50          // Core POM elements
51          public static final String MODEL_VERSION = "modelVersion";
52          public static final String GROUP_ID = "groupId";
53          public static final String ARTIFACT_ID = "artifactId";
54          public static final String VERSION = "version";
55          public static final String PARENT = "parent";
56          public static final String RELATIVE_PATH = "relativePath";
57          public static final String PACKAGING = "packaging";
58          public static final String NAME = "name";
59          public static final String DESCRIPTION = "description";
60          public static final String URL = "url";
61  
62          // Build elements
63          public static final String BUILD = "build";
64          public static final String PLUGINS = "plugins";
65          public static final String PLUGIN = "plugin";
66          public static final String PLUGIN_MANAGEMENT = "pluginManagement";
67          public static final String DEFAULT_GOAL = "defaultGoal";
68          public static final String DIRECTORY = "directory";
69          public static final String FINAL_NAME = "finalName";
70          public static final String SOURCE_DIRECTORY = "sourceDirectory";
71          public static final String SCRIPT_SOURCE_DIRECTORY = "scriptSourceDirectory";
72          public static final String TEST_SOURCE_DIRECTORY = "testSourceDirectory";
73          public static final String OUTPUT_DIRECTORY = "outputDirectory";
74          public static final String TEST_OUTPUT_DIRECTORY = "testOutputDirectory";
75          public static final String EXTENSIONS = "extensions";
76          public static final String EXECUTIONS = "executions";
77          public static final String GOALS = "goals";
78          public static final String INHERITED = "inherited";
79          public static final String CONFIGURATION = "configuration";
80  
81          // Module elements
82          public static final String MODULES = "modules";
83          public static final String MODULE = "module";
84          public static final String SUBPROJECTS = "subprojects";
85          public static final String SUBPROJECT = "subproject";
86  
87          // Dependency elements
88          public static final String DEPENDENCIES = "dependencies";
89          public static final String DEPENDENCY = "dependency";
90          public static final String DEPENDENCY_MANAGEMENT = "dependencyManagement";
91          public static final String CLASSIFIER = "classifier";
92          public static final String TYPE = "type";
93          public static final String SCOPE = "scope";
94          public static final String SYSTEM_PATH = "systemPath";
95          public static final String OPTIONAL = "optional";
96          public static final String EXCLUSIONS = "exclusions";
97  
98          // Profile elements
99          public static final String PROFILES = "profiles";
100         public static final String PROFILE = "profile";
101 
102         // Project information elements
103         public static final String PROPERTIES = "properties";
104         public static final String INCEPTION_YEAR = "inceptionYear";
105         public static final String ORGANIZATION = "organization";
106         public static final String LICENSES = "licenses";
107         public static final String DEVELOPERS = "developers";
108         public static final String CONTRIBUTORS = "contributors";
109         public static final String MAILING_LISTS = "mailingLists";
110         public static final String PREREQUISITES = "prerequisites";
111         public static final String SCM = "scm";
112         public static final String ISSUE_MANAGEMENT = "issueManagement";
113         public static final String CI_MANAGEMENT = "ciManagement";
114         public static final String DISTRIBUTION_MANAGEMENT = "distributionManagement";
115         public static final String REPOSITORIES = "repositories";
116         public static final String PLUGIN_REPOSITORIES = "pluginRepositories";
117         public static final String REPOSITORY = "repository";
118         public static final String PLUGIN_REPOSITORY = "pluginRepository";
119         public static final String REPORTING = "reporting";
120 
121         private XmlElements() {
122             // Utility class
123         }
124     }
125 
126     /**
127      * Common indentation patterns for XML formatting.
128      */
129     public static final class Indentation {
130         public static final String TWO_SPACES = "  ";
131         public static final String FOUR_SPACES = "    ";
132         public static final String TAB = "\t";
133         public static final String DEFAULT = TWO_SPACES;
134 
135         private Indentation() {
136             // Utility class
137         }
138     }
139 
140     /**
141      * Common Maven plugin constants.
142      */
143     public static final class Plugins {
144         /** Default Maven plugin groupId */
145         public static final String DEFAULT_MAVEN_PLUGIN_GROUP_ID = "org.apache.maven.plugins";
146 
147         /** Maven plugin artifact prefix */
148         public static final String MAVEN_PLUGIN_PREFIX = "maven-";
149 
150         /** Standard reason for Maven 4 compatibility upgrades */
151         public static final String MAVEN_4_COMPATIBILITY_REASON = "Maven 4 compatibility";
152 
153         private Plugins() {
154             // Utility class
155         }
156     }
157 
158     /**
159      * Common file and directory names.
160      */
161     public static final class Files {
162         /** Standard Maven POM file name */
163         public static final String POM_XML = "pom.xml";
164 
165         /** Maven configuration directory (alternative name) */
166         public static final String MVN_DIRECTORY = ".mvn";
167 
168         /** Default parent POM relative path */
169         public static final String DEFAULT_PARENT_RELATIVE_PATH = "../pom.xml";
170 
171         private Files() {
172             // Utility class
173         }
174     }
175 
176     /**
177      * Maven namespace constants.
178      */
179     public static final class Namespaces {
180         /** Maven 4.0.0 namespace URI */
181         public static final String MAVEN_4_0_0_NAMESPACE = "http://maven.apache.org/POM/4.0.0";
182 
183         /** Maven 4.1.0 namespace URI */
184         public static final String MAVEN_4_1_0_NAMESPACE = "http://maven.apache.org/POM/4.1.0";
185 
186         private Namespaces() {
187             // Utility class
188         }
189     }
190 
191     /**
192      * Schema location constants.
193      */
194     public static final class SchemaLocations {
195         /** Schema location for 4.0.0 models */
196         public static final String MAVEN_4_0_0_SCHEMA_LOCATION =
197                 Namespaces.MAVEN_4_0_0_NAMESPACE + " https://maven.apache.org/xsd/maven-4.0.0.xsd";
198 
199         /** Schema location for 4.1.0 models */
200         public static final String MAVEN_4_1_0_SCHEMA_LOCATION =
201                 Namespaces.MAVEN_4_1_0_NAMESPACE + " https://maven.apache.org/xsd/maven-4.1.0.xsd";
202 
203         private SchemaLocations() {
204             // Utility class
205         }
206     }
207 
208     /**
209      * XML attribute constants.
210      */
211     public static final class XmlAttributes {
212         /** Schema location attribute name */
213         public static final String SCHEMA_LOCATION = "schemaLocation";
214 
215         /** XSI namespace prefix */
216         public static final String XSI_NAMESPACE_PREFIX = "xsi";
217 
218         /** XSI namespace URI */
219         public static final String XSI_NAMESPACE_URI = "http://www.w3.org/2001/XMLSchema-instance";
220 
221         // Combine attributes
222         public static final String COMBINE_CHILDREN = "combine.children";
223         public static final String COMBINE_SELF = "combine.self";
224 
225         // Combine attribute values
226         public static final String COMBINE_OVERRIDE = "override";
227         public static final String COMBINE_MERGE = "merge";
228         public static final String COMBINE_APPEND = "append";
229 
230         private XmlAttributes() {
231             // Utility class
232         }
233     }
234 }