Replace Gradle logger with ICReporter

This commit is contained in:
Alexey Tsvetkov
2016-11-24 17:36:45 +03:00
parent 599f11b431
commit 377912f42d
4 changed files with 18 additions and 14 deletions
@@ -30,8 +30,7 @@ import org.jetbrains.kotlin.gradle.plugin.kotlinDebug
import java.io.File import java.io.File
import java.util.* import java.util.*
internal class ChangedJavaFilesProcessor { internal class ChangedJavaFilesProcessor(private val reporter: ICReporter) {
private val log = Logging.getLogger(this.javaClass.simpleName)
private val allSymbols = HashSet<LookupSymbol>() private val allSymbols = HashSet<LookupSymbol>()
private val javaLang = JavaLanguage.INSTANCE private val javaLang = JavaLanguage.INSTANCE
private val psiFileFactory: PsiFileFactory by lazy { private val psiFileFactory: PsiFileFactory by lazy {
@@ -50,7 +49,7 @@ internal class ChangedJavaFilesProcessor {
val removedJava = filesDiff.removed.filter(File::isJavaFile) val removedJava = filesDiff.removed.filter(File::isJavaFile)
if (removedJava.any()) { if (removedJava.any()) {
log.kotlinDebug { "Some java files are removed: [${removedJava.joinToString()}]" } reporter.report { "Some java files are removed: [${removedJava.joinToString()}]" }
return ChangesEither.Unknown() return ChangesEither.Unknown()
} }
@@ -60,7 +59,7 @@ internal class ChangedJavaFilesProcessor {
val psiFile = javaFile.psiFile() val psiFile = javaFile.psiFile()
if (psiFile !is PsiJavaFile) { if (psiFile !is PsiJavaFile) {
log.kotlinDebug { "Expected PsiJavaFile, got ${psiFile?.javaClass}" } reporter.report { "Expected PsiJavaFile, got ${psiFile?.javaClass}" }
return ChangesEither.Unknown() return ChangesEither.Unknown()
} }
@@ -25,15 +25,18 @@ import org.jetbrains.kotlin.incremental.storage.StringCollectionExternalizer
import org.jetbrains.kotlin.modules.TargetId import org.jetbrains.kotlin.modules.TargetId
import java.io.File import java.io.File
internal class GradleIncrementalCacheImpl(targetDataRoot: File, targetOutputDir: File?, target: TargetId) : IncrementalCacheImpl<TargetId>(targetDataRoot, targetOutputDir, target) { internal class GradleIncrementalCacheImpl(
targetDataRoot: File,
targetOutputDir: File?,
target: TargetId,
private val reporter: ICReporter
) : IncrementalCacheImpl<TargetId>(targetDataRoot, targetOutputDir, target) {
companion object { companion object {
private val SOURCES_TO_CLASSFILES = "sources-to-classfiles" private val SOURCES_TO_CLASSFILES = "sources-to-classfiles"
private val GENERATED_SOURCE_SNAPSHOTS = "generated-source-snapshot" private val GENERATED_SOURCE_SNAPSHOTS = "generated-source-snapshot"
private val SOURCE_SNAPSHOTS = "source-snapshot" private val SOURCE_SNAPSHOTS = "source-snapshot"
} }
private val log = org.gradle.api.logging.Logging.getLogger(this.javaClass)
internal val sourceToClassfilesMap = registerMap(SourceToClassfilesMap(SOURCES_TO_CLASSFILES.storageFile)) internal val sourceToClassfilesMap = registerMap(SourceToClassfilesMap(SOURCES_TO_CLASSFILES.storageFile))
internal val generatedSourceSnapshotMap = registerMap(FileSnapshotMap(GENERATED_SOURCE_SNAPSHOTS.storageFile)) internal val generatedSourceSnapshotMap = registerMap(FileSnapshotMap(GENERATED_SOURCE_SNAPSHOTS.storageFile))
internal val sourceSnapshotMap = registerMap(FileSnapshotMap(SOURCE_SNAPSHOTS.storageFile)) internal val sourceSnapshotMap = registerMap(FileSnapshotMap(SOURCE_SNAPSHOTS.storageFile))
@@ -60,7 +63,7 @@ internal class GradleIncrementalCacheImpl(targetDataRoot: File, targetOutputDir:
// TODO: do it in the code that uses cache, since cache should not generally delete anything outside of it! // TODO: do it in the code that uses cache, since cache should not generally delete anything outside of it!
// but for a moment it is an easiest solution to implement // but for a moment it is an easiest solution to implement
get(file).forEach { get(file).forEach {
log.kotlinDebug { "Deleting $it on clearing cache for $file" } reporter.report { "Deleting $it on clearing cache for $file" }
it.delete() it.delete()
} }
storage.remove(file.absolutePath) storage.remove(file.absolutePath)
@@ -22,7 +22,8 @@ import java.io.File
internal class IncrementalCachesManager ( internal class IncrementalCachesManager (
private val targetId: TargetId, private val targetId: TargetId,
private val cacheDirectory: File, private val cacheDirectory: File,
private val outputDir: File private val outputDir: File,
private val reporter: ICReporter
) { ) {
private val incrementalCacheDir = File(cacheDirectory, "increCache.${targetId.name}") private val incrementalCacheDir = File(cacheDirectory, "increCache.${targetId.name}")
private val lookupCacheDir = File(cacheDirectory, "lookups") private val lookupCacheDir = File(cacheDirectory, "lookups")
@@ -32,7 +33,8 @@ internal class IncrementalCachesManager (
val incrementalCache: GradleIncrementalCacheImpl val incrementalCache: GradleIncrementalCacheImpl
get() { get() {
if (incrementalCacheField == null) { if (incrementalCacheField == null) {
incrementalCacheField = GradleIncrementalCacheImpl(targetDataRoot = incrementalCacheDir.apply { mkdirs() }, targetOutputDir = outputDir, target = targetId) val targetDataRoot = incrementalCacheDir.apply { mkdirs() }
incrementalCacheField = GradleIncrementalCacheImpl(targetDataRoot, outputDir, targetId, reporter)
} }
return incrementalCacheField!! return incrementalCacheField!!
@@ -112,7 +112,7 @@ internal class IncrementalJvmCompilerRunner(
getChangedFiles: (IncrementalCachesManager)->ChangedFiles getChangedFiles: (IncrementalCachesManager)->ChangedFiles
): ExitCode { ): ExitCode {
val targetId = TargetId(name = args.moduleName, type = "java-production") val targetId = TargetId(name = args.moduleName, type = "java-production")
var caches = IncrementalCachesManager(targetId, cacheDirectory, File(args.destination)) var caches = IncrementalCachesManager(targetId, cacheDirectory, File(args.destination), reporter)
fun onError(e: Exception): ExitCode { fun onError(e: Exception): ExitCode {
caches.clean() caches.clean()
@@ -121,13 +121,13 @@ internal class IncrementalJvmCompilerRunner(
// todo: warn? // todo: warn?
reporter.report { "Possible cache corruption. Rebuilding. $e" } reporter.report { "Possible cache corruption. Rebuilding. $e" }
// try to rebuild // try to rebuild
val javaFilesProcessor = ChangedJavaFilesProcessor() val javaFilesProcessor = ChangedJavaFilesProcessor(reporter)
caches = IncrementalCachesManager(targetId, cacheDirectory, args.destinationAsFile) caches = IncrementalCachesManager(targetId, cacheDirectory, args.destinationAsFile, reporter)
return compileIncrementally(args, caches, javaFilesProcessor, allKotlinSources, targetId, CompilationMode.Rebuild, messageCollector) return compileIncrementally(args, caches, javaFilesProcessor, allKotlinSources, targetId, CompilationMode.Rebuild, messageCollector)
} }
return try { return try {
val javaFilesProcessor = ChangedJavaFilesProcessor() val javaFilesProcessor = ChangedJavaFilesProcessor(reporter)
val changedFiles = getChangedFiles(caches) val changedFiles = getChangedFiles(caches)
val compilationMode = calculateSourcesToCompile(javaFilesProcessor, caches, changedFiles, args) val compilationMode = calculateSourcesToCompile(javaFilesProcessor, caches, changedFiles, args)
compileIncrementally(args, caches, javaFilesProcessor, allKotlinSources, targetId, compilationMode, messageCollector) compileIncrementally(args, caches, javaFilesProcessor, allKotlinSources, targetId, compilationMode, messageCollector)