From 8f86177bc073be986a48c2fb2cca7bf41b4604d5 Mon Sep 17 00:00:00 2001 From: Dmitry Kichinsky Date: Thu, 12 Feb 2026 10:41:06 +0100 Subject: [PATCH] [gradle] IDEA-357140 Migrate Gradle Java Plugin descriptors to V2: groovy-ml module Run Generate Product Layouts, IdeaUltimatePackagingTest, UltimatePluginModelTest GitOrigin-RevId: d9ab7a5cc297ab6335f006de7b9ef190102b7037 --- .idea/modules.xml | 1 + build/bazel-generated-file-list.txt | 1 + plugins/gradle/java/BUILD.bazel | 1 - plugins/gradle/java/groovy/ml/BUILD.bazel | 29 +++++++++++++++++++ .../ml/intellij.gradle.java.groovy.ml.iml | 22 ++++++++++++++ .../intellij.gradle.java.groovy.ml.xml | 15 ++++++++++ .../GradleGroovyCompletionFeaturesPolicy.kt | 2 +- .../GradleGroovyContextFeatureProvider.kt | 4 +-- .../GradleGroovyElementFeatureProvider.kt | 4 +-- plugins/gradle/java/intellij.gradle.java.iml | 1 - plugins/gradle/java/plugin-content.yaml | 3 ++ .../META-INF/gradle-groovy-integration.xml | 2 -- .../META-INF/gradle-groovy-ml-integration.xml | 8 ----- .../gradle/java/resources/META-INF/plugin.xml | 1 + .../GradleDependencyHandlerContributor.kt | 2 +- .../resolve/GradleExtensionProperty.kt | 2 +- .../resolve/GradleExtensionsContributor.kt | 6 ++-- .../service/resolve/GradleGroovyProperty.kt | 2 +- .../resolve/GradleTaskContainerContributor.kt | 2 +- .../gradle/java/src/service/resolve/util.kt | 4 ++- 20 files changed, 88 insertions(+), 24 deletions(-) create mode 100644 plugins/gradle/java/groovy/ml/BUILD.bazel create mode 100644 plugins/gradle/java/groovy/ml/intellij.gradle.java.groovy.ml.iml create mode 100644 plugins/gradle/java/groovy/ml/resources/intellij.gradle.java.groovy.ml.xml rename plugins/gradle/java/{src/service/completion/ml => groovy/ml/src}/GradleGroovyCompletionFeaturesPolicy.kt (84%) rename plugins/gradle/java/{src/service/completion/ml => groovy/ml/src}/GradleGroovyContextFeatureProvider.kt (97%) rename plugins/gradle/java/{src/service/completion/ml => groovy/ml/src}/GradleGroovyElementFeatureProvider.kt (95%) delete mode 100644 plugins/gradle/java/resources/META-INF/gradle-groovy-ml-integration.xml diff --git a/.idea/modules.xml b/.idea/modules.xml index 178cd83e70bd..2294687fa24b 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -460,6 +460,7 @@ + diff --git a/build/bazel-generated-file-list.txt b/build/bazel-generated-file-list.txt index 17a75eec4446..04778658e49f 100644 --- a/build/bazel-generated-file-list.txt +++ b/build/bazel-generated-file-list.txt @@ -998,6 +998,7 @@ plugins/gradle/gradle-dependency-updater plugins/gradle/intellij.gradle.analysis plugins/gradle/java plugins/gradle/java/groovy +plugins/gradle/java/groovy/ml plugins/gradle/java/groovy/toml plugins/gradle/java/performance plugins/gradle/java/toml diff --git a/plugins/gradle/java/BUILD.bazel b/plugins/gradle/java/BUILD.bazel index c35465c5e6f5..4ec8734cc963 100644 --- a/plugins/gradle/java/BUILD.bazel +++ b/plugins/gradle/java/BUILD.bazel @@ -66,7 +66,6 @@ jvm_library( "//java/compiler/impl", "//libraries/kotlinx/coroutines/core", "//platform/object-serializer:objectSerializer-annotations", - "//plugins/completion-ml-ranking", "//plugins/performanceTesting/core:performanceTesting", "//platform/backend/workspace", "//platform/backend/observation", diff --git a/plugins/gradle/java/groovy/ml/BUILD.bazel b/plugins/gradle/java/groovy/ml/BUILD.bazel new file mode 100644 index 000000000000..cf7bd3d6652f --- /dev/null +++ b/plugins/gradle/java/groovy/ml/BUILD.bazel @@ -0,0 +1,29 @@ +### auto-generated section `build intellij.gradle.java.groovy.ml` start +load("@rules_jvm//:jvm.bzl", "jvm_library", "resourcegroup") + +resourcegroup( + name = "ml_resources", + srcs = glob(["resources/**/*"]), + strip_prefix = "resources" +) + +jvm_library( + name = "ml", + module_name = "intellij.gradle.java.groovy.ml", + visibility = ["//visibility:public"], + srcs = glob(["src/**/*.kt", "src/**/*.java", "src/**/*.form"], allow_empty = True), + resources = [":ml_resources"], + deps = [ + "@lib//:kotlin-stdlib", + "@lib//:jetbrains-annotations", + "//plugins/gradle/java", + "//platform/analysis-api:analysis", + "//platform/lang-api:lang", + "//platform/core-api:core", + "//platform/projectModel-api:projectModel", + "//plugins/completion-ml-ranking", + "//plugins/groovy/groovy-psi:psi", + "//java/java-psi-api:psi", + ] +) +### auto-generated section `build intellij.gradle.java.groovy.ml` end \ No newline at end of file diff --git a/plugins/gradle/java/groovy/ml/intellij.gradle.java.groovy.ml.iml b/plugins/gradle/java/groovy/ml/intellij.gradle.java.groovy.ml.iml new file mode 100644 index 000000000000..cd10b4f13a04 --- /dev/null +++ b/plugins/gradle/java/groovy/ml/intellij.gradle.java.groovy.ml.iml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/gradle/java/groovy/ml/resources/intellij.gradle.java.groovy.ml.xml b/plugins/gradle/java/groovy/ml/resources/intellij.gradle.java.groovy.ml.xml new file mode 100644 index 000000000000..c8ae8224f2c9 --- /dev/null +++ b/plugins/gradle/java/groovy/ml/resources/intellij.gradle.java.groovy.ml.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/plugins/gradle/java/src/service/completion/ml/GradleGroovyCompletionFeaturesPolicy.kt b/plugins/gradle/java/groovy/ml/src/GradleGroovyCompletionFeaturesPolicy.kt similarity index 84% rename from plugins/gradle/java/src/service/completion/ml/GradleGroovyCompletionFeaturesPolicy.kt rename to plugins/gradle/java/groovy/ml/src/GradleGroovyCompletionFeaturesPolicy.kt index 8bd59baaea3f..dcb330c49503 100644 --- a/plugins/gradle/java/src/service/completion/ml/GradleGroovyCompletionFeaturesPolicy.kt +++ b/plugins/gradle/java/groovy/ml/src/GradleGroovyCompletionFeaturesPolicy.kt @@ -1,5 +1,5 @@ // Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package org.jetbrains.plugins.gradle.service.completion.ml +package com.intellij.gradle.java.groovy.ml import com.intellij.completion.ml.features.CompletionFeaturesPolicy diff --git a/plugins/gradle/java/src/service/completion/ml/GradleGroovyContextFeatureProvider.kt b/plugins/gradle/java/groovy/ml/src/GradleGroovyContextFeatureProvider.kt similarity index 97% rename from plugins/gradle/java/src/service/completion/ml/GradleGroovyContextFeatureProvider.kt rename to plugins/gradle/java/groovy/ml/src/GradleGroovyContextFeatureProvider.kt index 569197a86f74..42d3537c6fc1 100644 --- a/plugins/gradle/java/src/service/completion/ml/GradleGroovyContextFeatureProvider.kt +++ b/plugins/gradle/java/groovy/ml/src/GradleGroovyContextFeatureProvider.kt @@ -1,5 +1,5 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package org.jetbrains.plugins.gradle.service.completion.ml +// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.gradle.java.groovy.ml import com.intellij.codeInsight.completion.ml.CompletionEnvironment import com.intellij.codeInsight.completion.ml.ContextFeatureProvider diff --git a/plugins/gradle/java/src/service/completion/ml/GradleGroovyElementFeatureProvider.kt b/plugins/gradle/java/groovy/ml/src/GradleGroovyElementFeatureProvider.kt similarity index 95% rename from plugins/gradle/java/src/service/completion/ml/GradleGroovyElementFeatureProvider.kt rename to plugins/gradle/java/groovy/ml/src/GradleGroovyElementFeatureProvider.kt index b6f6bb18250b..68a7fb0a843e 100644 --- a/plugins/gradle/java/src/service/completion/ml/GradleGroovyElementFeatureProvider.kt +++ b/plugins/gradle/java/groovy/ml/src/GradleGroovyElementFeatureProvider.kt @@ -1,5 +1,5 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package org.jetbrains.plugins.gradle.service.completion.ml +// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.gradle.java.groovy.ml import com.intellij.codeInsight.completion.CompletionLocation import com.intellij.codeInsight.completion.ml.ContextFeatures diff --git a/plugins/gradle/java/intellij.gradle.java.iml b/plugins/gradle/java/intellij.gradle.java.iml index 6581697c2699..497fdbc7b5e3 100644 --- a/plugins/gradle/java/intellij.gradle.java.iml +++ b/plugins/gradle/java/intellij.gradle.java.iml @@ -62,7 +62,6 @@ - diff --git a/plugins/gradle/java/plugin-content.yaml b/plugins/gradle/java/plugin-content.yaml index 7bd9173214b0..19a1f175a06d 100644 --- a/plugins/gradle/java/plugin-content.yaml +++ b/plugins/gradle/java/plugin-content.yaml @@ -16,6 +16,9 @@ - name: lib/modules/intellij.gradle.java.groovy.jar contentModules: - name: intellij.gradle.java.groovy +- name: lib/modules/intellij.gradle.java.groovy.ml.jar + contentModules: + - name: intellij.gradle.java.groovy.ml - name: lib/modules/intellij.gradle.java.groovy.toml.jar contentModules: - name: intellij.gradle.java.groovy.toml diff --git a/plugins/gradle/java/resources/META-INF/gradle-groovy-integration.xml b/plugins/gradle/java/resources/META-INF/gradle-groovy-integration.xml index 4b54fcdaae2f..ebbdb8446963 100644 --- a/plugins/gradle/java/resources/META-INF/gradle-groovy-integration.xml +++ b/plugins/gradle/java/resources/META-INF/gradle-groovy-integration.xml @@ -1,6 +1,4 @@ - com.intellij.completion.ml.ranking - diff --git a/plugins/gradle/java/resources/META-INF/gradle-groovy-ml-integration.xml b/plugins/gradle/java/resources/META-INF/gradle-groovy-ml-integration.xml deleted file mode 100644 index d477397a143d..000000000000 --- a/plugins/gradle/java/resources/META-INF/gradle-groovy-ml-integration.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/plugins/gradle/java/resources/META-INF/plugin.xml b/plugins/gradle/java/resources/META-INF/plugin.xml index d9b2dc22edcb..feb4e1c867df 100644 --- a/plugins/gradle/java/resources/META-INF/plugin.xml +++ b/plugins/gradle/java/resources/META-INF/plugin.xml @@ -31,6 +31,7 @@ + messages.GradleInspectionBundle diff --git a/plugins/gradle/java/src/service/resolve/GradleDependencyHandlerContributor.kt b/plugins/gradle/java/src/service/resolve/GradleDependencyHandlerContributor.kt index 9dd5ae36171b..bdccabab14ef 100644 --- a/plugins/gradle/java/src/service/resolve/GradleDependencyHandlerContributor.kt +++ b/plugins/gradle/java/src/service/resolve/GradleDependencyHandlerContributor.kt @@ -95,7 +95,7 @@ class GradleDependencyHandlerContributor : NonCodeMembersContributor() { } companion object { - internal const val DEPENDENCY_NOTATION : String = "by Gradle, configuration method" + const val DEPENDENCY_NOTATION : String = "by Gradle, configuration method" const val dependencyMethodKind: String = "gradle:dependencyMethod" } } diff --git a/plugins/gradle/java/src/service/resolve/GradleExtensionProperty.kt b/plugins/gradle/java/src/service/resolve/GradleExtensionProperty.kt index 8c79d856071f..490846e10639 100644 --- a/plugins/gradle/java/src/service/resolve/GradleExtensionProperty.kt +++ b/plugins/gradle/java/src/service/resolve/GradleExtensionProperty.kt @@ -24,6 +24,6 @@ class GradleExtensionProperty(name: String, private val type: PsiType?, context: override fun getOriginInfo(): String = GRADLE_EXTENSION_PROPERTY companion object { - internal const val GRADLE_EXTENSION_PROPERTY: String = "by gradle sync" + const val GRADLE_EXTENSION_PROPERTY: String = "by gradle sync" } } diff --git a/plugins/gradle/java/src/service/resolve/GradleExtensionsContributor.kt b/plugins/gradle/java/src/service/resolve/GradleExtensionsContributor.kt index a6345918ad0d..86c7371ca556 100644 --- a/plugins/gradle/java/src/service/resolve/GradleExtensionsContributor.kt +++ b/plugins/gradle/java/src/service/resolve/GradleExtensionsContributor.kt @@ -16,6 +16,7 @@ import com.intellij.psi.ResolveState import com.intellij.psi.scope.PsiScopeProcessor import com.intellij.psi.util.InheritanceUtil import icons.GradleIcons +import org.jetbrains.annotations.ApiStatus import org.jetbrains.plugins.gradle.service.resolve.GradleCommonClassNames.GRADLE_API_PROJECT import org.jetbrains.plugins.gradle.settings.GradleExtensionsSettings import org.jetbrains.plugins.gradle.settings.GradleExtensionsSettings.GradleExtensionsData @@ -27,7 +28,8 @@ import org.jetbrains.plugins.groovy.lang.resolve.processors.inference.type import org.jetbrains.plugins.groovy.lang.resolve.shouldProcessProperties import javax.swing.Icon -internal class GradleExtensionsContributor : NonCodeMembersContributor() { +@ApiStatus.Internal +class GradleExtensionsContributor : NonCodeMembersContributor() { override fun getClassNames(): Collection { return listOf(GradleCommonClassNames.GRADLE_API_EXTRA_PROPERTIES_EXTENSION, GRADLE_API_PROJECT) @@ -133,7 +135,7 @@ internal class GradleExtensionsContributor : NonCodeMembersContributor() { return GradleExtensionsSettings.getInstance(project).getExtensionsFor(module) } - internal const val PROPERTIES_FILE_ORIGINAL_INFO : String = "by gradle.properties" + const val PROPERTIES_FILE_ORIGINAL_INFO : String = "by gradle.properties" private fun processAllCatalogsOfBuild(place: PsiElement, processor: PsiScopeProcessor, state: ResolveState): Set? { val catalogNameToAccessor: Map = getAccessorsForAllCatalogs(place) diff --git a/plugins/gradle/java/src/service/resolve/GradleGroovyProperty.kt b/plugins/gradle/java/src/service/resolve/GradleGroovyProperty.kt index 208f8d6de9af..0a60174b099e 100644 --- a/plugins/gradle/java/src/service/resolve/GradleGroovyProperty.kt +++ b/plugins/gradle/java/src/service/resolve/GradleGroovyProperty.kt @@ -26,7 +26,7 @@ class GradleGroovyProperty( override fun getIcon(flags: Int): Icon = IconManager.getInstance().getPlatformIcon(PlatformIcons.Property) companion object { - internal const val EXTENSION_PROPERTY : String = "via ext" + const val EXTENSION_PROPERTY : String = "via ext" } override fun getOriginInfo(): String = EXTENSION_PROPERTY diff --git a/plugins/gradle/java/src/service/resolve/GradleTaskContainerContributor.kt b/plugins/gradle/java/src/service/resolve/GradleTaskContainerContributor.kt index 366620935716..44c5433eacff 100644 --- a/plugins/gradle/java/src/service/resolve/GradleTaskContainerContributor.kt +++ b/plugins/gradle/java/src/service/resolve/GradleTaskContainerContributor.kt @@ -90,6 +90,6 @@ class GradleTaskContainerContributor : NonCodeMembersContributor() { } companion object { - internal const val GRADLE_TASK_INFO = "by Gradle tasks" + const val GRADLE_TASK_INFO = "by Gradle tasks" } } diff --git a/plugins/gradle/java/src/service/resolve/util.kt b/plugins/gradle/java/src/service/resolve/util.kt index a2c98b01f99c..6b385f1baf8c 100644 --- a/plugins/gradle/java/src/service/resolve/util.kt +++ b/plugins/gradle/java/src/service/resolve/util.kt @@ -9,6 +9,7 @@ import com.intellij.psi.PsiClass import com.intellij.psi.PsiElement import com.intellij.psi.PsiFile import com.intellij.util.ProcessingContext +import org.jetbrains.annotations.ApiStatus import org.jetbrains.plugins.gradle.util.GradleConstants.EXTENSION import org.jetbrains.plugins.groovy.lang.psi.api.GroovyMethodResult import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GroovyScriptClass @@ -40,7 +41,8 @@ private val PsiElement.module get() = containingFile?.originalFile?.virtualFile? ProjectFileIndex.getInstance(project).getModuleForFile(it) } -internal fun PsiElement.getLinkedGradleProjectPath() : String? { +@ApiStatus.Internal +fun PsiElement.getLinkedGradleProjectPath() : String? { return ExternalSystemApiUtil.getExternalProjectPath(module) }