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