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
This commit is contained in:
Ivan Gavrilovic
2019-06-21 23:52:29 +09:00
committed by Yan Zhulanow
parent 5cab6fd6cf
commit 6619106af2
3 changed files with 20 additions and 8 deletions
@@ -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)) }
@@ -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<ProcessorWrapper>, 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<Long>()
@@ -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: " +
@@ -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)