Moved incremental cache API to separate package.

This commit is contained in:
Evgeny Gerashchenko
2014-08-12 21:16:08 +04:00
parent 5fade9a5a6
commit e419c1a604
9 changed files with 43 additions and 18 deletions
@@ -53,9 +53,9 @@ import org.jetbrains.jet.lang.resolve.BindingTraceContext;
import org.jetbrains.jet.lang.resolve.ScriptNameUtil; import org.jetbrains.jet.lang.resolve.ScriptNameUtil;
import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM; import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM;
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils; import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
import org.jetbrains.jet.lang.resolve.kotlin.incremental.IncrementalCache;
import org.jetbrains.jet.lang.resolve.kotlin.incremental.IncrementalCacheProvider;
import org.jetbrains.jet.lang.resolve.kotlin.incremental.IncrementalPackage; import org.jetbrains.jet.lang.resolve.kotlin.incremental.IncrementalPackage;
import org.jetbrains.jet.lang.resolve.kotlin.incremental.cache.IncrementalCache;
import org.jetbrains.jet.lang.resolve.kotlin.incremental.cache.IncrementalCacheProvider;
import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.plugin.MainFunctionDetector; import org.jetbrains.jet.plugin.MainFunctionDetector;
import org.jetbrains.jet.utils.KotlinPaths; import org.jetbrains.jet.utils.KotlinPaths;
@@ -42,9 +42,9 @@ import org.jetbrains.jet.lang.resolve.BindingTraceContext;
import org.jetbrains.jet.lang.resolve.ImportPath; import org.jetbrains.jet.lang.resolve.ImportPath;
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters; import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
import org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap; import org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap;
import org.jetbrains.jet.lang.resolve.kotlin.incremental.IncrementalCache;
import org.jetbrains.jet.lang.resolve.kotlin.incremental.IncrementalPackageFragmentProvider; import org.jetbrains.jet.lang.resolve.kotlin.incremental.IncrementalPackageFragmentProvider;
import org.jetbrains.jet.lang.resolve.kotlin.incremental.IncrementalCacheProvider; import org.jetbrains.jet.lang.resolve.kotlin.incremental.cache.IncrementalCache;
import org.jetbrains.jet.lang.resolve.kotlin.incremental.cache.IncrementalCacheProvider;
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession; import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
import org.jetbrains.jet.lang.resolve.lazy.declarations.DeclarationProviderFactory; import org.jetbrains.jet.lang.resolve.lazy.declarations.DeclarationProviderFactory;
import org.jetbrains.jet.lang.resolve.lazy.declarations.DeclarationProviderFactoryService; import org.jetbrains.jet.lang.resolve.lazy.declarations.DeclarationProviderFactoryService;
@@ -16,20 +16,13 @@
package org.jetbrains.jet.lang.resolve.kotlin.incremental package org.jetbrains.jet.lang.resolve.kotlin.incremental
import org.jetbrains.jet.lang.resolve.kotlin.incremental.cache.IncrementalCache
import org.jetbrains.jet.lang.psi.JetFile
import org.jetbrains.jet.lang.resolve.name.FqName import org.jetbrains.jet.lang.resolve.name.FqName
import org.jetbrains.jet.lang.resolve.java.JvmClassName import org.jetbrains.jet.lang.resolve.java.JvmClassName
import org.jetbrains.jet.lang.psi.JetFile
import java.util.HashMap import java.util.HashMap
import java.io.File import java.io.File
public trait IncrementalCache {
public fun getRemovedPackageParts(moduleId: String, compiledSourceFilesToFqName: Map<File, String>): Collection<String>
public fun getPackageData(moduleId: String, fqName: String): ByteArray?
public fun close()
}
public fun IncrementalCache.getPackagesWithRemovedFiles(moduleId: String, compiledSourceFiles: Collection<JetFile>): Collection<FqName> { public fun IncrementalCache.getPackagesWithRemovedFiles(moduleId: String, compiledSourceFiles: Collection<JetFile>): Collection<FqName> {
return getRemovedPackageParts(moduleId, compiledSourceFiles).map { it.getFqNameForClassNameWithoutDollars().parent() } return getRemovedPackageParts(moduleId, compiledSourceFiles).map { it.getFqNameForClassNameWithoutDollars().parent() }
} }
@@ -37,6 +37,7 @@ import org.jetbrains.jet.descriptors.serialization.JavaProtoBuf
import org.jetbrains.jet.lang.resolve.java.JvmClassName import org.jetbrains.jet.lang.resolve.java.JvmClassName
import org.jetbrains.jet.descriptors.serialization.PackageData import org.jetbrains.jet.descriptors.serialization.PackageData
import org.jetbrains.jet.lang.resolve.kotlin.DeserializationGlobalContextForJava import org.jetbrains.jet.lang.resolve.kotlin.DeserializationGlobalContextForJava
import org.jetbrains.jet.lang.resolve.kotlin.incremental.cache.IncrementalCache
public class IncrementalPackageFragmentProvider( public class IncrementalPackageFragmentProvider(
sourceFiles: Collection<JetFile>, sourceFiles: Collection<JetFile>,
@@ -0,0 +1,31 @@
/*
* Copyright 2010-2014 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.jet.lang.resolve.kotlin.incremental.cache
import org.jetbrains.jet.lang.resolve.name.FqName
import org.jetbrains.jet.lang.resolve.java.JvmClassName
import org.jetbrains.jet.lang.psi.JetFile
import java.util.HashMap
import java.io.File
public trait IncrementalCache {
public fun getRemovedPackageParts(moduleId: String, compiledSourceFilesToFqName: Map<File, String>): Collection<String>
public fun getPackageData(moduleId: String, fqName: String): ByteArray?
public fun close()
}
@@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.jet.lang.resolve.kotlin.incremental package org.jetbrains.jet.lang.resolve.kotlin.incremental.cache
public trait IncrementalCacheProvider { public trait IncrementalCacheProvider {
public fun getIncrementalCache(moduleId: String): IncrementalCache public fun getIncrementalCache(moduleId: String): IncrementalCache
@@ -79,7 +79,7 @@ public class ClassPreloadingUtils {
public Class<?> loadClass(String name) throws ClassNotFoundException { public Class<?> loadClass(String name) throws ClassNotFoundException {
// When compiler is invoked from JPS, we should use loaded incremental cache interface from its class loader, // When compiler is invoked from JPS, we should use loaded incremental cache interface from its class loader,
// because implementation is loaded from it, as well // because implementation is loaded from it, as well
if (name.startsWith("org.jetbrains.jet.lang.resolve.kotlin.incremental.cache.IncrementalCache")) { if (name.startsWith("org.jetbrains.jet.lang.resolve.kotlin.incremental.cache.")) {
if (parent == null) { if (parent == null) {
return super.loadClass(name); return super.loadClass(name);
} }
@@ -34,7 +34,7 @@ import com.intellij.util.io.EnumeratorStringDescriptor
import org.jetbrains.jet.lang.resolve.java.JvmAnnotationNames import org.jetbrains.jet.lang.resolve.java.JvmAnnotationNames
import org.jetbrains.jet.lang.resolve.java.JvmClassName import org.jetbrains.jet.lang.resolve.java.JvmClassName
import java.util.HashSet import java.util.HashSet
import org.jetbrains.jet.lang.resolve.kotlin.incremental.IncrementalCache import org.jetbrains.jet.lang.resolve.kotlin.incremental.cache.IncrementalCache
import java.util.HashMap import java.util.HashMap
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils import org.jetbrains.jet.lang.resolve.java.PackageClassUtils
import com.intellij.util.containers.MultiMap import com.intellij.util.containers.MultiMap
@@ -16,9 +16,9 @@
package org.jetbrains.jet.jps.incremental package org.jetbrains.jet.jps.incremental
import org.jetbrains.jet.lang.resolve.kotlin.incremental.IncrementalCacheProvider import org.jetbrains.jet.lang.resolve.kotlin.incremental.cache.IncrementalCacheProvider
import org.jetbrains.jps.incremental.ModuleBuildTarget import org.jetbrains.jps.incremental.ModuleBuildTarget
import org.jetbrains.jet.lang.resolve.kotlin.incremental.IncrementalCache import org.jetbrains.jet.lang.resolve.kotlin.incremental.cache.IncrementalCache
import kotlin.properties.Delegates import kotlin.properties.Delegates
public class IncrementalCacheProviderImpl(caches: Map<ModuleBuildTarget, IncrementalCacheImpl>): IncrementalCacheProvider { public class IncrementalCacheProviderImpl(caches: Map<ModuleBuildTarget, IncrementalCacheImpl>): IncrementalCacheProvider {