From 9c2d272dc8b00cd0f0b6deb055301c4ccea0f36a Mon Sep 17 00:00:00 2001 From: Dmitry Kichinsky Date: Tue, 11 Feb 2025 16:23:23 +0100 Subject: [PATCH] [maven] IDEA-360609 Maven 4: MODEL_VERSION_4_0_0 and MODEL_VERSION_4_1_0 constants GitOrigin-RevId: 0b3d0ac980b1774b3f52467264d97ffebc9be0aa --- .../org/jetbrains/idea/maven/model/MavenConstants.java | 3 +++ .../idea/maven/dom/MavenDomElementDescriptorHolder.java | 4 +++- .../maven/dom/converters/MavenModelVersionConverter.java | 8 ++++---- .../maven/dom/references/MavenPropertyPsiReference.java | 3 ++- .../jetbrains/idea/maven/project/MavenProjectReader.kt | 2 +- .../main/java/org/jetbrains/idea/maven/utils/MavenUtil.kt | 3 ++- .../idea/maven/wizards/MavenModuleBuilderHelper.kt | 3 ++- .../maven/testFramework/xml/MavenBuildFileBuilder.kt | 3 ++- 8 files changed, 19 insertions(+), 10 deletions(-) diff --git a/plugins/maven-server-api/src/main/java/org/jetbrains/idea/maven/model/MavenConstants.java b/plugins/maven-server-api/src/main/java/org/jetbrains/idea/maven/model/MavenConstants.java index e9ff33ec232c..d2948ed4c9d4 100644 --- a/plugins/maven-server-api/src/main/java/org/jetbrains/idea/maven/model/MavenConstants.java +++ b/plugins/maven-server-api/src/main/java/org/jetbrains/idea/maven/model/MavenConstants.java @@ -11,6 +11,9 @@ public final class MavenConstants { public static final String[] POM_NAMES = new String[]{POM_XML, "pom.scala", "pom.groovy", "pom.atom", "pom.rb", "pom.yml", "pom.clj"}; public static final String[] POM_EXTENSIONS = {"pom", "xml", "scala", "groovy", "atom", "rb", "yml", "clj"}; + public static final String MODEL_VERSION_4_0_0 = "4.0.0"; + public static final String MODEL_VERSION_4_1_0 = "4.1.0"; + public static final String SUPER_POM_4_0_XML = "pom-4.0.0.xml"; public static final String SUPER_POM_4_1_XML = "pom-4.1.0.xml"; public static final String PROFILES_XML = "profiles.xml"; diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/MavenDomElementDescriptorHolder.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/MavenDomElementDescriptorHolder.java index 89e8d722537b..2402baf1f021 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/MavenDomElementDescriptorHolder.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/MavenDomElementDescriptorHolder.java @@ -25,6 +25,8 @@ import java.net.URL; import java.util.HashMap; import java.util.Map; +import static org.jetbrains.idea.maven.model.MavenConstants.MODEL_VERSION_4_1_0; + @Service(Service.Level.PROJECT) public final class MavenDomElementDescriptorHolder { private static final Logger LOG = Logger.getInstance(MavenDomElementDescriptorHolder.class); @@ -137,7 +139,7 @@ public final class MavenDomElementDescriptorHolder { private static @NotNull FileKind getProjectFileKind(PsiFile file) { String modelVersion = MavenDomUtil.getXmlProjectModelVersion(file); - if ("4.1.0".equals(modelVersion)) return FileKind.PROJECT_FILE_4_1; + if (MODEL_VERSION_4_1_0.equals(modelVersion)) return FileKind.PROJECT_FILE_4_1; return FileKind.PROJECT_FILE_4_0; } diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/converters/MavenModelVersionConverter.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/converters/MavenModelVersionConverter.java index 77cf9ef1363f..1c4f5c3e06d1 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/converters/MavenModelVersionConverter.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/converters/MavenModelVersionConverter.java @@ -26,12 +26,12 @@ import java.util.Collections; import java.util.List; import static org.jetbrains.idea.maven.dom.MavenDomUtil.isAtLeastMaven4; +import static org.jetbrains.idea.maven.model.MavenConstants.MODEL_VERSION_4_0_0; +import static org.jetbrains.idea.maven.model.MavenConstants.MODEL_VERSION_4_1_0; public class MavenModelVersionConverter extends MavenConstantListConverter { - private static final String VERSION_4_0 = "4.0.0"; - private static final String VERSION_4_1 = "4.1.0"; - private static final List VALUES_MAVEN_3 = Collections.singletonList(VERSION_4_0); - private static final List VALUES_MAVEN_4 = Arrays.asList(VERSION_4_0, VERSION_4_1); + private static final List VALUES_MAVEN_3 = Collections.singletonList(MODEL_VERSION_4_0_0); + private static final List VALUES_MAVEN_4 = Arrays.asList(MODEL_VERSION_4_0_0, MODEL_VERSION_4_1_0); @Override protected Collection getValues(@NotNull ConvertContext context) { diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/references/MavenPropertyPsiReference.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/references/MavenPropertyPsiReference.java index 0c88ec926ccf..82c893407936 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/references/MavenPropertyPsiReference.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/references/MavenPropertyPsiReference.java @@ -57,6 +57,7 @@ import java.util.*; import static icons.OpenapiIcons.RepositoryLibraryLogo; import static org.jetbrains.idea.maven.dom.MavenDomUtil.isAtLeastMaven4; +import static org.jetbrains.idea.maven.model.MavenConstants.MODEL_VERSION_4_1_0; public class MavenPropertyPsiReference extends MavenPsiReference implements LocalQuickFixProvider { public static final String TIMESTAMP_PROP = "maven.build.timestamp"; @@ -526,7 +527,7 @@ public class MavenPropertyPsiReference extends MavenPsiReference implements Loca private @NotNull String getSchemaUrl() { if (isAtLeastMaven4(myVirtualFile, myProject) && myProjectDom != null - && "4.1.0".equals(myProjectDom.getModelVersion().getValue()) + && MODEL_VERSION_4_1_0.equals(myProjectDom.getModelVersion().getValue()) ) { return MavenSchemaProvider.MAVEN_PROJECT_SCHEMA_4_1_URL; } diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectReader.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectReader.kt index a024c14e22c3..2ec62749bd8c 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectReader.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectReader.kt @@ -15,6 +15,7 @@ import org.jetbrains.idea.maven.dom.MavenDomUtil.isAtLeastMaven4 import org.jetbrains.idea.maven.dom.converters.MavenConsumerPomUtil.isAutomaticVersionFeatureEnabled import org.jetbrains.idea.maven.internal.ReadStatisticsCollector import org.jetbrains.idea.maven.model.* +import org.jetbrains.idea.maven.model.MavenConstants.MODEL_VERSION_4_0_0 import org.jetbrains.idea.maven.server.MavenEmbedderWrapper import org.jetbrains.idea.maven.server.MavenServerConnector import org.jetbrains.idea.maven.telemetry.tracer @@ -31,7 +32,6 @@ import java.io.IOException import java.nio.file.Path private const val UNKNOWN = MavenId.UNKNOWN_VALUE -private const val MODEL_VERSION_4_0_0 = "4.0.0" class MavenProjectReader(private val myProject: Project) { private val myCache = MavenReadProjectCache() diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.kt index 03f2f98dd892..3a4ac5e5408c 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.kt @@ -75,6 +75,7 @@ import org.jetbrains.idea.maven.buildtool.MavenSyncConsole import org.jetbrains.idea.maven.dom.MavenDomUtil import org.jetbrains.idea.maven.execution.MavenRunnerSettings import org.jetbrains.idea.maven.model.MavenConstants +import org.jetbrains.idea.maven.model.MavenConstants.MODEL_VERSION_4_0_0 import org.jetbrains.idea.maven.model.MavenId import org.jetbrains.idea.maven.model.MavenProjectProblem import org.jetbrains.idea.maven.model.MavenRemoteRepository @@ -470,7 +471,7 @@ object MavenUtil { properties.setProperty("GROUP_ID", projectId.getGroupId()) properties.setProperty("ARTIFACT_ID", projectId.getArtifactId()) properties.setProperty("VERSION", projectId.getVersion()) - properties.setProperty("MODEL_VERSION", "4.0.0") + properties.setProperty("MODEL_VERSION", MODEL_VERSION_4_0_0) if (parentId != null) { conditions.setProperty("HAS_PARENT", "true") diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenModuleBuilderHelper.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenModuleBuilderHelper.kt index b38c66b7605a..9e1f11dd64d3 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenModuleBuilderHelper.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenModuleBuilderHelper.kt @@ -34,6 +34,7 @@ import org.jetbrains.idea.maven.execution.MavenRunner import org.jetbrains.idea.maven.execution.MavenRunnerParameters import org.jetbrains.idea.maven.model.MavenArchetype import org.jetbrains.idea.maven.model.MavenConstants +import org.jetbrains.idea.maven.model.MavenConstants.MODEL_VERSION_4_1_0 import org.jetbrains.idea.maven.model.MavenId import org.jetbrains.idea.maven.project.MavenProject import org.jetbrains.idea.maven.project.MavenProjectBundle @@ -155,7 +156,7 @@ open class MavenModuleBuilderHelper( if (model.subprojects.subprojects.any()) return true if (model.modules.modules.any()) return false val modelVersion = model.modelVersion.value - return VersionComparatorUtil.compare(modelVersion, "4.1.0") >= 0 + return VersionComparatorUtil.compare(modelVersion, MODEL_VERSION_4_1_0) >= 0 } protected fun updateProjectPom(project: Project, pom: VirtualFile) { diff --git a/plugins/maven/testFramework/src/com/intellij/maven/testFramework/xml/MavenBuildFileBuilder.kt b/plugins/maven/testFramework/src/com/intellij/maven/testFramework/xml/MavenBuildFileBuilder.kt index 7df3e9cf65af..754a0301a5d6 100644 --- a/plugins/maven/testFramework/src/com/intellij/maven/testFramework/xml/MavenBuildFileBuilder.kt +++ b/plugins/maven/testFramework/src/com/intellij/maven/testFramework/xml/MavenBuildFileBuilder.kt @@ -1,10 +1,11 @@ // Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.maven.testFramework.xml +import org.jetbrains.idea.maven.model.MavenConstants.MODEL_VERSION_4_0_0 import org.jetbrains.idea.maven.utils.MavenArtifactScope class MavenBuildFileBuilder(val artifactId: String) { - private var modelVersion: String = "4.0.0" + private var modelVersion: String = MODEL_VERSION_4_0_0 private var groupId: String = "org.example" private var version: String = "1.0-SNAPSHOT" private var packaging: String? = null