From d3dc9b19b8584c701bd0da1dc3afb33613dabc79 Mon Sep 17 00:00:00 2001 From: "nataliya.valtman" Date: Mon, 27 Sep 2021 20:10:11 +0300 Subject: [PATCH] KT-48620: Avoid build scan listener creation without --scan property --- .../kotlin/gradle/plugin/KotlinGradleBuildServices.kt | 11 +++++------ .../plugin/statistics/KotlinBuildEsStatListener.kt | 5 ++++- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinGradleBuildServices.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinGradleBuildServices.kt index ffc8364c464..03d12f00726 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinGradleBuildServices.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinGradleBuildServices.kt @@ -12,7 +12,6 @@ import org.gradle.api.invocation.Gradle import org.gradle.api.logging.Logging import com.gradle.scan.plugin.BuildScanExtension import org.gradle.api.provider.Provider -import org.gradle.build.event.BuildEventsListenerRegistry import org.gradle.tooling.events.OperationCompletionListener import org.jetbrains.kotlin.gradle.logging.kotlinDebug import org.jetbrains.kotlin.gradle.plugin.internal.state.TaskExecutionResults @@ -23,7 +22,6 @@ import org.jetbrains.kotlin.gradle.plugin.statistics.ReportStatisticsToBuildScan import org.jetbrains.kotlin.gradle.plugin.statistics.ReportStatisticsToElasticSearch import org.jetbrains.kotlin.gradle.report.configureReporting import org.jetbrains.kotlin.gradle.utils.isConfigurationCacheAvailable -import java.util.* //Support Gradle 6 and less. Move to internal class KotlinGradleBuildServices private constructor( @@ -78,15 +76,16 @@ internal class KotlinGradleBuildServices private constructor( val kotlinGradleEsListenerProvider = project.provider { val listeners = project.rootProject.objects.listProperty(ReportStatistics::class.java) .value(listOf(ReportStatisticsToElasticSearch)) - project.rootProject.extensions.findByName("buildScan") - ?.also { listeners.add(ReportStatisticsToBuildScan(it as BuildScanExtension)) } - KotlinBuildEsStatListener(project.rootProject.name, listeners.get(), UUID.randomUUID().toString()) + if (project.gradle.startParameter.isBuildScan) { + project.rootProject.extensions.findByName("buildScan") + ?.also { listeners.add(ReportStatisticsToBuildScan(it as BuildScanExtension)) } + } + KotlinBuildEsStatListener(project.rootProject.name, listeners.get()) } if (instance != null) { log.kotlinDebug(ALREADY_INITIALIZED_MESSAGE) -// instance!!.gradleListenerProviders.forEach { listenerRegistry.onTaskCompletion(it) } return instance!! } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildEsStatListener.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildEsStatListener.kt index 9befc975566..6fba3763417 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildEsStatListener.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildEsStatListener.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.gradle.plugin.stat.CompileStatData import org.jetbrains.kotlin.gradle.plugin.stat.ReportStatistics import org.jetbrains.kotlin.incremental.ChangedFiles import java.net.InetAddress +import java.util.* enum class TaskExecutionState { SKIPPED, @@ -28,9 +29,11 @@ enum class TaskExecutionState { ; } -class KotlinBuildEsStatListener(val projectName: String, val reportStatistics: List, val buildUuid: String) : +class KotlinBuildEsStatListener(val projectName: String, val reportStatistics: List) : OperationCompletionListener, AutoCloseable, TaskExecutionListener { + val buildUuid: String = UUID.randomUUID().toString() + val label by lazy { CompilerSystemProperties.KOTLIN_STAT_LABEl_PROPERTY.value } val hostName: String? by lazy { try {