KT-48620: Avoid build scan listener creation without --scan property

This commit is contained in:
nataliya.valtman
2021-09-27 20:10:11 +03:00
committed by Space
parent a80445bf78
commit d3dc9b19b8
2 changed files with 9 additions and 7 deletions
@@ -12,7 +12,6 @@ import org.gradle.api.invocation.Gradle
import org.gradle.api.logging.Logging import org.gradle.api.logging.Logging
import com.gradle.scan.plugin.BuildScanExtension import com.gradle.scan.plugin.BuildScanExtension
import org.gradle.api.provider.Provider import org.gradle.api.provider.Provider
import org.gradle.build.event.BuildEventsListenerRegistry
import org.gradle.tooling.events.OperationCompletionListener import org.gradle.tooling.events.OperationCompletionListener
import org.jetbrains.kotlin.gradle.logging.kotlinDebug import org.jetbrains.kotlin.gradle.logging.kotlinDebug
import org.jetbrains.kotlin.gradle.plugin.internal.state.TaskExecutionResults 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.plugin.statistics.ReportStatisticsToElasticSearch
import org.jetbrains.kotlin.gradle.report.configureReporting import org.jetbrains.kotlin.gradle.report.configureReporting
import org.jetbrains.kotlin.gradle.utils.isConfigurationCacheAvailable import org.jetbrains.kotlin.gradle.utils.isConfigurationCacheAvailable
import java.util.*
//Support Gradle 6 and less. Move to //Support Gradle 6 and less. Move to
internal class KotlinGradleBuildServices private constructor( internal class KotlinGradleBuildServices private constructor(
@@ -78,15 +76,16 @@ internal class KotlinGradleBuildServices private constructor(
val kotlinGradleEsListenerProvider = project.provider { val kotlinGradleEsListenerProvider = project.provider {
val listeners = project.rootProject.objects.listProperty(ReportStatistics::class.java) val listeners = project.rootProject.objects.listProperty(ReportStatistics::class.java)
.value(listOf<ReportStatistics>(ReportStatisticsToElasticSearch)) .value(listOf<ReportStatistics>(ReportStatisticsToElasticSearch))
project.rootProject.extensions.findByName("buildScan") if (project.gradle.startParameter.isBuildScan) {
?.also { listeners.add(ReportStatisticsToBuildScan(it as BuildScanExtension)) } project.rootProject.extensions.findByName("buildScan")
KotlinBuildEsStatListener(project.rootProject.name, listeners.get(), UUID.randomUUID().toString()) ?.also { listeners.add(ReportStatisticsToBuildScan(it as BuildScanExtension)) }
}
KotlinBuildEsStatListener(project.rootProject.name, listeners.get())
} }
if (instance != null) { if (instance != null) {
log.kotlinDebug(ALREADY_INITIALIZED_MESSAGE) log.kotlinDebug(ALREADY_INITIALIZED_MESSAGE)
// instance!!.gradleListenerProviders.forEach { listenerRegistry.onTaskCompletion(it) }
return instance!! return instance!!
} }
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.gradle.plugin.stat.CompileStatData
import org.jetbrains.kotlin.gradle.plugin.stat.ReportStatistics import org.jetbrains.kotlin.gradle.plugin.stat.ReportStatistics
import org.jetbrains.kotlin.incremental.ChangedFiles import org.jetbrains.kotlin.incremental.ChangedFiles
import java.net.InetAddress import java.net.InetAddress
import java.util.*
enum class TaskExecutionState { enum class TaskExecutionState {
SKIPPED, SKIPPED,
@@ -28,9 +29,11 @@ enum class TaskExecutionState {
; ;
} }
class KotlinBuildEsStatListener(val projectName: String, val reportStatistics: List<ReportStatistics>, val buildUuid: String) : class KotlinBuildEsStatListener(val projectName: String, val reportStatistics: List<ReportStatistics>) :
OperationCompletionListener, AutoCloseable, TaskExecutionListener { OperationCompletionListener, AutoCloseable, TaskExecutionListener {
val buildUuid: String = UUID.randomUUID().toString()
val label by lazy { CompilerSystemProperties.KOTLIN_STAT_LABEl_PROPERTY.value } val label by lazy { CompilerSystemProperties.KOTLIN_STAT_LABEl_PROPERTY.value }
val hostName: String? by lazy { val hostName: String? by lazy {
try { try {