From c76bec51a08ba032fdf25892c9ce38a849771245 Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Fri, 27 Nov 2015 18:54:09 +0100 Subject: [PATCH] Moving daemon files, renaming namespaces, modules and jar --- .idea/artifacts/KotlinJpsPlugin.xml | 4 +- .idea/artifacts/KotlinPlugin.xml | 2 +- .idea/modules.xml | 6 +- build.xml | 25 ++++--- .../daemon-client/daemon-client.iml} | 2 +- .../CompilerCallbackServicesFacadeServer.kt | 11 +-- .../daemon/client}/KotlinCompilerClient.kt | 68 ++++++++++--------- .../client}/RemoteOutputStreamServer.kt | 12 ++-- .../daemon-common/daemon-common.iml} | 0 .../kotlin/daemon/common}/ClientUtils.kt | 4 +- .../kotlin/daemon/common}/CompileService.kt | 2 +- .../common}/CompilerCallbackServicesFacade.kt | 2 +- .../kotlin/daemon/common}/DaemonParams.kt | 16 ++--- .../kotlin/daemon/common}/FileSystemUtils.kt | 30 ++++---- .../kotlin/daemon/common}/NetworkUtils.kt | 5 +- .../kotlin/daemon/common}/PerfUtils.kt | 8 +-- .../daemon/common}/RemoteOperationsTracer.kt | 2 +- .../daemon/common}/RemoteOutputStream.kt | 2 +- .../rmi-server.iml => daemon/daemon.iml} | 2 +- .../jetbrains/kotlin/daemon}/CompileDaemon.kt | 6 +- .../kotlin/daemon}/CompileServiceImpl.kt | 17 ++--- .../kotlin/daemon}/LazyClasspathWatcher.kt | 2 +- .../RemoteCompilationCanceledStatusClient.kt | 8 +-- .../daemon}/RemoteIncrementalCacheClient.kt | 8 +-- ...eIncrementalCompilationComponentsClient.kt | 8 +-- .../daemon}/RemoteLookupTrackerClient.kt | 8 +-- .../daemon}/RemoteOutputStreamClient.kt | 8 +-- compiler/tests/compiler-tests.iml | 4 +- .../kotlin/daemon/CompilerDaemonTest.kt | 31 ++++----- idea/idea.iml | 2 +- .../KotlinBuildProcessParametersProvider.kt | 2 +- jps-plugin/jps-plugin.iml | 4 +- .../compilerRunner/KotlinCompilerRunner.kt | 7 +- .../kotlin/jps/build/KotlinBuilder.kt | 2 +- .../jps/build/SimpleKotlinJpsBuildTest.kt | 4 +- 35 files changed, 166 insertions(+), 158 deletions(-) rename compiler/{rmi/kotlinr/kotlinr.iml => daemon/daemon-client/daemon-client.iml} (91%) rename compiler/{rmi/kotlinr/src/org/jetbrains/kotlin/rmi/kotlinr => daemon/daemon-client/src/org/jetbrains/kotlin/daemon/client}/CompilerCallbackServicesFacadeServer.kt (90%) rename compiler/{rmi/kotlinr/src/org/jetbrains/kotlin/rmi/kotlinr => daemon/daemon-client/src/org/jetbrains/kotlin/daemon/client}/KotlinCompilerClient.kt (86%) rename compiler/{rmi/kotlinr/src/org/jetbrains/kotlin/rmi/kotlinr => daemon/daemon-client/src/org/jetbrains/kotlin/daemon/client}/RemoteOutputStreamServer.kt (67%) rename compiler/{rmi/rmi-interface/rmi-interface.iml => daemon/daemon-common/daemon-common.iml} (100%) rename compiler/{rmi/rmi-interface/src/org/jetbrains/kotlin/rmi => daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common}/ClientUtils.kt (94%) rename compiler/{rmi/rmi-interface/src/org/jetbrains/kotlin/rmi => daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common}/CompileService.kt (99%) rename compiler/{rmi/rmi-interface/src/org/jetbrains/kotlin/rmi => daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common}/CompilerCallbackServicesFacade.kt (98%) rename compiler/{rmi/rmi-interface/src/org/jetbrains/kotlin/rmi => daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common}/DaemonParams.kt (96%) rename compiler/{rmi/rmi-interface/src/org/jetbrains/kotlin/rmi => daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common}/FileSystemUtils.kt (77%) rename compiler/{rmi/rmi-interface/src/org/jetbrains/kotlin/rmi => daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common}/NetworkUtils.kt (95%) rename compiler/{rmi/rmi-interface/src/org/jetbrains/kotlin/rmi => daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common}/PerfUtils.kt (95%) rename compiler/{rmi/rmi-interface/src/org/jetbrains/kotlin/rmi => daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common}/RemoteOperationsTracer.kt (95%) rename compiler/{rmi/rmi-interface/src/org/jetbrains/kotlin/rmi => daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common}/RemoteOutputStream.kt (95%) rename compiler/{rmi/rmi-server/rmi-server.iml => daemon/daemon.iml} (92%) rename compiler/{rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service => daemon/src/org/jetbrains/kotlin/daemon}/CompileDaemon.kt (97%) rename compiler/{rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service => daemon/src/org/jetbrains/kotlin/daemon}/CompileServiceImpl.kt (97%) rename compiler/{rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service => daemon/src/org/jetbrains/kotlin/daemon}/LazyClasspathWatcher.kt (99%) rename compiler/{rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service => daemon/src/org/jetbrains/kotlin/daemon}/RemoteCompilationCanceledStatusClient.kt (85%) rename compiler/{rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service => daemon/src/org/jetbrains/kotlin/daemon}/RemoteIncrementalCacheClient.kt (91%) rename compiler/{rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service => daemon/src/org/jetbrains/kotlin/daemon}/RemoteIncrementalCompilationComponentsClient.kt (86%) rename compiler/{rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service => daemon/src/org/jetbrains/kotlin/daemon}/RemoteLookupTrackerClient.kt (89%) rename compiler/{rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service => daemon/src/org/jetbrains/kotlin/daemon}/RemoteOutputStreamClient.kt (84%) diff --git a/.idea/artifacts/KotlinJpsPlugin.xml b/.idea/artifacts/KotlinJpsPlugin.xml index 58abf6b8d87..339fcff5cfc 100644 --- a/.idea/artifacts/KotlinJpsPlugin.xml +++ b/.idea/artifacts/KotlinJpsPlugin.xml @@ -19,8 +19,8 @@ - - + + diff --git a/.idea/artifacts/KotlinPlugin.xml b/.idea/artifacts/KotlinPlugin.xml index ad71d741b99..ac27fd5a7da 100644 --- a/.idea/artifacts/KotlinPlugin.xml +++ b/.idea/artifacts/KotlinPlugin.xml @@ -43,7 +43,7 @@ - + diff --git a/.idea/modules.xml b/.idea/modules.xml index 92f38d72ac1..e03828315ca 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -21,6 +21,9 @@ + + + @@ -53,13 +56,10 @@ - - - diff --git a/build.xml b/build.xml index 5398f69eb50..1bf76646246 100644 --- a/build.xml +++ b/build.xml @@ -91,8 +91,8 @@ - - + + @@ -118,8 +118,7 @@ - - + @@ -204,8 +203,8 @@ - - + + @@ -584,12 +583,12 @@ - - + + - + - + @@ -599,8 +598,8 @@ - - + + @@ -940,7 +939,7 @@ depends="builtins,stdlib,core,reflection,pack-runtime,pack-runtime-sources"/> - + diff --git a/compiler/rmi/kotlinr/src/org/jetbrains/kotlin/rmi/kotlinr/CompilerCallbackServicesFacadeServer.kt b/compiler/daemon/daemon-client/src/org/jetbrains/kotlin/daemon/client/CompilerCallbackServicesFacadeServer.kt similarity index 90% rename from compiler/rmi/kotlinr/src/org/jetbrains/kotlin/rmi/kotlinr/CompilerCallbackServicesFacadeServer.kt rename to compiler/daemon/daemon-client/src/org/jetbrains/kotlin/daemon/client/CompilerCallbackServicesFacadeServer.kt index 7bca1b82aff..63243467ee3 100644 --- a/compiler/rmi/kotlinr/src/org/jetbrains/kotlin/rmi/kotlinr/CompilerCallbackServicesFacadeServer.kt +++ b/compiler/daemon/daemon-client/src/org/jetbrains/kotlin/daemon/client/CompilerCallbackServicesFacadeServer.kt @@ -14,17 +14,18 @@ * limitations under the License. */ -package org.jetbrains.kotlin.rmi.kotlinr +package org.jetbrains.kotlin.daemon.client +import org.jetbrains.kotlin.daemon.common.CompilerCallbackServicesFacade +import org.jetbrains.kotlin.daemon.common.LoopbackNetworkInterface +import org.jetbrains.kotlin.daemon.common.SOCKET_ANY_FREE_PORT import org.jetbrains.kotlin.incremental.components.LookupInfo import org.jetbrains.kotlin.incremental.components.LookupTracker import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents import org.jetbrains.kotlin.load.kotlin.incremental.components.JvmPackagePartProto import org.jetbrains.kotlin.modules.TargetId import org.jetbrains.kotlin.progress.CompilationCanceledStatus -import org.jetbrains.kotlin.rmi.CompilerCallbackServicesFacade -import org.jetbrains.kotlin.rmi.LoopbackNetworkInterface -import org.jetbrains.kotlin.rmi.SOCKET_ANY_FREE_PORT +import java.rmi.server.UnicastRemoteObject class CompilerCallbackServicesFacadeServer( @@ -32,7 +33,7 @@ class CompilerCallbackServicesFacadeServer( val compilationCancelledStatus: CompilationCanceledStatus? = null, port: Int = SOCKET_ANY_FREE_PORT ) : CompilerCallbackServicesFacade, - java.rmi.server.UnicastRemoteObject(port, LoopbackNetworkInterface.clientLoopbackSocketFactory, LoopbackNetworkInterface.serverLoopbackSocketFactory) + UnicastRemoteObject(port, LoopbackNetworkInterface.clientLoopbackSocketFactory, LoopbackNetworkInterface.serverLoopbackSocketFactory) { override fun hasIncrementalCaches(): Boolean = incrementalCompilationComponents != null diff --git a/compiler/rmi/kotlinr/src/org/jetbrains/kotlin/rmi/kotlinr/KotlinCompilerClient.kt b/compiler/daemon/daemon-client/src/org/jetbrains/kotlin/daemon/client/KotlinCompilerClient.kt similarity index 86% rename from compiler/rmi/kotlinr/src/org/jetbrains/kotlin/rmi/kotlinr/KotlinCompilerClient.kt rename to compiler/daemon/daemon-client/src/org/jetbrains/kotlin/daemon/client/KotlinCompilerClient.kt index c6b40da7761..815285a323c 100644 --- a/compiler/rmi/kotlinr/src/org/jetbrains/kotlin/rmi/kotlinr/KotlinCompilerClient.kt +++ b/compiler/daemon/daemon-client/src/org/jetbrains/kotlin/daemon/client/KotlinCompilerClient.kt @@ -14,16 +14,18 @@ * limitations under the License. */ -package org.jetbrains.kotlin.rmi.kotlinr +package org.jetbrains.kotlin.daemon.client +import net.rubygrapefruit.platform.Native import net.rubygrapefruit.platform.ProcessLauncher +import org.jetbrains.kotlin.daemon.common.* import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents import org.jetbrains.kotlin.progress.CompilationCanceledStatus -import org.jetbrains.kotlin.rmi.* import org.jetbrains.kotlin.utils.addToStdlib.check import java.io.File import java.io.OutputStream import java.io.PrintStream +import java.rmi.server.UnicastRemoteObject import java.util.concurrent.Semaphore import java.util.concurrent.TimeUnit import kotlin.concurrent.thread @@ -44,11 +46,11 @@ object KotlinCompilerClient { fun connectToCompileService(compilerId: CompilerId, - daemonJVMOptions: DaemonJVMOptions, - daemonOptions: DaemonOptions, - reportingTargets: DaemonReportingTargets, - autostart: Boolean = true, - checkId: Boolean = true + daemonJVMOptions: DaemonJVMOptions, + daemonOptions: DaemonOptions, + reportingTargets: DaemonReportingTargets, + autostart: Boolean = true, + checkId: Boolean = true ): CompileService? { fun newFlagFile(): File { val flagFile = File.createTempFile("kotlin-compiler-client-", "-is-running") @@ -66,11 +68,11 @@ object KotlinCompilerClient { } fun connectToCompileService(compilerId: CompilerId, - clientAliveFlagFile: File, - daemonJVMOptions: DaemonJVMOptions, - daemonOptions: DaemonOptions, - reportingTargets: DaemonReportingTargets, - autostart: Boolean = true + clientAliveFlagFile: File, + daemonJVMOptions: DaemonJVMOptions, + daemonOptions: DaemonOptions, + reportingTargets: DaemonReportingTargets, + autostart: Boolean = true ): CompileService? { var attempts = 0 @@ -98,7 +100,7 @@ object KotlinCompilerClient { fun shutdownCompileService(compilerId: CompilerId, daemonOptions: DaemonOptions): Unit { - KotlinCompilerClient.connectToCompileService(compilerId, DaemonJVMOptions(), daemonOptions, DaemonReportingTargets(out = System.out), autostart = false, checkId = false) + connectToCompileService(compilerId, DaemonJVMOptions(), daemonOptions, DaemonReportingTargets(out = System.out), autostart = false, checkId = false) ?.shutdown() } @@ -109,12 +111,12 @@ object KotlinCompilerClient { fun compile(compilerService: CompileService, - sessionId: Int, - targetPlatform: CompileService.TargetPlatform, - args: Array, - out: OutputStream, - port: Int = SOCKET_ANY_FREE_PORT, - operationsTracer: RemoteOperationsTracer? = null + sessionId: Int, + targetPlatform: CompileService.TargetPlatform, + args: Array, + out: OutputStream, + port: Int = SOCKET_ANY_FREE_PORT, + operationsTracer: RemoteOperationsTracer? = null ): Int { val outStrm = RemoteOutputStreamServer(out, port = port) return compilerService.remoteCompile(sessionId, targetPlatform, args, CompilerCallbackServicesFacadeServer(port = port), outStrm, CompileService.OutputFormat.PLAIN, outStrm, operationsTracer).get() @@ -122,15 +124,15 @@ object KotlinCompilerClient { fun incrementalCompile(compileService: CompileService, - sessionId: Int, - targetPlatform: CompileService.TargetPlatform, - args: Array, - callbackServices: CompilationServices, - compilerOut: OutputStream, - daemonOut: OutputStream, - port: Int = SOCKET_ANY_FREE_PORT, - profiler: Profiler = DummyProfiler(), - operationsTracer: RemoteOperationsTracer? = null + sessionId: Int, + targetPlatform: CompileService.TargetPlatform, + args: Array, + callbackServices: CompilationServices, + compilerOut: OutputStream, + daemonOut: OutputStream, + port: Int = SOCKET_ANY_FREE_PORT, + profiler: Profiler = DummyProfiler(), + operationsTracer: RemoteOperationsTracer? = null ): Int = profiler.withMeasure(this) { compileService.remoteIncrementalCompile( sessionId, @@ -158,7 +160,7 @@ object KotlinCompilerClient { val unrecognized = it.trimQuotes().split(",").filterExtractProps(opts.mappers, "") if (unrecognized.any()) throw IllegalArgumentException( - "Unrecognized client options passed via property $COMPILE_DAEMON_OPTIONS_PROPERTY: " + unrecognized.joinToString(" ") + + "Unrecognized client options passed via property ${COMPILE_DAEMON_OPTIONS_PROPERTY}: " + unrecognized.joinToString(" ") + "\nSupported options: " + opts.mappers.joinToString(", ", transform = { it.names.first() })) } return opts @@ -224,8 +226,8 @@ object KotlinCompilerClient { } finally { // forcing RMI to unregister all objects and stop - java.rmi.server.UnicastRemoteObject.unexportObject(servicesFacade, true) - java.rmi.server.UnicastRemoteObject.unexportObject(outStrm, true) + UnicastRemoteObject.unexportObject(servicesFacade, true) + UnicastRemoteObject.unexportObject(outStrm, true) } } } @@ -281,7 +283,7 @@ object KotlinCompilerClient { val processBuilder = ProcessBuilder(args) processBuilder.redirectErrorStream(true) // assuming daemon process is deaf and (mostly) silent, so do not handle streams - val daemonLauncher = net.rubygrapefruit.platform.Native.get(ProcessLauncher::class.java) + val daemonLauncher = Native.get(ProcessLauncher::class.java) val daemon = daemonLauncher.start(processBuilder) var isEchoRead = Semaphore(1) @@ -313,7 +315,7 @@ object KotlinCompilerClient { it.toLong() } catch (e: Exception) { - reportingTargets.report(DaemonReportCategory.INFO, "unable to interpret $COMPILE_DAEMON_STARTUP_TIMEOUT_PROPERTY property ('$it'); using default timeout $DAEMON_DEFAULT_STARTUP_TIMEOUT_MS ms") + reportingTargets.report(DaemonReportCategory.INFO, "unable to interpret ${COMPILE_DAEMON_STARTUP_TIMEOUT_PROPERTY} property ('$it'); using default timeout $DAEMON_DEFAULT_STARTUP_TIMEOUT_MS ms") null } } ?: DAEMON_DEFAULT_STARTUP_TIMEOUT_MS diff --git a/compiler/rmi/kotlinr/src/org/jetbrains/kotlin/rmi/kotlinr/RemoteOutputStreamServer.kt b/compiler/daemon/daemon-client/src/org/jetbrains/kotlin/daemon/client/RemoteOutputStreamServer.kt similarity index 67% rename from compiler/rmi/kotlinr/src/org/jetbrains/kotlin/rmi/kotlinr/RemoteOutputStreamServer.kt rename to compiler/daemon/daemon-client/src/org/jetbrains/kotlin/daemon/client/RemoteOutputStreamServer.kt index 1793d66b080..61a273841ce 100644 --- a/compiler/rmi/kotlinr/src/org/jetbrains/kotlin/rmi/kotlinr/RemoteOutputStreamServer.kt +++ b/compiler/daemon/daemon-client/src/org/jetbrains/kotlin/daemon/client/RemoteOutputStreamServer.kt @@ -14,17 +14,19 @@ * limitations under the License. */ -package org.jetbrains.kotlin.rmi.kotlinr +package org.jetbrains.kotlin.daemon.client -import org.jetbrains.kotlin.rmi.LoopbackNetworkInterface -import org.jetbrains.kotlin.rmi.RemoteOutputStream -import org.jetbrains.kotlin.rmi.SOCKET_ANY_FREE_PORT +import org.jetbrains.kotlin.daemon.common.LoopbackNetworkInterface +import org.jetbrains.kotlin.daemon.common.SOCKET_ANY_FREE_PORT +import org.jetbrains.kotlin.daemon.common.RemoteOutputStream +import org.jetbrains.kotlin.daemon.common.SOCKET_ANY_FREE_PORT import java.io.OutputStream +import java.rmi.server.UnicastRemoteObject class RemoteOutputStreamServer(val out: OutputStream, port: Int = SOCKET_ANY_FREE_PORT) : RemoteOutputStream, - java.rmi.server.UnicastRemoteObject(port, LoopbackNetworkInterface.clientLoopbackSocketFactory, LoopbackNetworkInterface.serverLoopbackSocketFactory) + UnicastRemoteObject(port, LoopbackNetworkInterface.clientLoopbackSocketFactory, LoopbackNetworkInterface.serverLoopbackSocketFactory) { override fun close() { out.close() diff --git a/compiler/rmi/rmi-interface/rmi-interface.iml b/compiler/daemon/daemon-common/daemon-common.iml similarity index 100% rename from compiler/rmi/rmi-interface/rmi-interface.iml rename to compiler/daemon/daemon-common/daemon-common.iml diff --git a/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/ClientUtils.kt b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/ClientUtils.kt similarity index 94% rename from compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/ClientUtils.kt rename to compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/ClientUtils.kt index 626ac75e5f7..10b8fa7cae2 100644 --- a/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/ClientUtils.kt +++ b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/ClientUtils.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.jetbrains.kotlin.rmi +package org.jetbrains.kotlin.daemon.common import java.io.File import java.rmi.ConnectException @@ -30,7 +30,7 @@ enum class DaemonReportCategory { fun makeRunFilenameString(timestamp: String, digest: String, port: String, escapeSequence: String = ""): String = - "$COMPILE_DAEMON_DEFAULT_FILES_PREFIX$escapeSequence.$timestamp$escapeSequence.$digest$escapeSequence.$port$escapeSequence.run" + "${COMPILE_DAEMON_DEFAULT_FILES_PREFIX}$escapeSequence.$timestamp$escapeSequence.$digest$escapeSequence.$port$escapeSequence.run" fun makePortFromRunFilenameExtractor(digest: String): (String) -> Int? { diff --git a/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/CompileService.kt b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/CompileService.kt similarity index 99% rename from compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/CompileService.kt rename to compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/CompileService.kt index ad2bb0c00c1..35ece05d3fc 100644 --- a/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/CompileService.kt +++ b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/CompileService.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.jetbrains.kotlin.rmi +package org.jetbrains.kotlin.daemon.common import java.io.Serializable import java.rmi.Remote diff --git a/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/CompilerCallbackServicesFacade.kt b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/CompilerCallbackServicesFacade.kt similarity index 98% rename from compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/CompilerCallbackServicesFacade.kt rename to compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/CompilerCallbackServicesFacade.kt index 5558220fc3f..850645e860a 100644 --- a/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/CompilerCallbackServicesFacade.kt +++ b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/CompilerCallbackServicesFacade.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.jetbrains.kotlin.rmi +package org.jetbrains.kotlin.daemon.common import org.jetbrains.kotlin.incremental.components.LookupInfo import org.jetbrains.kotlin.load.kotlin.incremental.components.JvmPackagePartProto diff --git a/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/DaemonParams.kt b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/DaemonParams.kt similarity index 96% rename from compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/DaemonParams.kt rename to compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/DaemonParams.kt index b954c0fca13..2df14c04d52 100644 --- a/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/DaemonParams.kt +++ b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/DaemonParams.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.jetbrains.kotlin.rmi +package org.jetbrains.kotlin.daemon.common import org.jetbrains.kotlin.cli.common.KOTLIN_COMPILER_ENVIRONMENT_KEEPALIVE_PROPERTY import java.io.File @@ -27,7 +27,7 @@ import kotlin.reflect.KMutableProperty1 val COMPILER_JAR_NAME: String = "kotlin-compiler.jar" val COMPILER_SERVICE_RMI_NAME: String = "KotlinJvmCompilerService" -val COMPILER_DAEMON_CLASS_FQN: String = "org.jetbrains.kotlin.rmi.service.CompileDaemon" +val COMPILER_DAEMON_CLASS_FQN: String = "org.jetbrains.kotlin.daemon.CompileDaemon" val COMPILE_DAEMON_FIND_PORT_ATTEMPTS: Int = 10 val COMPILE_DAEMON_PORTS_RANGE_START: Int = 17001 val COMPILE_DAEMON_PORTS_RANGE_END: Int = 18000 @@ -258,9 +258,9 @@ fun isDaemonEnabled(): Boolean = System.getProperty(COMPILE_DAEMON_ENABLED_PROPE fun configureDaemonJVMOptions(opts: DaemonJVMOptions, - vararg additionalParams: String, - inheritMemoryLimits: Boolean, - inheritAdditionalProperties: Boolean + vararg additionalParams: String, + inheritMemoryLimits: Boolean, + inheritAdditionalProperties: Boolean ): DaemonJVMOptions { // note: sequence matters, explicit override in COMPILE_DAEMON_JVM_OPTIONS_PROPERTY should be done after inputArguments processing if (inheritMemoryLimits) { @@ -276,8 +276,8 @@ fun configureDaemonJVMOptions(opts: DaemonJVMOptions, opts.jvmParams.addAll(additionalParams) if (inheritAdditionalProperties) { - System.getProperty(COMPILE_DAEMON_LOG_PATH_PROPERTY)?.let { opts.jvmParams.add("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"$it\"") } - System.getProperty(KOTLIN_COMPILER_ENVIRONMENT_KEEPALIVE_PROPERTY)?.let { opts.jvmParams.add("D$KOTLIN_COMPILER_ENVIRONMENT_KEEPALIVE_PROPERTY") } + System.getProperty(COMPILE_DAEMON_LOG_PATH_PROPERTY)?.let { opts.jvmParams.add("D${COMPILE_DAEMON_LOG_PATH_PROPERTY}=\"$it\"") } + System.getProperty(KOTLIN_COMPILER_ENVIRONMENT_KEEPALIVE_PROPERTY)?.let { opts.jvmParams.add("D${KOTLIN_COMPILER_ENVIRONMENT_KEEPALIVE_PROPERTY}") } } return opts } @@ -298,7 +298,7 @@ fun configureDaemonOptions(opts: DaemonOptions): DaemonOptions { val unrecognized = it.trimQuotes().split(",").filterExtractProps(opts.mappers, "") if (unrecognized.any()) throw IllegalArgumentException( - "Unrecognized daemon options passed via property $COMPILE_DAEMON_OPTIONS_PROPERTY: " + unrecognized.joinToString(" ") + + "Unrecognized daemon options passed via property ${COMPILE_DAEMON_OPTIONS_PROPERTY}: " + unrecognized.joinToString(" ") + "\nSupported options: " + opts.mappers.joinToString(", ", transform = { it.names.first() })) } System.getProperty(COMPILE_DAEMON_VERBOSE_REPORT_PROPERTY)?.let { opts.verbose = true } diff --git a/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/FileSystemUtils.kt b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/FileSystemUtils.kt similarity index 77% rename from compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/FileSystemUtils.kt rename to compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/FileSystemUtils.kt index 3af527ff73e..a0381c07082 100644 --- a/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/FileSystemUtils.kt +++ b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/FileSystemUtils.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.jetbrains.kotlin.rmi +package org.jetbrains.kotlin.daemon.common import java.io.File @@ -28,19 +28,19 @@ enum class OSKind { val current: OSKind = System.getProperty("os.name").toLowerCase().let { when { // partly taken from http://www.code4copy.com/java/post/detecting-os-type-in-java - it.startsWith("windows") -> OSKind.Windows - it.startsWith("mac os") -> OSKind.OSX - it.contains("unix") -> OSKind.Unix - it.startsWith("linux") -> OSKind.Unix - it.contains("bsd") -> OSKind.Unix - it.startsWith("irix") -> OSKind.Unix - it.startsWith("mpe/ix") -> OSKind.Unix - it.startsWith("aix") -> OSKind.Unix - it.startsWith("hp-ux") -> OSKind.Unix - it.startsWith("sunos") -> OSKind.Unix - it.startsWith("sun os") -> OSKind.Unix - it.startsWith("solaris") -> OSKind.Unix - else -> OSKind.Unknown + it.startsWith("windows") -> Windows + it.startsWith("mac os") -> OSX + it.contains("unix") -> Unix + it.startsWith("linux") -> Unix + it.contains("bsd") -> Unix + it.startsWith("irix") -> Unix + it.startsWith("mpe/ix") -> Unix + it.startsWith("aix") -> Unix + it.startsWith("hp-ux") -> Unix + it.startsWith("sunos") -> Unix + it.startsWith("sun os") -> Unix + it.startsWith("solaris") -> Unix + else -> Unknown } } } @@ -76,7 +76,7 @@ object FileSystem { val dir = if (base.exists() && base.isDirectory) names.fold(base, { r, v -> File(r, v) }) else names.drop(1) .fold(File(userHomePath, names.first().let { if (it.startsWith(".")) it else ".$it" }), - { r, v -> File(r, v)}) + { r, v -> File(r, v) }) return if ((dir.exists() && dir.isDirectory) || dir.mkdirs()) dir.absolutePath else tempPath } diff --git a/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/NetworkUtils.kt b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/NetworkUtils.kt similarity index 95% rename from compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/NetworkUtils.kt rename to compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/NetworkUtils.kt index d13974211ce..b7123708250 100644 --- a/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/NetworkUtils.kt +++ b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/NetworkUtils.kt @@ -14,10 +14,11 @@ * limitations under the License. */ -package org.jetbrains.kotlin.rmi +package org.jetbrains.kotlin.daemon.common import java.io.IOException import java.io.Serializable +import java.net.Inet6Address import java.net.InetAddress import java.net.ServerSocket import java.net.Socket @@ -45,7 +46,7 @@ object LoopbackNetworkInterface { // TODO switch to InetAddress.getLoopbackAddress on java 7+ val loopbackInetAddressName by lazy { try { - if (java.net.InetAddress.getLocalHost() is java.net.Inet6Address) IPV6_LOOPBACK_INET_ADDRESS else IPV4_LOOPBACK_INET_ADDRESS + if (InetAddress.getLocalHost() is Inet6Address) IPV6_LOOPBACK_INET_ADDRESS else IPV4_LOOPBACK_INET_ADDRESS } catch (e: IOException) { // getLocalHost may fail for unknown reasons in some situations, the fallback is to assume IPv4 for now diff --git a/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/PerfUtils.kt b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/PerfUtils.kt similarity index 95% rename from compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/PerfUtils.kt rename to compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/PerfUtils.kt index 30eea2e00d0..082ef3eb5d7 100644 --- a/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/PerfUtils.kt +++ b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/PerfUtils.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.jetbrains.kotlin.rmi +package org.jetbrains.kotlin.daemon.common import java.lang.management.ManagementFactory import java.lang.management.ThreadMXBean @@ -131,7 +131,7 @@ inline fun withMeasureWallAndThreadTimesAndMemory(perfCounters: PerfCounters, class DummyProfiler : Profiler { - override fun getCounters(): Map = mapOf(null to SimplePerfCounters()) + override fun getCounters(): Map = mapOf(null to SimplePerfCounters()) override fun getTotalCounters(): PerfCounters = SimplePerfCounters() override final inline fun withMeasure(obj: Any?, body: () -> R): R = body() @@ -167,8 +167,8 @@ class WallAndThreadByClassProfiler() : TotalProfiler() { val counters = hashMapOf() - override fun getCounters(): Map = counters + override fun getCounters(): Map = counters override final inline fun withMeasure(obj: Any?, body: () -> R): R = - withMeasureWallAndThreadTimes(counters.getOrPut(obj?.javaClass?.name, { SimplePerfCountersWithTotal(total) } ), threadMXBean, body) + withMeasureWallAndThreadTimes(counters.getOrPut(obj?.javaClass?.name, { SimplePerfCountersWithTotal(total) }), threadMXBean, body) } diff --git a/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/RemoteOperationsTracer.kt b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/RemoteOperationsTracer.kt similarity index 95% rename from compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/RemoteOperationsTracer.kt rename to compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/RemoteOperationsTracer.kt index 3d21da9c4d9..b0731a01463 100644 --- a/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/RemoteOperationsTracer.kt +++ b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/RemoteOperationsTracer.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.jetbrains.kotlin.rmi +package org.jetbrains.kotlin.daemon.common import java.rmi.Remote import java.rmi.RemoteException diff --git a/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/RemoteOutputStream.kt b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/RemoteOutputStream.kt similarity index 95% rename from compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/RemoteOutputStream.kt rename to compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/RemoteOutputStream.kt index 127f8560271..3afe999e887 100644 --- a/compiler/rmi/rmi-interface/src/org/jetbrains/kotlin/rmi/RemoteOutputStream.kt +++ b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/RemoteOutputStream.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.jetbrains.kotlin.rmi +package org.jetbrains.kotlin.daemon.common import java.rmi.Remote import java.rmi.RemoteException diff --git a/compiler/rmi/rmi-server/rmi-server.iml b/compiler/daemon/daemon.iml similarity index 92% rename from compiler/rmi/rmi-server/rmi-server.iml rename to compiler/daemon/daemon.iml index 8eda3cd81de..1fad4f719ab 100644 --- a/compiler/rmi/rmi-server/rmi-server.iml +++ b/compiler/daemon/daemon.iml @@ -9,7 +9,7 @@ - + diff --git a/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/CompileDaemon.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileDaemon.kt similarity index 97% rename from compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/CompileDaemon.kt rename to compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileDaemon.kt index 5f1e149d528..85a6d55de61 100644 --- a/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/CompileDaemon.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileDaemon.kt @@ -14,12 +14,12 @@ * limitations under the License. */ -package org.jetbrains.kotlin.rmi.service +package org.jetbrains.kotlin.daemon import org.jetbrains.kotlin.cli.common.CLICompiler import org.jetbrains.kotlin.cli.js.K2JSCompiler import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler -import org.jetbrains.kotlin.rmi.* +import org.jetbrains.kotlin.daemon.common.* import java.io.File import java.io.IOException import java.io.OutputStream @@ -69,7 +69,7 @@ object CompileDaemon { "java.util.logging.FileHandler.limit = ${if (fileIsGiven) 0 else (1 shl 20)}\n" + // if file is provided - disabled, else - 1Mb "java.util.logging.FileHandler.count = ${if (fileIsGiven) 1 else 3}\n" + "java.util.logging.FileHandler.append = $fileIsGiven\n" + - "java.util.logging.FileHandler.pattern = ${if (fileIsGiven) logPath else (logPath + File.separator + "$COMPILE_DAEMON_DEFAULT_FILES_PREFIX.$logTime.%u%g.log")}\n" + + "java.util.logging.FileHandler.pattern = ${if (fileIsGiven) logPath else (logPath + File.separator + "${COMPILE_DAEMON_DEFAULT_FILES_PREFIX}.$logTime.%u%g.log")}\n" + "java.util.logging.SimpleFormatter.format = %1\$tF %1\$tT.%1\$tL [%3\$s] %4\$s: %5\$s\\n\n" LogManager.getLogManager().readConfiguration(cfg.byteInputStream()) diff --git a/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/CompileServiceImpl.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt similarity index 97% rename from compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/CompileServiceImpl.kt rename to compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt index c67b1509785..92fb161fb06 100644 --- a/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/CompileServiceImpl.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt @@ -14,15 +14,16 @@ * limitations under the License. */ -package org.jetbrains.kotlin.rmi.service +package org.jetbrains.kotlin.daemon +import com.intellij.openapi.vfs.impl.ZipHandler import org.jetbrains.kotlin.cli.common.CLICompiler import org.jetbrains.kotlin.cli.common.ExitCode import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment import org.jetbrains.kotlin.config.Services +import org.jetbrains.kotlin.daemon.common.* import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents import org.jetbrains.kotlin.progress.CompilationCanceledStatus -import org.jetbrains.kotlin.rmi.* import org.jetbrains.kotlin.utils.addToStdlib.check import java.io.BufferedOutputStream import java.io.File @@ -116,9 +117,9 @@ class CompileServiceImpl( val runFileDir = File(daemonOptions.runFilesPathOrDefault) runFileDir.mkdirs() runFile = File(runFileDir, - makeRunFilenameString(timestamp = "%tFT% = ifAlive { usedMemory(withGC = true) } - override fun shutdown(): CompileService.CallResult = ifAliveExclusive_Nothing(minAliveness = Aliveness.LastSession, ignoreCompilerChanged = true) { + override fun shutdown(): CompileService.CallResult = ifAliveExclusive_Nothing(minAliveness = Aliveness.LastSession, ignoreCompilerChanged = true) { shutdownImpl() } @@ -301,7 +302,7 @@ class CompileServiceImpl( }.forEach { releaseCompileSession(it) } // 3. check if in graceful shutdown state and all sessions are closed - if (shutdownCondition({state.alive.get() == Aliveness.LastSession.ordinal && state.sessions.none()}, "All sessions finished, shutting down")) { + if (shutdownCondition({ state.alive.get() == Aliveness.LastSession.ordinal && state.sessions.none()}, "All sessions finished, shutting down")) { shutdown() } @@ -478,7 +479,7 @@ class CompileServiceImpl( } private fun clearJarCache() { - com.intellij.openapi.vfs.impl.ZipHandler.clearFileAccessorCache() + ZipHandler.clearFileAccessorCache() val classloader = javaClass.classLoader // TODO: replace the following code with direct call to CoreJarFileSystem. as soon as it will be available (hopefully in 15.02) try { diff --git a/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/LazyClasspathWatcher.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/LazyClasspathWatcher.kt similarity index 99% rename from compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/LazyClasspathWatcher.kt rename to compiler/daemon/src/org/jetbrains/kotlin/daemon/LazyClasspathWatcher.kt index 1c3e0be74e1..49f360f2e0c 100644 --- a/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/LazyClasspathWatcher.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/LazyClasspathWatcher.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.jetbrains.kotlin.rmi.service +package org.jetbrains.kotlin.daemon import java.io.File import java.io.IOException diff --git a/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/RemoteCompilationCanceledStatusClient.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/RemoteCompilationCanceledStatusClient.kt similarity index 85% rename from compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/RemoteCompilationCanceledStatusClient.kt rename to compiler/daemon/src/org/jetbrains/kotlin/daemon/RemoteCompilationCanceledStatusClient.kt index d3f9a430cb0..ae00af4aba4 100644 --- a/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/RemoteCompilationCanceledStatusClient.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/RemoteCompilationCanceledStatusClient.kt @@ -14,12 +14,12 @@ * limitations under the License. */ -package org.jetbrains.kotlin.rmi.service +package org.jetbrains.kotlin.daemon import org.jetbrains.kotlin.progress.CompilationCanceledStatus -import org.jetbrains.kotlin.rmi.CompilerCallbackServicesFacade -import org.jetbrains.kotlin.rmi.DummyProfiler -import org.jetbrains.kotlin.rmi.Profiler +import org.jetbrains.kotlin.daemon.common.CompilerCallbackServicesFacade +import org.jetbrains.kotlin.daemon.common.DummyProfiler +import org.jetbrains.kotlin.daemon.common.Profiler import java.util.concurrent.TimeUnit val CANCELED_STATUS_CHECK_THRESHOLD_NS = TimeUnit.MILLISECONDS.toNanos(100) diff --git a/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/RemoteIncrementalCacheClient.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/RemoteIncrementalCacheClient.kt similarity index 91% rename from compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/RemoteIncrementalCacheClient.kt rename to compiler/daemon/src/org/jetbrains/kotlin/daemon/RemoteIncrementalCacheClient.kt index d23cb2d11ad..dec93c891e5 100644 --- a/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/RemoteIncrementalCacheClient.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/RemoteIncrementalCacheClient.kt @@ -14,14 +14,14 @@ * limitations under the License. */ -package org.jetbrains.kotlin.rmi.service +package org.jetbrains.kotlin.daemon import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache import org.jetbrains.kotlin.load.kotlin.incremental.components.JvmPackagePartProto import org.jetbrains.kotlin.modules.TargetId -import org.jetbrains.kotlin.rmi.CompilerCallbackServicesFacade -import org.jetbrains.kotlin.rmi.DummyProfiler -import org.jetbrains.kotlin.rmi.Profiler +import org.jetbrains.kotlin.daemon.common.CompilerCallbackServicesFacade +import org.jetbrains.kotlin.daemon.common.DummyProfiler +import org.jetbrains.kotlin.daemon.common.Profiler class RemoteIncrementalCacheClient(val facade: CompilerCallbackServicesFacade, val target: TargetId, val profiler: Profiler = DummyProfiler()): IncrementalCache { diff --git a/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/RemoteIncrementalCompilationComponentsClient.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/RemoteIncrementalCompilationComponentsClient.kt similarity index 86% rename from compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/RemoteIncrementalCompilationComponentsClient.kt rename to compiler/daemon/src/org/jetbrains/kotlin/daemon/RemoteIncrementalCompilationComponentsClient.kt index 771c3ce900c..8c4eaf78399 100644 --- a/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/RemoteIncrementalCompilationComponentsClient.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/RemoteIncrementalCompilationComponentsClient.kt @@ -14,15 +14,15 @@ * limitations under the License. */ -package org.jetbrains.kotlin.rmi.service +package org.jetbrains.kotlin.daemon 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.TargetId -import org.jetbrains.kotlin.rmi.CompilerCallbackServicesFacade -import org.jetbrains.kotlin.rmi.DummyProfiler -import org.jetbrains.kotlin.rmi.Profiler +import org.jetbrains.kotlin.daemon.common.CompilerCallbackServicesFacade +import org.jetbrains.kotlin.daemon.common.DummyProfiler +import org.jetbrains.kotlin.daemon.common.Profiler class RemoteIncrementalCompilationComponentsClient(val facade: CompilerCallbackServicesFacade, eventManger: EventManger, val profiler: Profiler = DummyProfiler()) : IncrementalCompilationComponents { diff --git a/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/RemoteLookupTrackerClient.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/RemoteLookupTrackerClient.kt similarity index 89% rename from compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/RemoteLookupTrackerClient.kt rename to compiler/daemon/src/org/jetbrains/kotlin/daemon/RemoteLookupTrackerClient.kt index eb11eddf7fa..3599055250c 100644 --- a/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/RemoteLookupTrackerClient.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/RemoteLookupTrackerClient.kt @@ -14,15 +14,15 @@ * limitations under the License. */ -package org.jetbrains.kotlin.rmi.service +package org.jetbrains.kotlin.daemon import org.jetbrains.kotlin.incremental.components.LookupInfo import org.jetbrains.kotlin.incremental.components.LookupTracker import org.jetbrains.kotlin.incremental.components.Position import org.jetbrains.kotlin.incremental.components.ScopeKind -import org.jetbrains.kotlin.rmi.CompilerCallbackServicesFacade -import org.jetbrains.kotlin.rmi.DummyProfiler -import org.jetbrains.kotlin.rmi.Profiler +import org.jetbrains.kotlin.daemon.common.CompilerCallbackServicesFacade +import org.jetbrains.kotlin.daemon.common.DummyProfiler +import org.jetbrains.kotlin.daemon.common.Profiler class RemoteLookupTrackerClient(val facade: CompilerCallbackServicesFacade, val eventManger: EventManger, val profiler: Profiler = DummyProfiler()) : LookupTracker { diff --git a/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/RemoteOutputStreamClient.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/RemoteOutputStreamClient.kt similarity index 84% rename from compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/RemoteOutputStreamClient.kt rename to compiler/daemon/src/org/jetbrains/kotlin/daemon/RemoteOutputStreamClient.kt index 061be42c16a..7af18cd681b 100644 --- a/compiler/rmi/rmi-server/src/org/jetbrains/kotlin/rmi/service/RemoteOutputStreamClient.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/RemoteOutputStreamClient.kt @@ -14,11 +14,11 @@ * limitations under the License. */ -package org.jetbrains.kotlin.rmi.service +package org.jetbrains.kotlin.daemon -import org.jetbrains.kotlin.rmi.DummyProfiler -import org.jetbrains.kotlin.rmi.Profiler -import org.jetbrains.kotlin.rmi.RemoteOutputStream +import org.jetbrains.kotlin.daemon.common.DummyProfiler +import org.jetbrains.kotlin.daemon.common.Profiler +import org.jetbrains.kotlin.daemon.common.RemoteOutputStream import java.io.OutputStream class RemoteOutputStreamClient(val remote: RemoteOutputStream, val profiler: Profiler = DummyProfiler()): OutputStream() { diff --git a/compiler/tests/compiler-tests.iml b/compiler/tests/compiler-tests.iml index 5448f557960..a61f976a227 100644 --- a/compiler/tests/compiler-tests.iml +++ b/compiler/tests/compiler-tests.iml @@ -26,7 +26,7 @@ - - + + \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/daemon/CompilerDaemonTest.kt b/compiler/tests/org/jetbrains/kotlin/daemon/CompilerDaemonTest.kt index fe07942c725..4f89c716305 100644 --- a/compiler/tests/org/jetbrains/kotlin/daemon/CompilerDaemonTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/daemon/CompilerDaemonTest.kt @@ -16,12 +16,11 @@ package org.jetbrains.kotlin.daemon -import junit.framework.TestCase import org.jetbrains.kotlin.cli.CliBaseTest import org.jetbrains.kotlin.integration.KotlinIntegrationTestBase -import org.jetbrains.kotlin.rmi.* -import org.jetbrains.kotlin.rmi.kotlinr.DaemonReportingTargets -import org.jetbrains.kotlin.rmi.kotlinr.KotlinCompilerClient +import org.jetbrains.kotlin.daemon.client.DaemonReportingTargets +import org.jetbrains.kotlin.daemon.client.KotlinCompilerClient +import org.jetbrains.kotlin.daemon.common.* import org.jetbrains.kotlin.test.KotlinTestUtils import java.io.ByteArrayOutputStream import java.io.File @@ -39,7 +38,7 @@ public class CompilerDaemonTest : KotlinIntegrationTestBase() { val compilerClassPath = listOf( File(KotlinIntegrationTestBase.getCompilerLib(), "kotlin-compiler.jar")) - val daemonClientClassPath = listOf( File(KotlinIntegrationTestBase.getCompilerLib(), "kotlinr.jar"), + val daemonClientClassPath = listOf( File(KotlinIntegrationTestBase.getCompilerLib(), "kotlin-daemon-client.jar"), File(KotlinIntegrationTestBase.getCompilerLib(), "kotlin-compiler.jar")) val compilerId by lazy(LazyThreadSafetyMode.NONE) { CompilerId.makeCompilerId(compilerClassPath) } @@ -76,7 +75,7 @@ public class CompilerDaemonTest : KotlinIntegrationTestBase() { val logFile = createTempFile("kotlin-daemon-test.", ".log") - val daemonJVMOptions = configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile.loggerCompatiblePath}\"", + val daemonJVMOptions = configureDaemonJVMOptions("D${COMPILE_DAEMON_LOG_PATH_PROPERTY}=\"${logFile.loggerCompatiblePath}\"", inheritMemoryLimits = false, inheritAdditionalProperties = false) var daemonShotDown = false @@ -154,11 +153,11 @@ public class CompilerDaemonTest : KotlinIntegrationTestBase() { val logFile1 = createTempFile("kotlin-daemon1-test", ".log") val logFile2 = createTempFile("kotlin-daemon2-test", ".log") val daemonJVMOptions1 = - configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile1.loggerCompatiblePath}\"", + configureDaemonJVMOptions("D${COMPILE_DAEMON_LOG_PATH_PROPERTY}=\"${logFile1.loggerCompatiblePath}\"", inheritMemoryLimits = false, inheritAdditionalProperties = false) val daemonJVMOptions2 = - configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile2.loggerCompatiblePath}\"", + configureDaemonJVMOptions("D${COMPILE_DAEMON_LOG_PATH_PROPERTY}=\"${logFile2.loggerCompatiblePath}\"", inheritMemoryLimits = false, inheritAdditionalProperties = false) assertTrue(logFile1.length() == 0L && logFile2.length() == 0L) @@ -193,7 +192,7 @@ public class CompilerDaemonTest : KotlinIntegrationTestBase() { val logFile = createTempFile("kotlin-daemon-test", ".log") val daemonJVMOptions = - configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile.loggerCompatiblePath}\"", + configureDaemonJVMOptions("D${COMPILE_DAEMON_LOG_PATH_PROPERTY}=\"${logFile.loggerCompatiblePath}\"", inheritMemoryLimits = false, inheritAdditionalProperties = false) val daemon = KotlinCompilerClient.connectToCompileService(compilerId, flagFile, daemonJVMOptions, daemonOptions, DaemonReportingTargets(out = System.err), autostart = true) @@ -220,7 +219,7 @@ public class CompilerDaemonTest : KotlinIntegrationTestBase() { val logFile = createTempFile("kotlin-daemon-test", ".log") val daemonJVMOptions = - configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile.loggerCompatiblePath}\"", + configureDaemonJVMOptions("D${COMPILE_DAEMON_LOG_PATH_PROPERTY}=\"${logFile.loggerCompatiblePath}\"", inheritMemoryLimits = false, inheritAdditionalProperties = false) val daemon = KotlinCompilerClient.connectToCompileService(compilerId, flagFile, daemonJVMOptions, daemonOptions, DaemonReportingTargets(out = System.err), autostart = true) @@ -252,7 +251,7 @@ public class CompilerDaemonTest : KotlinIntegrationTestBase() { val logFile = createTempFile("kotlin-daemon-test", ".log") val daemonJVMOptions = - configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile.loggerCompatiblePath}\"", + configureDaemonJVMOptions("D${COMPILE_DAEMON_LOG_PATH_PROPERTY}=\"${logFile.loggerCompatiblePath}\"", inheritMemoryLimits = false, inheritAdditionalProperties = false) val daemon = KotlinCompilerClient.connectToCompileService(compilerId, flagFile, daemonJVMOptions, daemonOptions, DaemonReportingTargets(out = System.err), autostart = true) @@ -298,11 +297,11 @@ public class CompilerDaemonTest : KotlinIntegrationTestBase() { val daemonOptions = DaemonOptions(runFilesPath = runFilesPath) val jar = tmpdir.absolutePath + File.separator + "hello.jar" val args = listOf( - File(File(System.getProperty("java.home"), "bin"), "java").absolutePath, - "-D$COMPILE_DAEMON_VERBOSE_REPORT_PROPERTY", - "-cp", - daemonClientClassPath.joinToString(File.pathSeparator) { it.absolutePath }, - KotlinCompilerClient::class.qualifiedName!!) + + File(File(System.getProperty("java.home"), "bin"), "java").absolutePath, + "-D${COMPILE_DAEMON_VERBOSE_REPORT_PROPERTY}", + "-cp", + daemonClientClassPath.joinToString(File.pathSeparator) { it.absolutePath }, + KotlinCompilerClient::class.qualifiedName!!) + daemonOptions.mappers.flatMap { it.toArgs(COMPILE_DAEMON_CMDLINE_OPTIONS_PREFIX) } + compilerId.mappers.flatMap { it.toArgs(COMPILE_DAEMON_CMDLINE_OPTIONS_PREFIX) } + File(getHelloAppBaseDir(), "hello.kt").absolutePath + diff --git a/idea/idea.iml b/idea/idea.iml index dbf72261b73..9e4d220800d 100644 --- a/idea/idea.iml +++ b/idea/idea.iml @@ -48,7 +48,7 @@ - + diff --git a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinBuildProcessParametersProvider.kt b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinBuildProcessParametersProvider.kt index d8e56b8d09d..c3b15f1efea 100644 --- a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinBuildProcessParametersProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinBuildProcessParametersProvider.kt @@ -32,7 +32,7 @@ public class KotlinBuildProcessParametersProvider(private val compilerWorkspaceS } kotlinPluginStartupComponent.aliveFlagPath.let { if (!it.isBlank()) { - // TODO: consider taking the property name from compiler/rmi-interface (check whether dependency will be not too heavy) + // TODO: consider taking the property name from compiler/daemon/common (check whether dependency will be not too heavy) res.add("-Dkotlin.daemon.client.alive.path=\"$it\"") } } diff --git a/jps-plugin/jps-plugin.iml b/jps-plugin/jps-plugin.iml index cceadef5599..7e51764c54e 100644 --- a/jps-plugin/jps-plugin.iml +++ b/jps-plugin/jps-plugin.iml @@ -20,7 +20,7 @@ - - + + \ No newline at end of file diff --git a/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.kt b/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.kt index 7c8fb1d0139..71137f0051d 100644 --- a/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.kt +++ b/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.kt @@ -28,12 +28,15 @@ import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.ERROR import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.INFO import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.cli.common.messages.MessageCollectorUtil +import org.jetbrains.kotlin.daemon.client.CompilationServices +import org.jetbrains.kotlin.daemon.client.DaemonReportMessage +import org.jetbrains.kotlin.daemon.client.DaemonReportingTargets +import org.jetbrains.kotlin.daemon.client.KotlinCompilerClient import org.jetbrains.kotlin.config.CompilerSettings +import org.jetbrains.kotlin.daemon.common.* import org.jetbrains.kotlin.jps.build.KotlinBuilder import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents import org.jetbrains.kotlin.progress.CompilationCanceledStatus -import org.jetbrains.kotlin.rmi.* -import org.jetbrains.kotlin.rmi.kotlinr.* import java.io.* import java.lang.reflect.Field import java.lang.reflect.Modifier 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 0e5f7a9b60f..640a60dbb86 100644 --- a/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt +++ b/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt @@ -65,7 +65,7 @@ import org.jetbrains.kotlin.modules.TargetId import org.jetbrains.kotlin.progress.CompilationCanceledException import org.jetbrains.kotlin.progress.CompilationCanceledStatus import org.jetbrains.kotlin.resolve.jvm.JvmClassName -import org.jetbrains.kotlin.rmi.isDaemonEnabled +import org.jetbrains.kotlin.daemon.common.isDaemonEnabled import org.jetbrains.kotlin.utils.LibraryUtils import org.jetbrains.kotlin.utils.PathUtil import org.jetbrains.kotlin.utils.keysToMap diff --git a/jps-plugin/test/org/jetbrains/kotlin/jps/build/SimpleKotlinJpsBuildTest.kt b/jps-plugin/test/org/jetbrains/kotlin/jps/build/SimpleKotlinJpsBuildTest.kt index 5f4127160a0..fc1ab6d2052 100644 --- a/jps-plugin/test/org/jetbrains/kotlin/jps/build/SimpleKotlinJpsBuildTest.kt +++ b/jps-plugin/test/org/jetbrains/kotlin/jps/build/SimpleKotlinJpsBuildTest.kt @@ -18,7 +18,7 @@ package org.jetbrains.kotlin.jps.build import com.intellij.util.PathUtil import org.jetbrains.jps.model.java.JpsJavaExtensionService -import org.jetbrains.kotlin.rmi.* +import org.jetbrains.kotlin.daemon.common.* import org.jetbrains.kotlin.test.KotlinTestUtils import java.io.File @@ -66,7 +66,7 @@ public class SimpleKotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() { // TODO: add JS tests public fun testDaemon() { - System.setProperty(COMPILE_DAEMON_ENABLED_PROPERTY,"") + System.setProperty(COMPILE_DAEMON_ENABLED_PROPERTY, "") System.setProperty(COMPILE_DAEMON_VERBOSE_REPORT_PROPERTY, "") // spaces in the name to test proper file name handling val flagFile = File.createTempFile("kotlin-jps - tests-", "-is-running");