From c71b9cfb77242da184dced00d12c2deaa76c9d4e Mon Sep 17 00:00:00 2001 From: Dmitry Lyubin Date: Thu, 20 Feb 2025 15:07:04 +0400 Subject: [PATCH] OPENIDE added Axiom vendor and fixed Axiom long title issue, fixed position of the Axiom JDK in the JDK Download dialog (cherry picked from commit 53976367e892bd448683658c128aaf275f2d8b7f) (cherry picked from commit 8bcbc8287c36a3bf42e26a849802fad9bd6f031f) (cherry picked from commit fd44cc164fbe735d3097c587c33ac1181d6487ab) (cherry picked from commit 49f4341158ebe3812f53322d3cd8178fcb15f6d5) --- .../impl/SdkmanrcConfigurationProvider.kt | 1 + .../impl/ToolVersionsConfigurationProvider.kt | 1 + .../jps/model/java/JdkVersionDetector.java | 1 + .../model/java/impl/JdkVersionDetectorImpl.java | 2 ++ .../jetbrains/jps/model/JdkVariantDetectorTest.kt | 14 ++++++++++++++ .../impl/jdkDownloader/JdkDownloadDialog.kt | 4 ++-- .../projectRoots/impl/jdkDownloader/JdkList.kt | 3 ++- 7 files changed, 23 insertions(+), 3 deletions(-) diff --git a/java/java-impl/src/com/intellij/openapi/projectRoots/impl/SdkmanrcConfigurationProvider.kt b/java/java-impl/src/com/intellij/openapi/projectRoots/impl/SdkmanrcConfigurationProvider.kt index 45446b242038..5cf7c95071d8 100644 --- a/java/java-impl/src/com/intellij/openapi/projectRoots/impl/SdkmanrcConfigurationProvider.kt +++ b/java/java-impl/src/com/intellij/openapi/projectRoots/impl/SdkmanrcConfigurationProvider.kt @@ -35,6 +35,7 @@ public data class SdkmanReleaseData(val target: String, if (version !in versionString) return false val variant = when { + vendor == "axiom" -> JdkVersionDetector.Variant.Axiom vendor == "adpt" && flavour == "hs" -> JdkVersionDetector.Variant.AdoptOpenJdk_HS vendor == "adpt" && flavour == "j9" -> JdkVersionDetector.Variant.AdoptOpenJdk_J9 vendor == "albba" -> JdkVersionDetector.Variant.Dragonwell diff --git a/java/java-impl/src/com/intellij/openapi/projectRoots/impl/ToolVersionsConfigurationProvider.kt b/java/java-impl/src/com/intellij/openapi/projectRoots/impl/ToolVersionsConfigurationProvider.kt index 808353310111..5919fb35ea11 100644 --- a/java/java-impl/src/com/intellij/openapi/projectRoots/impl/ToolVersionsConfigurationProvider.kt +++ b/java/java-impl/src/com/intellij/openapi/projectRoots/impl/ToolVersionsConfigurationProvider.kt @@ -32,6 +32,7 @@ public data class AsdfReleaseData(val name: String, val vendor: String, val vers if (normalizedVersion !in versionString) return false val variant = when (vendor) { + "axiom" -> JdkVersionDetector.Variant.Axiom "adoptopenjdk", "adoptopenjdk-jre" -> JdkVersionDetector.Variant.AdoptOpenJdk_HS "adoptopenjdk-jre-openj9", "adoptopenjdk-jre-openj9-large_heap", "adoptopenjdk-openj9", "adoptopenjdk-openj9-large_heap" -> JdkVersionDetector.Variant.AdoptOpenJdk_J9 diff --git a/jps/model-api/src/org/jetbrains/jps/model/java/JdkVersionDetector.java b/jps/model-api/src/org/jetbrains/jps/model/java/JdkVersionDetector.java index f5e2c0b0209b..a6f15453de8b 100644 --- a/jps/model-api/src/org/jetbrains/jps/model/java/JdkVersionDetector.java +++ b/jps/model-api/src/org/jetbrains/jps/model/java/JdkVersionDetector.java @@ -29,6 +29,7 @@ public abstract class JdkVersionDetector { @SuppressWarnings("SpellCheckingInspection") public enum Variant { + Axiom("axiom", "Axiom JDK"), AdoptOpenJdk_HS("adopt", "AdoptOpenJDK (HotSpot)"), AdoptOpenJdk_J9("adopt-j9", "AdoptOpenJDK (OpenJ9)"), BiSheng("bisheng", "BiSheng JDK"), diff --git a/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JdkVersionDetectorImpl.java b/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JdkVersionDetectorImpl.java index f18773058bcc..d56d4143d040 100644 --- a/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JdkVersionDetectorImpl.java +++ b/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JdkVersionDetectorImpl.java @@ -155,6 +155,7 @@ public class JdkVersionDetectorImpl extends JdkVersionDetector { private static @Nullable Variant detectVariant(Properties p) { String implementorVersion = unquoteProperty(p, "IMPLEMENTOR_VERSION"); if (implementorVersion != null) { + if (implementorVersion.startsWith("Axiom")) return Variant.Axiom; if (implementorVersion.startsWith("AdoptOpenJDK")) { String variant = unquoteProperty(p, "JVM_VARIANT"); return "OpenJ9".equalsIgnoreCase(variant) ? Variant.AdoptOpenJdk_J9 : Variant.AdoptOpenJdk_HS; @@ -188,6 +189,7 @@ public class JdkVersionDetectorImpl extends JdkVersionDetector { } private static @Nullable Variant detectVendor(String implementor) { + if (implementor.startsWith("Axiom")) return Variant.Axiom; if (implementor.startsWith("Alibaba")) return Variant.Dragonwell; if (implementor.startsWith("Amazon")) return Variant.Corretto; if (implementor.startsWith("Azul")) return Variant.Zulu; diff --git a/jps/model-impl/testSrc/org/jetbrains/jps/model/JdkVariantDetectorTest.kt b/jps/model-impl/testSrc/org/jetbrains/jps/model/JdkVariantDetectorTest.kt index 16152c10de94..e3af6f4fb218 100644 --- a/jps/model-impl/testSrc/org/jetbrains/jps/model/JdkVariantDetectorTest.kt +++ b/jps/model-impl/testSrc/org/jetbrains/jps/model/JdkVariantDetectorTest.kt @@ -398,8 +398,22 @@ class JdkVariantDetectorTest { |MODULES="java.base ..." """.trimMargin() + private val RELEASE_AXIOM_JDK_23_0_2 = + """ + |IMPLEMENTOR="Axiom JSC" + |JAVA_RUNTIME_VERSION="23.0.2+9" + |JAVA_VERSION="23.0.2" + |JAVA_VERSION_DATE="2025-01-21" + |LIBC="default" + |MODULES="java.base ..." + |OS_ARCH="x86_64" + |OS_NAME="Windows" + |SOURCE=".:git:8d70ee331792+" + """.trimMargin() + @Rule @JvmField val tempDir = TempDirectory() + @Test fun `AxiomJDK 23`() = assertVariant(Axiom, RELEASE_AXIOM_JDK_23_0_2) @Test fun `Oracle OpenJDK 8`() = assertVariant(Unknown, RELEASE_ORACLE_OPEN_1_8_0_41, MANIFEST_ORACLE_OPEN_1_8_0_41) // no vendor info @Test fun `Oracle Commercial 8`() = assertVariant(Oracle, RELEASE_ORACLE_1_8_0_291, MANIFEST_ORACLE_1_8_0_291) @Test fun `Oracle 16`() = assertVariant(Oracle, RELEASE_ORACLE_16_0_1) diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkDownloadDialog.kt b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkDownloadDialog.kt index df403efa60e7..4bd4f150f481 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkDownloadDialog.kt +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkDownloadDialog.kt @@ -118,7 +118,7 @@ private class JdkVersionVendorCombobox: ComboBox() { isSwingPopup = false renderer = listCellRenderer("") { - val title = value.item.product.packagePresentationText.replace("Axiom JSC", "").trim() + val title = value.item.product.packagePresentationText val style = if (isLicenseAcceptedJDK(value)) SimpleTextAttributes.REGULAR_BOLD_ATTRIBUTES else SimpleTextAttributes.REGULAR_ATTRIBUTES text(title) { this.attributes = style @@ -149,7 +149,7 @@ private fun List.sortedForUI() = this Comparator { i1, i2 -> val s1: String = i1.item.product.packagePresentationText val s2: String = i2.item.product.packagePresentationText - if (s1.contains("Axiom", ignoreCase = true)) -1 + if (s2.contains("Axiom", ignoreCase = true)) 1 else s1.compareTo(s2) } ) diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkList.kt b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkList.kt index d36f8d9e5fc9..a638b7596c63 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkList.kt +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkList.kt @@ -76,7 +76,7 @@ data class JdkProduct( append(flavour) append(")") } - } + }.replace("Axiom JSC", "").trim() } /** describes an item behind the version as well as download info **/ @@ -216,6 +216,7 @@ data class JdkItem( companion object { fun detectVariant(vendorText: @NlsSafe String): JdkVersionDetector.Variant { + if (vendorText.contains("Axiom")) return JdkVersionDetector.Variant.Axiom if (vendorText.contains("Oracle OpenJDK")) return JdkVersionDetector.Variant.Oracle if (vendorText.contains("Microsoft")) return JdkVersionDetector.Variant.Microsoft if (vendorText.contains("Corretto")) return JdkVersionDetector.Variant.Corretto