Refactoring: move IC classes into separate package

This commit is contained in:
Alexey Tsvetkov
2016-10-05 17:32:13 +03:00
parent 3bcd6e9a93
commit 368e48780e
18 changed files with 79 additions and 40 deletions
@@ -26,8 +26,8 @@ import org.jetbrains.kotlin.com.intellij.openapi.util.io.ZipFileCache
import org.jetbrains.kotlin.com.intellij.openapi.vfs.impl.ZipHandler
import org.jetbrains.kotlin.com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
import org.jetbrains.kotlin.gradle.tasks.ArtifactDifferenceRegistry
import org.jetbrains.kotlin.gradle.tasks.ArtifactDifferenceRegistryProvider
import org.jetbrains.kotlin.incremental.multiproject.ArtifactDifferenceRegistry
import org.jetbrains.kotlin.incremental.multiproject.ArtifactDifferenceRegistryProvider
import org.jetbrains.kotlin.gradle.tasks.incremental.BuildCacheStorage
import java.io.File
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.gradle.internal.Kapt2KotlinGradleSubplugin
import org.jetbrains.kotlin.gradle.internal.initKapt
import org.jetbrains.kotlin.gradle.plugin.android.AndroidGradleWrapper
import org.jetbrains.kotlin.gradle.tasks.*
import org.jetbrains.kotlin.gradle.tasks.incremental.android.ArtifactDifferenceRegistryProviderAndroidWrapper
import org.jetbrains.kotlin.incremental.multiproject.ArtifactDifferenceRegistryProviderAndroidWrapper
import org.jetbrains.kotlin.gradle.tasks.incremental.configureMultiProjectIncrementalCompilation
import java.io.File
import java.net.URL
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.incremental.*
import org.jetbrains.kotlin.incremental.components.LookupTracker
import org.jetbrains.kotlin.incremental.components.SourceRetentionAnnotationHandler
import org.jetbrains.kotlin.incremental.multiproject.ArtifactDifferenceRegistryProvider
import org.jetbrains.kotlin.modules.TargetId
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.progress.CompilationCanceledStatus
@@ -1,9 +1,26 @@
package org.jetbrains.kotlin.gradle.tasks.incremental
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.incremental
import org.gradle.api.logging.Logging
import org.jetbrains.kotlin.gradle.plugin.kotlinDebug
import org.jetbrains.kotlin.gradle.tasks.ArtifactDifferenceRegistry
import org.jetbrains.kotlin.gradle.tasks.ArtifactDifferenceRegistryProvider
import org.jetbrains.kotlin.incremental.multiproject.ArtifactDifferenceRegistry
import org.jetbrains.kotlin.incremental.multiproject.ArtifactDifferenceRegistryProvider
import org.jetbrains.kotlin.incremental.multiproject.ArtifactDifferenceRegistryImpl
import org.jetbrains.kotlin.incremental.CacheVersion
import org.jetbrains.kotlin.incremental.stackTraceStr
import org.jetbrains.kotlin.incremental.storage.BasicMapsOwner
@@ -1,4 +1,4 @@
package org.jetbrains.kotlin.gradle.tasks
package org.jetbrains.kotlin.incremental
import java.io.*
@@ -1,4 +1,4 @@
package org.jetbrains.kotlin.gradle.tasks
package org.jetbrains.kotlin.incremental
import org.gradle.api.tasks.incremental.IncrementalTaskInputs
import java.io.File
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.kotlin.gradle.tasks
package org.jetbrains.kotlin.incremental
import org.gradle.api.logging.Logging
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
@@ -26,6 +26,8 @@ import org.jetbrains.kotlin.com.intellij.psi.PsiFile
import org.jetbrains.kotlin.com.intellij.psi.PsiFileFactory
import org.jetbrains.kotlin.com.intellij.psi.PsiJavaFile
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.gradle.tasks.kotlinDebug
import org.jetbrains.kotlin.incremental.ChangesEither
import org.jetbrains.kotlin.incremental.LookupSymbol
import org.jetbrains.kotlin.incremental.snapshots.FileCollectionDiff
import java.io.File
@@ -1,4 +1,4 @@
package org.jetbrains.kotlin.gradle.tasks
package org.jetbrains.kotlin.incremental
import org.jetbrains.kotlin.incremental.LookupSymbol
import org.jetbrains.kotlin.name.FqName
@@ -1,7 +1,7 @@
package org.jetbrains.kotlin.gradle.tasks
package org.jetbrains.kotlin.incremental
import org.gradle.api.logging.Logging
import org.jetbrains.kotlin.incremental.IncReporter
import org.jetbrains.kotlin.gradle.tasks.kotlinDebug
import java.io.File
internal class GradleIncReporter(private val projectRootFile: File) : IncReporter() {
@@ -14,10 +14,11 @@
* limitations under the License.
*/
package org.jetbrains.kotlin.gradle.tasks
package org.jetbrains.kotlin.incremental
import org.gradle.api.logging.Logging
import org.jetbrains.kotlin.build.GeneratedJvmClass
import org.jetbrains.kotlin.gradle.plugin.kotlinDebug
import org.jetbrains.kotlin.incremental.CompilationResult
import org.jetbrains.kotlin.incremental.IncrementalCacheImpl
import org.jetbrains.kotlin.incremental.dumpCollection
@@ -30,34 +31,34 @@ import org.jetbrains.kotlin.incremental.storage.StringCollectionExternalizer
import org.jetbrains.kotlin.modules.TargetId
import java.io.File
internal class GradleIncrementalCacheImpl(targetDataRoot: File, targetOutputDir: File?, target: TargetId) : IncrementalCacheImpl<TargetId>(targetDataRoot, targetOutputDir, target) {
internal class GradleIncrementalCacheImpl(targetDataRoot: java.io.File, targetOutputDir: java.io.File?, target: org.jetbrains.kotlin.modules.TargetId) : org.jetbrains.kotlin.incremental.IncrementalCacheImpl<org.jetbrains.kotlin.modules.TargetId>(targetDataRoot, targetOutputDir, target) {
companion object {
private val SOURCES_TO_CLASSFILES = "sources-to-classfiles"
private val FILE_SNAPSHOT = "file-snapshot"
}
private val log = Logging.getLogger(this.javaClass)
private val log = org.gradle.api.logging.Logging.getLogger(this.javaClass)
private val sourceToClassfilesMap = registerMap(SourceToClassfilesMap(SOURCES_TO_CLASSFILES.storageFile))
private val fileSnapshotMap = registerMap(FileSnapshotMap(FILE_SNAPSHOT.storageFile))
private val sourceToClassfilesMap = registerMap(SourceToClassfilesMap(org.jetbrains.kotlin.incremental.GradleIncrementalCacheImpl.Companion.SOURCES_TO_CLASSFILES.storageFile))
private val fileSnapshotMap = registerMap(org.jetbrains.kotlin.incremental.snapshots.FileSnapshotMap(FILE_SNAPSHOT.storageFile))
fun compareAndUpdateFileSnapshots(files: Iterable<File>): FileCollectionDiff =
fileSnapshotMap.compareAndUpdate(files, SimpleFileSnapshotProviderImpl())
fun compareAndUpdateFileSnapshots(files: Iterable<java.io.File>): org.jetbrains.kotlin.incremental.snapshots.FileCollectionDiff =
fileSnapshotMap.compareAndUpdate(files, org.jetbrains.kotlin.incremental.snapshots.SimpleFileSnapshotProviderImpl())
fun removeClassfilesBySources(sources: Iterable<File>): Unit =
fun removeClassfilesBySources(sources: Iterable<java.io.File>): Unit =
sources.forEach { sourceToClassfilesMap.remove(it) }
override fun saveFileToCache(generatedClass: GeneratedJvmClass<TargetId>): CompilationResult {
override fun saveFileToCache(generatedClass: org.jetbrains.kotlin.build.GeneratedJvmClass<org.jetbrains.kotlin.modules.TargetId>): org.jetbrains.kotlin.incremental.CompilationResult {
generatedClass.sourceFiles.forEach { sourceToClassfilesMap.add(it, generatedClass.outputFile) }
return super.saveFileToCache(generatedClass)
}
inner class SourceToClassfilesMap(storageFile: File) : BasicStringMap<Collection<String>>(storageFile, PathStringDescriptor, StringCollectionExternalizer) {
fun add(sourceFile: File, classFile: File) {
inner class SourceToClassfilesMap(storageFile: java.io.File) : org.jetbrains.kotlin.incremental.storage.BasicStringMap<Collection<String>>(storageFile, org.jetbrains.kotlin.incremental.storage.PathStringDescriptor, org.jetbrains.kotlin.incremental.storage.StringCollectionExternalizer) {
fun add(sourceFile: java.io.File, classFile: java.io.File) {
storage.append(sourceFile.absolutePath, classFile.absolutePath)
}
operator fun get(sourceFile: File): Collection<File> =
operator fun get(sourceFile: java.io.File): Collection<java.io.File> =
storage[sourceFile.absolutePath].orEmpty().map(::File)
override fun dumpValue(value: Collection<String>) = value.dumpCollection()
@@ -1,4 +1,4 @@
package org.jetbrains.kotlin.gradle.tasks
package org.jetbrains.kotlin.incremental
import org.jetbrains.kotlin.incremental.LookupStorage
import org.jetbrains.kotlin.modules.TargetId
@@ -1,4 +1,4 @@
package org.jetbrains.kotlin.gradle.tasks
package org.jetbrains.kotlin.incremental
import org.jetbrains.kotlin.annotation.AnnotationFileUpdater
import org.jetbrains.kotlin.annotation.SourceAnnotationsRegistry
@@ -14,8 +14,10 @@ import org.jetbrains.kotlin.com.intellij.util.io.PersistentEnumeratorBase
import org.jetbrains.kotlin.compilerRunner.ArgumentUtils
import org.jetbrains.kotlin.compilerRunner.OutputItemsCollector
import org.jetbrains.kotlin.compilerRunner.OutputItemsCollectorImpl
import org.jetbrains.kotlin.incremental.*
import org.jetbrains.kotlin.incremental.ChangedFiles
import org.jetbrains.kotlin.incremental.components.LookupTracker
import org.jetbrains.kotlin.incremental.multiproject.ArtifactDifference
import org.jetbrains.kotlin.incremental.multiproject.ArtifactDifferenceRegistryProvider
import org.jetbrains.kotlin.incremental.snapshots.FileCollectionDiff
import org.jetbrains.kotlin.modules.TargetId
import org.jetbrains.kotlin.name.FqName
@@ -1,4 +1,4 @@
package org.jetbrains.kotlin.gradle.tasks
package org.jetbrains.kotlin.incremental
import java.io.File
@@ -1,4 +1,4 @@
package org.jetbrains.kotlin.gradle.tasks
package org.jetbrains.kotlin.incremental
import org.jetbrains.kotlin.config.IncrementalCompilation
import org.jetbrains.kotlin.incremental.CacheVersion
@@ -1,4 +1,20 @@
package org.jetbrains.kotlin.gradle.tasks.incremental
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.incremental
import org.gradle.api.Project
import org.gradle.api.Task
@@ -7,8 +23,8 @@ import org.gradle.api.tasks.compile.AbstractCompile
import org.gradle.api.tasks.compile.JavaCompile
import org.jetbrains.kotlin.com.intellij.openapi.util.io.FileUtil
import org.jetbrains.kotlin.gradle.plugin.kotlinDebug
import org.jetbrains.kotlin.gradle.tasks.ArtifactDifferenceRegistry
import org.jetbrains.kotlin.gradle.tasks.ArtifactDifferenceRegistryProvider
import org.jetbrains.kotlin.incremental.multiproject.ArtifactDifferenceRegistry
import org.jetbrains.kotlin.incremental.multiproject.ArtifactDifferenceRegistryProvider
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import java.io.File
@@ -1,4 +1,4 @@
package org.jetbrains.kotlin.gradle.tasks
package org.jetbrains.kotlin.incremental.multiproject
import org.jetbrains.kotlin.incremental.DirtyData
import org.jetbrains.kotlin.incremental.IncReporter
@@ -14,11 +14,11 @@
* limitations under the License.
*/
package org.jetbrains.kotlin.gradle.tasks.incremental.android
package org.jetbrains.kotlin.incremental.multiproject
import org.jetbrains.kotlin.gradle.tasks.ArtifactDifference
import org.jetbrains.kotlin.gradle.tasks.ArtifactDifferenceRegistry
import org.jetbrains.kotlin.gradle.tasks.ArtifactDifferenceRegistryProvider
import org.jetbrains.kotlin.incremental.multiproject.ArtifactDifference
import org.jetbrains.kotlin.incremental.multiproject.ArtifactDifferenceRegistry
import org.jetbrains.kotlin.incremental.multiproject.ArtifactDifferenceRegistryProvider
import java.io.File
internal class ArtifactDifferenceRegistryProviderAndroidWrapper(
@@ -1,8 +1,8 @@
package org.jetbrains.kotlin.gradle.tasks.incremental
package org.jetbrains.kotlin.incremental.multiproject
import org.jetbrains.kotlin.com.intellij.util.io.DataExternalizer
import org.jetbrains.kotlin.gradle.tasks.ArtifactDifference
import org.jetbrains.kotlin.gradle.tasks.ArtifactDifferenceRegistry
import org.jetbrains.kotlin.incremental.multiproject.ArtifactDifference
import org.jetbrains.kotlin.incremental.multiproject.ArtifactDifferenceRegistry
import org.jetbrains.kotlin.incremental.DirtyData
import org.jetbrains.kotlin.incremental.LookupSymbol
import org.jetbrains.kotlin.incremental.storage.BasicStringMap