[Gradle] Migrate errors collector to new persistent storage

^KT-58223 In Progress
This commit is contained in:
Yahor Berdnikau
2023-08-14 23:22:47 +02:00
committed by Space Team
parent cf44bff164
commit 3d94679db4
3 changed files with 10 additions and 6 deletions
@@ -168,7 +168,7 @@ abstract class AbstractKotlinCompile<T : CommonCompilerArguments> @Inject constr
@get:Internal
protected val gradleCompileTaskProvider: Provider<GradleCompileTaskProvider> = objectFactory
.property(
objectFactory.newInstance<GradleCompileTaskProvider>(project.gradle, this, project, incrementalModuleInfoProvider)
objectFactory.newInstance<GradleCompileTaskProvider>(this, project, incrementalModuleInfoProvider)
)
@get:Internal
@@ -9,13 +9,13 @@ import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.file.DirectoryProperty
import org.gradle.api.file.ProjectLayout
import org.gradle.api.invocation.Gradle
import org.gradle.api.logging.Logger
import org.gradle.api.model.ObjectFactory
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.Internal
import org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner.Companion.normalizeForFlagFile
import org.jetbrains.kotlin.gradle.incremental.IncrementalModuleInfoProvider
import org.jetbrains.kotlin.gradle.utils.kotlinErrorsDir
import org.jetbrains.kotlin.gradle.utils.property
import org.jetbrains.kotlin.gradle.utils.kotlinSessionsDir
import java.io.File
@@ -24,7 +24,6 @@ import javax.inject.Inject
abstract class GradleCompileTaskProvider @Inject constructor(
objectFactory: ObjectFactory,
projectLayout: ProjectLayout,
gradle: Gradle,
task: Task,
project: Project,
incrementalModuleInfoProvider: Provider<IncrementalModuleInfoProvider>
@@ -56,8 +55,9 @@ abstract class GradleCompileTaskProvider @Inject constructor(
.property(incrementalModuleInfoProvider)
@get:Internal
val errorsFile: Provider<File?> = objectFactory
val errorsFile: Provider<File> = objectFactory
.property(
gradle.rootProject.rootDir.resolve(".gradle/kotlin/errors/").also { it.mkdirs() }
.resolve("errors-${System.currentTimeMillis()}.log"))
project.kotlinErrorsDir.also { it.mkdirs() }
.resolve("errors-${System.currentTimeMillis()}.log")
)
}
@@ -16,6 +16,7 @@ private const val PROJECTS_CACHE_NAME_FULL = "$PROJECTS_CACHE_NAME-$PROJECTS_CAC
private const val SESSIONS_DIR_NAME = "sessions"
private const val METADATA_DIR_NAME = "metadata"
private const val ERRORS_DIR_NAME = "errors"
internal val Project.basePersistentDir
get() = kotlinPropertiesProvider.kotlinUserHomeDir?.let { File(it) }
@@ -27,6 +28,9 @@ internal val Project.kotlinSessionsDir
internal val Project.kotlinMetadataDir
get() = basePersistentDir.projectSpecificCache(rootDir).resolve(METADATA_DIR_NAME)
internal val Project.kotlinErrorsDir
get() = basePersistentDir.projectSpecificCache(rootDir).resolve(ERRORS_DIR_NAME)
private val md5Digest by lazy { MessageDigest.getInstance("MD5") }
private fun File.absolutePathMd5Hash(): String = md5Digest.digest(absolutePath.toByteArray()).toHexString()