diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/BuildKotlinToolingMetadataTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/BuildKotlinToolingMetadataTest.kt index 0449419bff4..feff95cca69 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/BuildKotlinToolingMetadataTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/BuildKotlinToolingMetadataTest.kt @@ -54,7 +54,7 @@ class BuildKotlinToolingMetadataTest { assertEquals("Gradle", metadata.buildSystem) assertEquals(project.gradle.gradleVersion, metadata.buildSystemVersion) assertEquals(KotlinMultiplatformPluginWrapper::class.java.canonicalName, metadata.buildPlugin) - assertEquals(project.getKotlinPluginVersion().toString(), metadata.buildPluginVersion) + assertEquals(project.getKotlinPluginVersion(), metadata.buildPluginVersion) assertEquals(1, metadata.projectTargets.size, "Expected one target (metadata)") assertTrue( KotlinMetadataTarget::class.java.isAssignableFrom(Class.forName(metadata.projectTargets.single().target)), diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/KotlinNativeCommonizerToolRunner.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/KotlinNativeCommonizerToolRunner.kt index da433a19e43..5f09e3d358f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/KotlinNativeCommonizerToolRunner.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/KotlinNativeCommonizerToolRunner.kt @@ -27,7 +27,7 @@ internal class KotlinNativeCommonizerToolRunner(project: Project) : KotlinToolRu } } - override val isolatedClassLoaderCacheKey get() = project.getKotlinPluginVersion()!! + override val isolatedClassLoaderCacheKey get() = project.getKotlinPluginVersion() override val defaultMaxHeapSize: String get() = "4G" diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt index b2b1d20e04b..dc967931165 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt @@ -11,7 +11,6 @@ import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.SourceKind import com.intellij.openapi.util.SystemInfo import com.intellij.util.lang.JavaVersion -import org.gradle.api.GradleException import org.gradle.api.Project import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.Dependency @@ -54,10 +53,8 @@ class Kapt3GradleSubplugin @Inject internal constructor(private val registry: To target.extensions.create("kapt", KaptExtension::class.java) target.configurations.create(KAPT_WORKER_DEPENDENCIES_CONFIGURATION_NAME).apply { - target.getKotlinPluginVersion()?.let { kotlinPluginVersion -> - val kaptDependency = getPluginArtifact().run { "$groupId:$artifactId:$kotlinPluginVersion" } - dependencies.add(target.dependencies.create(kaptDependency)) - } ?: throw GradleException("Kotlin plugin should be enabled before 'kotlin-kapt'") + val kaptDependency = getPluginArtifact().run { "$groupId:$artifactId:${target.getKotlinPluginVersion()}" } + dependencies.add(target.dependencies.create(kaptDependency)) } registry.register(KaptModelBuilder()) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/internal/AndroidSubplugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/internal/AndroidSubplugin.kt index 1cd4f7e7d1d..f4839c0bce9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/internal/AndroidSubplugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/internal/AndroidSubplugin.kt @@ -48,10 +48,7 @@ class AndroidExtensionsSubpluginIndicator @Inject internal constructor(private v } private fun addAndroidExtensionsRuntime(project: Project) { - val kotlinPluginVersion = project.getKotlinPluginVersion() ?: run { - project.logger.error("Kotlin plugin should be enabled before 'kotlin-android-extensions'") - return - } + val kotlinPluginVersion = project.getKotlinPluginVersion() project.configurations.all { configuration -> val name = configuration.name diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/internal/ParcelizeSubplugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/internal/ParcelizeSubplugin.kt index 3d231dea6c5..8dcbaade293 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/internal/ParcelizeSubplugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/internal/ParcelizeSubplugin.kt @@ -46,10 +46,7 @@ class ParcelizeSubplugin : KotlinCompilerPluginSupportPlugin { override fun getPluginArtifact(): SubpluginArtifact = JetBrainsSubpluginArtifact(artifactId = "kotlin-parcelize-compiler") private fun addParcelizeRuntime(project: Project) { - val kotlinPluginVersion = project.getKotlinPluginVersion() ?: run { - project.logger.error("Kotlin plugin should be enabled before 'kotlin-parcelize'") - return - } + val kotlinPluginVersion = project.getKotlinPluginVersion() project.configurations.all { configuration -> val name = configuration.name diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/HierarchicalNativeDistributionCommonizerTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/HierarchicalNativeDistributionCommonizerTask.kt index 02e5690c42c..4f239bcb741 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/HierarchicalNativeDistributionCommonizerTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/HierarchicalNativeDistributionCommonizerTask.kt @@ -75,7 +75,7 @@ internal open class HierarchicalNativeDistributionCommonizerTask : DefaultTask() get() = commonizerRunner.getCustomJvmArgs() internal fun getRootOutputDirectory(target: SharedCommonizerTarget): File { - val kotlinVersion = checkNotNull(project.getKotlinPluginVersion()) { "Missing Kotlin Plugin version" } + val kotlinVersion = project.getKotlinPluginVersion() val discriminator = buildString { append(target.identityString) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/KotlinNativePlatformDependencies.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/KotlinNativePlatformDependencies.kt index 5ac9f1a0e71..e895afb4086 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/KotlinNativePlatformDependencies.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/KotlinNativePlatformDependencies.kt @@ -31,7 +31,7 @@ private val Project.isNativeDependencyPropagationEnabled: Boolean @JvmOverloads @JvmName("isAllowCommonizer") internal fun Project.isAllowCommonizer( - kotlinVersion: String = getKotlinPluginVersion()!! + kotlinVersion: String = getKotlinPluginVersion() ): Boolean { multiplatformExtensionOrNull ?: return false @@ -47,7 +47,7 @@ internal fun Project.setUpKotlinNativePlatformDependencies() { // not a multiplatform project, nothing to set up return } - val kotlinVersion = getKotlinPluginVersion()!! + val kotlinVersion = getKotlinPluginVersion() val allowCommonizer = isAllowCommonizer(kotlinVersion) if (allowCommonizer && isHierarchicalCommonizationEnabled) { return setUpHierarchicalKotlinNativePlatformDependencies() diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/NativeDistributionCommonizerTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/NativeDistributionCommonizerTask.kt index 6618fc1abae..c700f081f33 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/NativeDistributionCommonizerTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/NativeDistributionCommonizerTask.kt @@ -166,7 +166,7 @@ private class TemporaryStagedDirectory(val temporaryDirectoryFile: File, private } internal fun Project.nativeDistributionCommonizerOutputDirectory(targets: KonanTargetGroup): File { - val kotlinVersion = checkNotNull(project.getKotlinPluginVersion()) { "Failed infering Kotlin Plugin version" } + val kotlinVersion = project.getKotlinPluginVersion() val orderedTargetNames = targets.map { it.name }.sorted() val discriminator = buildString { orderedTargetNames.joinTo(this, separator = "-") diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/jarSearchingUtil.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/jarSearchingUtil.kt index 620f8205df6..066d981b157 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/jarSearchingUtil.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/jarSearchingUtil.kt @@ -21,7 +21,6 @@ import org.gradle.api.Project import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.ResolvedDependency import org.gradle.api.initialization.dsl.ScriptHandler -import org.jetbrains.kotlin.gradle.plugin.KotlinBasePluginWrapper import org.jetbrains.kotlin.gradle.plugin.KotlinPlugin import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion import java.io.File @@ -133,10 +132,10 @@ internal fun findJarByClass(klass: Class<*>): File? { private fun findKotlinModuleJar(project: Project, expectedClassName: String, moduleId: String): List { val pluginVersion = project.getKotlinPluginVersion() - val filesToCheck = sequenceOf(pluginVersion?.let { version -> getModuleFromClassLoader(moduleId, version) }) + + val filesToCheck = sequenceOf(getModuleFromClassLoader(moduleId, pluginVersion)) + Sequence { findPotentialModuleJars(project, moduleId).iterator() } //call the body only when queried val entryToFind = expectedClassName.replace(".", "/") + ".class" - return filesToCheck.filterNotNull().firstOrNull { it.hasEntry(entryToFind) }?.let { listOf(it) } ?: emptyList() + return filesToCheck.filterNotNull().firstOrNull { it.hasEntry(entryToFind) }?.let { listOf(it) }.orEmpty() } private fun getModuleFromClassLoader(moduleId: String, moduleVersion: String): File? { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt index ed353e5143e..060834903d4 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt @@ -81,9 +81,7 @@ private fun KotlinProjectExtension.getKotlinToolingMetadata(): KotlinToolingMeta buildSystem = "Gradle", buildSystemVersion = project.gradle.gradleVersion, buildPlugin = project.plugins.withType(KotlinBasePluginWrapper::class.java).joinToString(";") { it.javaClass.canonicalName }, - buildPluginVersion = project.getKotlinPluginVersion() ?: throw IllegalStateException( - "Failed to infer Kotlin Plugin version" - ), + buildPluginVersion = project.getKotlinPluginVersion(), projectSettings = buildProjectSettings(), projectTargets = buildProjectTargets() )