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 EXECUTION = "execution";
78          public static final String GOALS = "goals";
79          public static final String INHERITED = "inherited";
80          public static final String CONFIGURATION = "configuration";
81          public static final String PHASE = "phase";
82  
83          // Module elements
84          public static final String MODULES = "modules";
85          public static final String MODULE = "module";
86          public static final String SUBPROJECTS = "subprojects";
87          public static final String SUBPROJECT = "subproject";
88  
89          // Dependency elements
90          public static final String DEPENDENCIES = "dependencies";
91          public static final String DEPENDENCY = "dependency";
92          public static final String DEPENDENCY_MANAGEMENT = "dependencyManagement";
93          public static final String CLASSIFIER = "classifier";
94          public static final String TYPE = "type";
95          public static final String SCOPE = "scope";
96          public static final String SYSTEM_PATH = "systemPath";
97          public static final String OPTIONAL = "optional";
98          public static final String EXCLUSIONS = "exclusions";
99  
100         // Profile elements
101         public static final String PROFILES = "profiles";
102         public static final String PROFILE = "profile";
103 
104         // Project information elements
105         public static final String PROPERTIES = "properties";
106         public static final String INCEPTION_YEAR = "inceptionYear";
107         public static final String ORGANIZATION = "organization";
108         public static final String LICENSES = "licenses";
109         public static final String DEVELOPERS = "developers";
110         public static final String CONTRIBUTORS = "contributors";
111         public static final String MAILING_LISTS = "mailingLists";
112         public static final String PREREQUISITES = "prerequisites";
113         public static final String SCM = "scm";
114         public static final String ISSUE_MANAGEMENT = "issueManagement";
115         public static final String CI_MANAGEMENT = "ciManagement";
116         public static final String DISTRIBUTION_MANAGEMENT = "distributionManagement";
117         public static final String REPOSITORIES = "repositories";
118         public static final String PLUGIN_REPOSITORIES = "pluginRepositories";
119         public static final String REPOSITORY = "repository";
120         public static final String PLUGIN_REPOSITORY = "pluginRepository";
121         public static final String REPORTING = "reporting";
122 
123         private XmlElements() {
124             // Utility class
125         }
126     }
127 
128     /**
129      * Common indentation patterns for XML formatting.
130      */
131     public static final class Indentation {
132         public static final String TWO_SPACES = "  ";
133         public static final String FOUR_SPACES = "    ";
134         public static final String TAB = "\t";
135         public static final String DEFAULT = TWO_SPACES;
136 
137         private Indentation() {
138             // Utility class
139         }
140     }
141 
142     /**
143      * Common Maven plugin constants.
144      */
145     public static final class Plugins {
146         /** Default Maven plugin groupId */
147         public static final String DEFAULT_MAVEN_PLUGIN_GROUP_ID = "org.apache.maven.plugins";
148 
149         /** Maven plugin artifact prefix */
150         public static final String MAVEN_PLUGIN_PREFIX = "maven-";
151 
152         /** Standard reason for Maven 4 compatibility upgrades */
153         public static final String MAVEN_4_COMPATIBILITY_REASON = "Maven 4 compatibility";
154 
155         private Plugins() {
156             // Utility class
157         }
158     }
159 
160     /**
161      * Common file and directory names.
162      */
163     public static final class Files {
164         /** Standard Maven POM file name */
165         public static final String POM_XML = "pom.xml";
166 
167         /** Maven configuration directory (alternative name) */
168         public static final String MVN_DIRECTORY = ".mvn";
169 
170         /** Default parent POM relative path */
171         public static final String DEFAULT_PARENT_RELATIVE_PATH = "../pom.xml";
172 
173         private Files() {
174             // Utility class
175         }
176     }
177 
178     /**
179      * Maven namespace constants.
180      */
181     public static final class Namespaces {
182         /** Maven 4.0.0 namespace URI */
183         public static final String MAVEN_4_0_0_NAMESPACE = "http://maven.apache.org/POM/4.0.0";
184 
185         /** Maven 4.1.0 namespace URI */
186         public static final String MAVEN_4_1_0_NAMESPACE = "http://maven.apache.org/POM/4.1.0";
187 
188         private Namespaces() {
189             // Utility class
190         }
191     }
192 
193     /**
194      * Schema location constants.
195      */
196     public static final class SchemaLocations {
197         /** Schema location for 4.0.0 models */
198         public static final String MAVEN_4_0_0_SCHEMA_LOCATION =
199                 Namespaces.MAVEN_4_0_0_NAMESPACE + " https://maven.apache.org/xsd/maven-4.0.0.xsd";
200 
201         /** Schema location for 4.1.0 models */
202         public static final String MAVEN_4_1_0_SCHEMA_LOCATION =
203                 Namespaces.MAVEN_4_1_0_NAMESPACE + " https://maven.apache.org/xsd/maven-4.1.0.xsd";
204 
205         private SchemaLocations() {
206             // Utility class
207         }
208     }
209 
210     /**
211      * XML attribute constants.
212      */
213     public static final class XmlAttributes {
214         /** Schema location attribute name */
215         public static final String SCHEMA_LOCATION = "schemaLocation";
216 
217         /** XSI namespace prefix */
218         public static final String XSI_NAMESPACE_PREFIX = "xsi";
219 
220         /** XSI namespace URI */
221         public static final String XSI_NAMESPACE_URI = "http://www.w3.org/2001/XMLSchema-instance";
222 
223         // Combine attributes
224         public static final String COMBINE_CHILDREN = "combine.children";
225         public static final String COMBINE_SELF = "combine.self";
226 
227         // Combine attribute values
228         public static final String COMBINE_OVERRIDE = "override";
229         public static final String COMBINE_MERGE = "merge";
230         public static final String COMBINE_APPEND = "append";
231 
232         private XmlAttributes() {
233             // Utility class
234         }
235     }
236 }