diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/AbstractProjectResolverExtensionCompat.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/AbstractProjectResolverExtensionCompat.kt new file mode 100644 index 00000000000..f6f8ea9afab --- /dev/null +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/AbstractProjectResolverExtensionCompat.kt @@ -0,0 +1,28 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * 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.configuration + +import com.intellij.openapi.externalSystem.model.DataNode +import com.intellij.openapi.externalSystem.model.project.ModuleData +import com.intellij.openapi.externalSystem.model.project.ProjectData +import org.gradle.tooling.model.idea.IdeaModule +import org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension + +// BUNCH: 193 +abstract class AbstractProjectResolverExtensionCompat : AbstractProjectResolverExtension() { + override fun createModule(gradleModule: IdeaModule, projectDataNode: DataNode): DataNode { + return super.createModule(gradleModule, projectDataNode).also { + initializeModuleNode(gradleModule, it, projectDataNode) + } + } + + // Inline after class remove + abstract fun initializeModuleNode( + gradleModule: IdeaModule, + moduleDataNode: DataNode, + projectDataNode: DataNode, + ) +} \ No newline at end of file diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/AbstractProjectResolverExtensionCompat.kt.201 b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/AbstractProjectResolverExtensionCompat.kt.201 new file mode 100644 index 00000000000..f87239cfc98 --- /dev/null +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/AbstractProjectResolverExtensionCompat.kt.201 @@ -0,0 +1,28 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * 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.configuration + +import com.intellij.openapi.externalSystem.model.DataNode +import com.intellij.openapi.externalSystem.model.project.ModuleData +import com.intellij.openapi.externalSystem.model.project.ProjectData +import org.gradle.tooling.model.idea.IdeaModule +import org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension + +// BUNCH: 193 +abstract class AbstractProjectResolverExtensionCompat : AbstractProjectResolverExtension() { + override fun createModule(gradleModule: IdeaModule, projectDataNode: DataNode): DataNode? { + return super.createModule(gradleModule, projectDataNode)?.also { + initializeModuleNode(gradleModule, it, projectDataNode) + } + } + + // Inline after class remove + abstract fun initializeModuleNode( + gradleModule: IdeaModule, + moduleDataNode: DataNode, + projectDataNode: DataNode, + ) +} \ No newline at end of file diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinMPPGradleProjectResolver.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinMPPGradleProjectResolver.kt index d4ff3d5b264..86be17a0110 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinMPPGradleProjectResolver.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinMPPGradleProjectResolver.kt @@ -34,17 +34,15 @@ import org.jetbrains.kotlin.config.ExternalSystemTestTask import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.gradle.* import org.jetbrains.kotlin.idea.configuration.GradlePropertiesFileFacade.Companion.KOTLIN_NOT_IMPORTED_COMMON_SOURCE_SETS_SETTING -import org.jetbrains.kotlin.idea.configuration.KotlinMPPGradleProjectResolver.Companion.fullName -import org.jetbrains.kotlin.idea.configuration.klib.KotlinNativeLibraryNameUtil.KOTLIN_NATIVE_LIBRARY_PREFIX import org.jetbrains.kotlin.idea.configuration.klib.KotlinNativeLibrariesDependencySubstitutor import org.jetbrains.kotlin.idea.configuration.klib.KotlinNativeLibrariesFixer +import org.jetbrains.kotlin.idea.configuration.klib.KotlinNativeLibraryNameUtil.KOTLIN_NATIVE_LIBRARY_PREFIX import org.jetbrains.kotlin.idea.platform.IdePlatformKindTooling import org.jetbrains.kotlin.util.removeSuffixIfPresent import org.jetbrains.kotlin.utils.addToStdlib.firstNotNullResult import org.jetbrains.plugins.gradle.model.* import org.jetbrains.plugins.gradle.model.data.BuildScriptClasspathData import org.jetbrains.plugins.gradle.model.data.GradleSourceSetData -import org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension import org.jetbrains.plugins.gradle.service.project.GradleProjectResolver import org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.CONFIGURATION_ARTIFACTS import org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.MODULES_OUTPUTS @@ -58,7 +56,7 @@ import java.util.* import kotlin.collections.HashMap @Order(ExternalSystemConstants.UNORDERED + 1) -open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtension() { +open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtensionCompat() { override fun getToolingExtensionsClasses(): Set> { return setOf(KotlinMPPGradleModelBuilder::class.java, Unit::class.java) } @@ -67,10 +65,12 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtension() { return setOf(KotlinMPPGradleModel::class.java) } - override fun createModule(gradleModule: IdeaModule, projectDataNode: DataNode): DataNode { - return super.createModule(gradleModule, projectDataNode).also { - initializeModuleData(gradleModule, it, projectDataNode, resolverCtx) - } + override fun initializeModuleNode( + gradleModule: IdeaModule, + moduleDataNode: DataNode, + projectDataNode: DataNode + ) { + initializeModuleData(gradleModule, moduleDataNode, projectDataNode, resolverCtx) } override fun populateModuleExtraModels(gradleModule: IdeaModule, ideModule: DataNode) {