diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPluginWrapper.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPluginWrapper.kt index 6f688aee5f4..2fd1c9db84c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPluginWrapper.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPluginWrapper.kt @@ -68,21 +68,20 @@ abstract class DefaultKotlinBasePlugin : KotlinBasePlugin { override val pluginVersion: String = getKotlinPluginVersion(logger) override fun apply(project: Project) { + checkGradleCompatibility() + project.registerDefaultVariantImplementations() KotlinBuildStatsService.getOrCreateInstance(project)?.apply { report(StringMetrics.KOTLIN_COMPILER_VERSION, pluginVersion) } BuildFlowService.registerIfAbsent(project) - checkGradleCompatibility() - project.gradle.projectsEvaluated { whenBuildEvaluated(project) } addKotlinCompilerConfiguration(project) - project.registerDefaultVariantImplementations() project.configurations.maybeCreate(PLUGIN_CLASSPATH_CONFIGURATION_NAME).apply { isVisible = false diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/BuildFlowService.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/BuildFlowService.kt index 229669d8ec9..20988edc144 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/BuildFlowService.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/BuildFlowService.kt @@ -18,6 +18,7 @@ import org.gradle.tooling.events.task.TaskFinishEvent import org.gradle.util.GradleVersion import org.jetbrains.kotlin.gradle.plugin.BuildEventsListenerRegistryHolder import org.jetbrains.kotlin.gradle.plugin.StatisticsBuildFlowManager +import org.jetbrains.kotlin.gradle.plugin.internal.isProjectIsolationEnabled import org.jetbrains.kotlin.gradle.utils.isConfigurationCacheAvailable import org.jetbrains.kotlin.statistics.metrics.BooleanMetrics import org.jetbrains.kotlin.statistics.metrics.IStatisticsValuesConsumer @@ -55,6 +56,11 @@ internal abstract class BuildFlowService : BuildService if (fusStatisticsAvailable) { KotlinBuildStatsService.applyIfInitialised { @@ -63,7 +69,7 @@ internal abstract class BuildFlowService : BuildService diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatHandler.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatHandler.kt index bc2e5f6ad87..5b86a1e405f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatHandler.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatHandler.kt @@ -84,13 +84,14 @@ class KotlinBuildStatHandler { internal fun collectConfigurationTimeMetrics( project: Project, sessionLogger: BuildSessionLogger, + isProjectIsolationEnabled: Boolean, ): MetricContainer { val gradle = project.gradle val configurationTimeMetrics = MetricContainer() configurationTimeMetrics.put(StringMetrics.PROJECT_PATH, gradle.rootProject.projectDir.absolutePath) configurationTimeMetrics.put(StringMetrics.GRADLE_VERSION, gradle.gradleVersion) - if (project.isProjectIsolationEnabled) { //support project isolation - KT-58768 + if (isProjectIsolationEnabled) { //support project isolation - KT-58768 return configurationTimeMetrics } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatsService.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatsService.kt index 6e8abfff994..c9dd68f37fc 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatsService.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatsService.kt @@ -129,7 +129,7 @@ internal abstract class KotlinBuildStatsService internal constructor() : IStatis registerPre232IdeaStatsBean(mbs, gradle, log) } - BuildEventsListenerRegistryHolder.getInstance(project).listenerRegistry.onTaskCompletion(project.provider { + BuildEventsListenerRegistryHolder.getInstance(project).listenerRegistry.onTaskCompletion(project.provider { OperationCompletionListener { event -> if (event is TaskFinishEvent) { reportTaskIfNeed(event.descriptor.name) @@ -220,7 +220,7 @@ internal abstract class KotlinBuildStatsService internal constructor() : IStatis /** * Collect project general and configuration metrics at the start of a build */ - open fun collectStartMetrics(project: Project): MetricContainer = MetricContainer() + open fun collectStartMetrics(project: Project, isProjectIsolationEnabled: Boolean): MetricContainer = MetricContainer() open fun recordProjectsEvaluated(gradle: Gradle) {} } @@ -338,6 +338,7 @@ internal class DefaultKotlinBuildStatsService internal constructor( KotlinBuildStatHandler().reportBuildFinished(sessionLogger, action, buildFailed, configurationTimeMetrics) } - override fun collectStartMetrics(project: Project) = KotlinBuildStatHandler().collectConfigurationTimeMetrics(project, sessionLogger) + override fun collectStartMetrics(project: Project, isProjectIsolationEnabled: Boolean) = + KotlinBuildStatHandler().collectConfigurationTimeMetrics(project, sessionLogger, isProjectIsolationEnabled) }