Make JSR 223 examples compatible with embeddable compiler, strip ...

some dependencies.
Fixes #KT-17561 and related issues
Warning: API changed slightly
This commit is contained in:
Ilya Chernikov
2017-12-19 12:06:11 +01:00
parent d51b17c1b2
commit 2d8e73f3f6
7 changed files with 8 additions and 11 deletions
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.cli.jvm.repl
import com.intellij.openapi.Disposable
import com.intellij.openapi.util.Disposer
import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
import org.jetbrains.kotlin.cli.common.repl.*
@@ -46,6 +47,9 @@ open class GenericReplCompiler(disposable: Disposable,
messageCollector: MessageCollector
) : ReplCompiler {
constructor(scriptDefinition: KotlinScriptDefinition, compilerConfiguration: CompilerConfiguration, messageCollector: MessageCollector) :
this(Disposer.newDisposable(), scriptDefinition, compilerConfiguration, messageCollector)
private val checker = GenericReplChecker(disposable, scriptDefinition, compilerConfiguration, messageCollector)
override fun createState(lock: ReentrantReadWriteLock): IReplStageState<*> = GenericReplCompilerState(checker.environment, lock)
@@ -10,10 +10,11 @@ dependencies {
testCompile(project(":kotlin-script-runtime"))
testCompile(project(":kotlin-script-util"))
testCompile(project(":kotlin-daemon-client"))
testCompile(projectRuntimeJar(":kotlin-compiler-embeddable"))
testCompile(commonDep("junit:junit"))
testCompile(project(":kotlin-test:kotlin-test-junit"))
testRuntime(project(":kotlin-reflect"))
compilerClasspath(projectRuntimeJar(":kotlin-compiler"))
compilerClasspath(projectRuntimeJar(":kotlin-compiler-embeddable"))
compilerClasspath(projectDist(":kotlin-reflect"))
compilerClasspath(projectDist(":kotlin-stdlib"))
compilerClasspath(projectDist(":kotlin-script-runtime"))
@@ -6,7 +6,7 @@ apply { plugin("kotlin") }
dependencies {
compile(projectDist(":kotlin-stdlib"))
compile(projectDist(":kotlin-script-runtime"))
compile(projectRuntimeJar(":kotlin-compiler"))
compile(projectRuntimeJar(":kotlin-compiler-embeddable"))
compile(project(":kotlin-script-util"))
testCompile(projectDist(":kotlin-test:kotlin-test-junit"))
testCompile(commonDep("junit:junit"))
@@ -12,11 +12,11 @@ dependencies {
compileOnly("com.jcabi:jcabi-aether:0.10.1")
compileOnly("org.sonatype.aether:aether-api:1.13.1")
compileOnly("org.apache.maven:maven-core:3.0.3")
runtime(projectRuntimeJar(":kotlin-compiler"))
testCompileOnly(project(":compiler:cli"))
testCompile(project(":kotlin-test:kotlin-test-junit"))
testRuntime(project(":kotlin-reflect"))
testCompile(commonDep("junit:junit"))
testRuntime(projectRuntimeJar(":kotlin-compiler"))
testRuntime("com.jcabi:jcabi-aether:0.10.1")
testRuntime("org.sonatype.aether:aether-api:1.13.1")
testRuntime("org.apache.maven:maven-core:3.0.3")
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.script.jsr223
import com.intellij.openapi.Disposable
import org.jetbrains.kotlin.cli.common.messages.MessageRenderer
import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector
import org.jetbrains.kotlin.cli.common.repl.*
@@ -37,7 +36,6 @@ import kotlin.reflect.KClass
// TODO: need to manage resources here, i.e. call replCompiler.dispose when engine is collected
class KotlinJsr223JvmDaemonCompileScriptEngine(
disposable: Disposable,
factory: ScriptEngineFactory,
compilerClasspath: List<File>,
templateClasspath: List<File>,
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.script.jsr223
import com.intellij.openapi.Disposable
import org.jetbrains.kotlin.cli.common.messages.MessageRenderer
import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector
import org.jetbrains.kotlin.cli.common.repl.*
@@ -35,7 +34,6 @@ import javax.script.ScriptEngineFactory
import kotlin.reflect.KClass
class KotlinJsr223JvmLocalScriptEngine(
disposable: Disposable,
factory: ScriptEngineFactory,
val templateClasspath: List<File>,
templateClassName: String,
@@ -45,7 +43,6 @@ class KotlinJsr223JvmLocalScriptEngine(
override val replCompiler: ReplCompiler by lazy {
GenericReplCompiler(
disposable,
makeScriptDefinition(templateClasspath, templateClassName),
makeCompilerConfiguration(),
PrintingMessageCollector(System.out, MessageRenderer.WITHOUT_PATHS, false))
@@ -18,7 +18,6 @@
package org.jetbrains.kotlin.script.jsr223
import com.intellij.openapi.util.Disposer
import org.jetbrains.kotlin.cli.common.repl.KotlinJsr223JvmScriptEngineFactoryBase
import org.jetbrains.kotlin.cli.common.repl.ScriptArgsWithTypes
import org.jetbrains.kotlin.script.util.*
@@ -30,7 +29,6 @@ class KotlinJsr223JvmLocalScriptEngineFactory : KotlinJsr223JvmScriptEngineFacto
override fun getScriptEngine(): ScriptEngine =
KotlinJsr223JvmLocalScriptEngine(
Disposer.newDisposable(),
this,
scriptCompilationClasspathFromContext("kotlin-script-util.jar"),
KotlinStandardJsr223ScriptTemplate::class.qualifiedName!!,
@@ -43,7 +41,6 @@ class KotlinJsr223JvmDaemonLocalEvalScriptEngineFactory : KotlinJsr223JvmScriptE
override fun getScriptEngine(): ScriptEngine =
KotlinJsr223JvmDaemonCompileScriptEngine(
Disposer.newDisposable(),
this,
KotlinJars.compilerClasspath,
scriptCompilationClasspathFromContext("kotlin-script-util.jar"),