Fix incompatibility because of KotlinGradleModelFacade change (KT-25713)
AndroidGradleModelFacade was moved to android plugin in AS 3.3, so now changes in KotlinGradleModelFacade should be binary compatible. Current fix rewrite KotlinGradleModelFacade to Java because of default methods. Also current implementation abuses the fact that AndroidGradleModelFacade don't use groupId parameter for getting library versions. #KT-25713 Fixed
This commit is contained in:
+2
-1
@@ -44,7 +44,8 @@ import org.jetbrains.kotlin.idea.inspections.gradle.KotlinGradleModelFacade
|
||||
import org.jetbrains.kotlin.idea.inspections.gradle.findModulesByNames
|
||||
|
||||
class AndroidGradleModelFacade : KotlinGradleModelFacade {
|
||||
override fun getResolvedVersionByModuleData(moduleData: DataNode<*>, groupId: String, libraryIds: List<String>): String? {
|
||||
@Suppress("OverridingDeprecatedMember")
|
||||
override fun getResolvedKotlinStdlibVersionByModuleData(moduleData: DataNode<*>, libraryIds: List<String>): String? {
|
||||
ExternalSystemApiUtil
|
||||
.findAllRecursively(moduleData, AndroidProjectKeys.JAVA_MODULE_MODEL).asSequence()
|
||||
.flatMap { it.data.jarLibraryDependencies.asSequence() }
|
||||
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.idea.inspections.gradle;
|
||||
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.externalSystem.model.DataNode;
|
||||
import com.intellij.openapi.externalSystem.model.project.ModuleData;
|
||||
import org.gradle.tooling.model.idea.IdeaProject;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public interface KotlinGradleModelFacade {
|
||||
ExtensionPointName<KotlinGradleModelFacade> EP_NAME = ExtensionPointName.create("org.jetbrains.kotlin.gradleModelFacade");
|
||||
|
||||
@Deprecated
|
||||
@Nullable
|
||||
default String getResolvedKotlinStdlibVersionByModuleData(@NotNull DataNode<?> moduleData, @NotNull List<String> libraryIds) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
default String getResolvedVersionByModuleData(
|
||||
@NotNull DataNode<?> moduleData,
|
||||
@NotNull String groupId,
|
||||
@NotNull List<String> libraryIds
|
||||
) {
|
||||
//noinspection deprecation
|
||||
return getResolvedKotlinStdlibVersionByModuleData(moduleData, libraryIds);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
Collection<DataNode<ModuleData>> getDependencyModules(@NotNull DataNode<ModuleData> ideModule, @NotNull IdeaProject gradleIdeaProject);
|
||||
}
|
||||
-10
@@ -16,7 +16,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.inspections.gradle
|
||||
|
||||
import com.intellij.openapi.extensions.ExtensionPointName
|
||||
import com.intellij.openapi.extensions.Extensions
|
||||
import com.intellij.openapi.externalSystem.model.DataNode
|
||||
import com.intellij.openapi.externalSystem.model.ProjectKeys
|
||||
@@ -25,15 +24,6 @@ import com.intellij.openapi.externalSystem.model.project.ProjectData
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
|
||||
import org.gradle.tooling.model.idea.IdeaProject
|
||||
|
||||
interface KotlinGradleModelFacade {
|
||||
companion object {
|
||||
val EP_NAME: ExtensionPointName<KotlinGradleModelFacade> = ExtensionPointName.create("org.jetbrains.kotlin.gradleModelFacade")
|
||||
}
|
||||
|
||||
fun getResolvedVersionByModuleData(moduleData: DataNode<*>, groupId: String, libraryIds: List<String>): String?
|
||||
fun getDependencyModules(ideModule: DataNode<ModuleData>, gradleIdeaProject: IdeaProject): Collection<DataNode<ModuleData>>
|
||||
}
|
||||
|
||||
class DefaultGradleModelFacade : KotlinGradleModelFacade {
|
||||
override fun getResolvedVersionByModuleData(moduleData: DataNode<*>, groupId: String, libraryIds: List<String>): String? {
|
||||
for (libraryDependencyData in ExternalSystemApiUtil.findAllRecursively(moduleData, ProjectKeys.LIBRARY_DEPENDENCY)) {
|
||||
|
||||
Reference in New Issue
Block a user