All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jetbrains.kotlin.gradle.report.KotlinBuildReporterListener.kt Maven / Gradle / Ivy

There is a newer version: 2.1.0-Beta1
Show newest version
/*
 * 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.gradle.report

import org.gradle.api.invocation.Gradle
import org.gradle.tooling.events.FinishEvent
import org.gradle.tooling.events.OperationCompletionListener
import org.gradle.tooling.events.task.TaskOperationDescriptor
import java.io.File
import java.util.*

class KotlinBuildReporterListener(val gradle: Gradle, val perfReportFile: File) : OperationCompletionListener, AutoCloseable {

    private val kotlinTaskTimeNs = HashMap()
    internal var allTasksTimeNs: Long = 0L

    override fun onFinish(event: FinishEvent?) {
        val descriptor = event?.descriptor
        if (descriptor is TaskOperationDescriptor) {
            val taskPath = descriptor.taskPath
            val executionTime = event.result.endTime - event.result.startTime
            allTasksTimeNs += executionTime
            kotlinTaskTimeNs[taskPath] = executionTime
        }
    }

    override fun close() {
        KotlinBuildReporterHandler().buildFinished(gradle, perfReportFile, kotlinTaskTimeNs, allTasksTimeNs)
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy