From 6619106af2396dbe2b36bb4c101398a8fa26b169 Mon Sep 17 00:00:00 2001 From: Ivan Gavrilovic Date: Fri, 21 Jun 2019 23:52:29 +0900 Subject: [PATCH] Improve incremental KAPT logging This commit improves incremental KAPT logging. It reports processor stats using their actual names. Also, warning is printed if incremental annotation processing is requested, but not all APs are incremental --- .../kotlin/kapt3/base/ProcessorLoader.kt | 1 - .../kotlin/kapt3/base/annotationProcessing.kt | 25 +++++++++++++------ .../base/incremental/incrementalProcessors.kt | 2 ++ 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/ProcessorLoader.kt b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/ProcessorLoader.kt index e95d0a9ceb7..83c3fac2c0d 100644 --- a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/ProcessorLoader.kt +++ b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/ProcessorLoader.kt @@ -65,7 +65,6 @@ open class ProcessorLoader(private val options: KaptOptions, private val logger: val nonIncremental = processorNames.filter { !processorsInfo.containsKey(it) } return if (nonIncremental.isNotEmpty()) { - logger.info("Incremental KAPT support is disabled. Processors that are not incremental: ${nonIncremental.joinToString()}.") processors.map { IncrementalProcessor(it, DeclaredProcType.NON_INCREMENTAL) } } else { processors.map { IncrementalProcessor(it, processorsInfo.getValue(it.javaClass.name)) } diff --git a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/annotationProcessing.kt b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/annotationProcessing.kt index bdb838a6703..0d6c3a15d05 100644 --- a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/annotationProcessing.kt +++ b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/annotationProcessing.kt @@ -13,10 +13,7 @@ import com.sun.tools.javac.processing.JavacFiler import com.sun.tools.javac.processing.JavacProcessingEnvironment import com.sun.tools.javac.tree.JCTree import org.jetbrains.kotlin.base.kapt3.KaptFlag -import org.jetbrains.kotlin.kapt3.base.incremental.DeclaredProcType -import org.jetbrains.kotlin.kapt3.base.incremental.GeneratedTypesTaskListener -import org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProcessor -import org.jetbrains.kotlin.kapt3.base.incremental.MentionedTypesTaskListener +import org.jetbrains.kotlin.kapt3.base.incremental.* import org.jetbrains.kotlin.kapt3.base.util.KaptBaseError import org.jetbrains.kotlin.kapt3.base.util.isJava9OrLater import org.jetbrains.kotlin.kapt3.base.util.measureTimeMillisWithResult @@ -87,6 +84,20 @@ fun KaptContext.doAnnotationProcessing( cacheManager?.updateCache(processors) + sourcesStructureListener?.let { + if (logger.isVerbose) { + logger.info("Analyzing sources structure took ${it.time}[ms].") + } + } + if (cacheManager != null && processors.any { it.getRuntimeType() == RuntimeProcType.NON_INCREMENTAL }) { + val nonIncremental = + processors.filter { it.getRuntimeType() == RuntimeProcType.NON_INCREMENTAL }.map { it.processorName } + logger.warn( + "Incremental annotation processing requested, but support is disabled because the following " + + "processors are not incremental: ${nonIncremental.joinToString()}." + ) + } + val log = compilerAfterAP.log val filer = processingEnvironment.filer as JavacFiler @@ -123,7 +134,7 @@ private fun showProcessorTimings(wrappedProcessors: List, logg } } -private class ProcessorWrapper(private val delegate: Processor) : Processor by delegate { +private class ProcessorWrapper(private val delegate: IncrementalProcessor) : Processor by delegate { private var initTime: Long = 0 private val roundTime = mutableListOf() @@ -136,7 +147,7 @@ private class ProcessorWrapper(private val delegate: Processor) : Processor by d return result } - override fun init(processingEnv: ProcessingEnvironment?) { + override fun init(processingEnv: ProcessingEnvironment) { initTime += measureTimeMillis { delegate.init(processingEnv) } @@ -161,7 +172,7 @@ private class ProcessorWrapper(private val delegate: Processor) : Processor by d } fun renderSpentTime(): String { - val processorName = delegate.javaClass.simpleName + val processorName = delegate.processorName val totalTime = initTime + roundTime.sum() return "$processorName: " + diff --git a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/incremental/incrementalProcessors.kt b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/incremental/incrementalProcessors.kt index 57fcddca9d6..a158f9be8ce 100644 --- a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/incremental/incrementalProcessors.kt +++ b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/incremental/incrementalProcessors.kt @@ -23,6 +23,8 @@ class IncrementalProcessor(private val processor: Processor, val kind: DeclaredP private var dependencyCollector = lazy { createDependencyCollector() } + val processorName: String = processor.javaClass.name + override fun init(processingEnv: ProcessingEnvironment) { if (kind == DeclaredProcType.NON_INCREMENTAL) { processor.init(processingEnv)