diff --git a/compiler/rmi/kotlinr/kotlinr.iml b/compiler/rmi/kotlinr/kotlinr.iml
index 36eff60cdf2..ec2851d6574 100644
--- a/compiler/rmi/kotlinr/kotlinr.iml
+++ b/compiler/rmi/kotlinr/kotlinr.iml
@@ -10,5 +10,6 @@
+
\ No newline at end of file
diff --git a/compiler/rmi/kotlinr/src/org/jetbrains/kotlin/rmi/kotlinr/KotlinCompilerClient.kt b/compiler/rmi/kotlinr/src/org/jetbrains/kotlin/rmi/kotlinr/KotlinCompilerClient.kt
index 1850cafdaa6..b4fb94432ff 100644
--- a/compiler/rmi/kotlinr/src/org/jetbrains/kotlin/rmi/kotlinr/KotlinCompilerClient.kt
+++ b/compiler/rmi/kotlinr/src/org/jetbrains/kotlin/rmi/kotlinr/KotlinCompilerClient.kt
@@ -17,6 +17,7 @@
package org.jetbrains.kotlin.rmi.kotlinr
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache
+import org.jetbrains.kotlin.modules.Module
import org.jetbrains.kotlin.rmi.*
import java.io.File
import java.io.OutputStream
@@ -175,10 +176,10 @@ public class KotlinCompilerClient {
}
}
- public fun incrementalCompile(compiler: CompileService, args: Array, caches: Map, out: OutputStream): Int {
+ public fun incrementalCompile(compiler: CompileService, args: Array, caches: Map, out: OutputStream): Int {
val outStrm = RemoteOutputStreamServer(out)
- val cacheServers = hashMapOf()
+ val cacheServers = hashMapOf()
try {
caches.mapValuesTo(cacheServers, { RemoteIncrementalCacheServer( it.getValue()) })
return compiler.remoteIncrementalCompile(args, cacheServers, outStrm, CompileService.OutputFormat.XML)
diff --git a/compiler/rmi/kotlinr/src/org/jetbrains/kotlin/rmi/kotlinr/RemoteIncrementalCacheServer.kt b/compiler/rmi/kotlinr/src/org/jetbrains/kotlin/rmi/kotlinr/RemoteIncrementalCacheServer.kt
index 4c3de63fccb..b995499ddb3 100644
--- a/compiler/rmi/kotlinr/src/org/jetbrains/kotlin/rmi/kotlinr/RemoteIncrementalCacheServer.kt
+++ b/compiler/rmi/kotlinr/src/org/jetbrains/kotlin/rmi/kotlinr/RemoteIncrementalCacheServer.kt
@@ -17,6 +17,7 @@
package org.jetbrains.kotlin.rmi.kotlinr
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache
+import org.jetbrains.kotlin.load.kotlin.incremental.components.InlineRegistering
import org.jetbrains.kotlin.rmi.CompileService
import java.rmi.server.UnicastRemoteObject
@@ -33,6 +34,10 @@ public class RemoteIncrementalCacheServer(val cache: IncrementalCache) : Compile
override fun getModuleMappingData(): ByteArray? = cache.getModuleMappingData()
+ override fun getInlineRegistering(): InlineRegistering = cache.getInlineRegistering()
+
+ override fun getClassFilePath(internalClassName: String): String = cache.getClassFilePath(internalClassName)
+
override fun close() {
cache.close()
}
diff --git a/compiler/rmi/rmi-interface/rmi-interface.iml b/compiler/rmi/rmi-interface/rmi-interface.iml
index 50c2d073f1a..3897dc90e82 100644
--- a/compiler/rmi/rmi-interface/rmi-interface.iml
+++ b/compiler/rmi/rmi-interface/rmi-interface.iml
@@ -10,5 +10,6 @@
+
\ No newline at end of file
diff --git a/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/CompileService.kt b/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/CompileService.kt
index 8316e18b5ee..bc486fd45d3 100644
--- a/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/CompileService.kt
+++ b/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/CompileService.kt
@@ -16,6 +16,8 @@
package org.jetbrains.kotlin.rmi
+import org.jetbrains.kotlin.load.kotlin.incremental.components.InlineRegistering
+import org.jetbrains.kotlin.modules.Module
import java.rmi.Remote
import java.rmi.RemoteException
@@ -36,6 +38,12 @@ public interface CompileService : Remote {
throws(RemoteException::class)
public fun getModuleMappingData(): ByteArray?
+ throws(RemoteException::class)
+ public fun getInlineRegistering(): InlineRegistering
+
+ throws(RemoteException::class)
+ fun getClassFilePath(internalClassName: String): String
+
throws(RemoteException::class)
public fun close()
}
@@ -55,7 +63,7 @@ public interface CompileService : Remote {
throws(RemoteException::class)
public fun remoteIncrementalCompile(
args: Array,
- caches: Map,
+ caches: Map,
outputStream: RemoteOutputStream,
outputFormat: OutputFormat): Int
}
diff --git a/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/CompileServiceImpl.kt b/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/CompileServiceImpl.kt
index 797a6e7cb5c..145dbcbbdd0 100644
--- a/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/CompileServiceImpl.kt
+++ b/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/CompileServiceImpl.kt
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.config.Services
import org.jetbrains.kotlin.incremental.components.LookupTracker
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents
+import org.jetbrains.kotlin.modules.Module
import org.jetbrains.kotlin.rmi.*
import org.jetbrains.kotlin.rmi.service.RemoteIncrementalCacheClient
import org.jetbrains.kotlin.rmi.service.RemoteOutputStreamClient
@@ -80,14 +81,14 @@ class CompileServiceImpl>(
alive = true
}
- public class IncrementalCompilationComponentsImpl(val idToCache: Map): IncrementalCompilationComponents {
+ public class IncrementalCompilationComponentsImpl(val targetToCache: Map): IncrementalCompilationComponents {
// perf: cheap object, but still the pattern may be costly if there are too many calls to cache with the same id (which seems not to be the case now)
- override fun getIncrementalCache(moduleId: String): IncrementalCache = RemoteIncrementalCacheClient(idToCache[moduleId]!!)
+ override fun getIncrementalCache(target: Module): IncrementalCache = RemoteIncrementalCacheClient(targetToCache[target]!!)
// TODO: add appropriate proxy into interaction when lookup tracker is needed
override fun getLookupTracker(): LookupTracker = LookupTracker.DO_NOTHING
}
- private fun createCompileServices(incrementalCaches: Map): Services =
+ private fun createCompileServices(incrementalCaches: Map): Services =
Services.Builder()
.register(IncrementalCompilationComponents::class.java, IncrementalCompilationComponentsImpl(incrementalCaches))
// TODO: add remote proxy for cancellation status tracking
@@ -186,7 +187,7 @@ class CompileServiceImpl>(
}
}
- override fun remoteIncrementalCompile(args: Array, caches: Map, outputStream: RemoteOutputStream, outputFormat: CompileService.OutputFormat): Int =
+ override fun remoteIncrementalCompile(args: Array, caches: Map, outputStream: RemoteOutputStream, outputFormat: CompileService.OutputFormat): Int =
doCompile(args, outputStream) { printStream ->
when (outputFormat) {
CompileService.OutputFormat.PLAIN -> throw NotImplementedError("Only XML output is supported in remote incremental compilation")
diff --git a/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/RemoteIncrementalCacheClient.kt b/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/RemoteIncrementalCacheClient.kt
index 29d6e952f46..c358fa9a280 100644
--- a/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/RemoteIncrementalCacheClient.kt
+++ b/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/RemoteIncrementalCacheClient.kt
@@ -17,14 +17,19 @@
package org.jetbrains.kotlin.rmi.service
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache
+import org.jetbrains.kotlin.load.kotlin.incremental.components.InlineRegistering
import org.jetbrains.kotlin.rmi.CompileService
public class RemoteIncrementalCacheClient(val cache: CompileService.RemoteIncrementalCache): IncrementalCache {
+ override fun getInlineRegistering(): InlineRegistering = cache.getInlineRegistering()
+
override fun getObsoletePackageParts(): Collection = cache.getObsoletePackageParts()
override fun getPackagePartData(fqName: String): ByteArray? = cache.getPackagePartData(fqName)
override fun getModuleMappingData(): ByteArray? = cache.getModuleMappingData()
+ override fun getClassFilePath(internalClassName: String): String = cache.getClassFilePath(internalClassName)
+
override fun close(): Unit = cache.close()
}
diff --git a/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.java b/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.java
index 3f62f14e35b..3a6d6c023e2 100644
--- a/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.java
+++ b/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.java
@@ -31,6 +31,7 @@ import org.jetbrains.kotlin.cli.common.messages.MessageCollector;
import org.jetbrains.kotlin.cli.common.messages.MessageCollectorUtil;
import org.jetbrains.kotlin.config.CompilerSettings;
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache;
+import org.jetbrains.kotlin.modules.Module;
import org.jetbrains.kotlin.rmi.*;
import org.jetbrains.kotlin.rmi.kotlinr.KotlinCompilerClient;
import org.jetbrains.kotlin.utils.UtilsPackage;
@@ -58,7 +59,7 @@ public class KotlinCompilerRunner {
CompilerSettings compilerSettings,
MessageCollector messageCollector,
CompilerEnvironment environment,
- Map incrementalCaches,
+ Map incrementalCaches,
File moduleFile,
OutputItemsCollector collector
) {
@@ -75,7 +76,7 @@ public class KotlinCompilerRunner {
@NotNull CompilerSettings compilerSettings,
@NotNull MessageCollector messageCollector,
@NotNull CompilerEnvironment environment,
- Map incrementalCaches,
+ Map incrementalCaches,
@NotNull OutputItemsCollector collector,
@NotNull Collection sourceFiles,
@NotNull List libraryFiles,
@@ -95,7 +96,7 @@ public class KotlinCompilerRunner {
MessageCollector messageCollector,
OutputItemsCollector collector,
CompilerEnvironment environment,
- Map incrementalCaches
+ Map incrementalCaches
) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
PrintStream out = new PrintStream(stream);
@@ -116,7 +117,7 @@ public class KotlinCompilerRunner {
CommonCompilerArguments arguments,
String additionalArguments,
CompilerEnvironment environment,
- Map incrementalCaches,
+ Map incrementalCaches,
PrintStream out,
MessageCollector messageCollector
) {
diff --git a/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt b/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt
index 3d2f6fa6b84..81ba0203fd5 100644
--- a/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt
+++ b/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt
@@ -62,6 +62,7 @@ import org.jetbrains.kotlin.load.kotlin.PackageClassUtils
import org.jetbrains.kotlin.load.kotlin.header.isCompatiblePackageFacadeKind
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents
+import org.jetbrains.kotlin.modules.Module
import org.jetbrains.kotlin.progress.CompilationCanceledException
import org.jetbrains.kotlin.progress.CompilationCanceledStatus
import org.jetbrains.kotlin.resolve.jvm.JvmClassName
@@ -319,7 +320,8 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
}
return compileToJvm(allCompiledFiles, chunk, commonArguments, context, dirtyFilesHolder, environment,
- incrementalCaches.mapKeysTo(HashMap(incrementalCaches.size()), { it.getKey().id }),
+ incrementalCaches.mapKeysTo(HashMap(incrementalCaches.size()),
+ { ModuleToModuleBuildTargetAdapter(it.getKey()) }),
filesToCompile, messageCollector)
}
@@ -486,7 +488,7 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
private fun compileToJs(chunk: ModuleChunk,
commonArguments: CommonCompilerArguments,
environment: CompilerEnvironment,
- incrementalCaches: MutableMap?,
+ incrementalCaches: MutableMap?,
messageCollector: MessageCollectorAdapter, project: JpsProject
): OutputItemsCollectorImpl? {
val outputItemCollector = OutputItemsCollectorImpl()
@@ -541,7 +543,7 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
context: CompileContext,
dirtyFilesHolder: DirtyFilesHolder,
environment: CompilerEnvironment,
- incrementalCaches: MutableMap?,
+ incrementalCaches: MutableMap?,
filesToCompile: MultiMap, messageCollector: MessageCollectorAdapter
): OutputItemsCollectorImpl? {
val outputItemCollector = OutputItemsCollectorImpl()
diff --git a/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCompilationComponentsImpl.kt b/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCompilationComponentsImpl.kt
index e4ff9a9da86..850d9646f41 100644
--- a/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCompilationComponentsImpl.kt
+++ b/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCompilationComponentsImpl.kt
@@ -34,7 +34,7 @@ public class IncrementalCompilationComponentsImpl(
override fun getLookupTracker(): LookupTracker = lookupTracker
}
-private class ModuleToModuleBuildTargetAdapter(
+public class ModuleToModuleBuildTargetAdapter(
private val moduleBuildTarget: ModuleBuildTarget
) : Module {