internal class TestRepl(disposable: Disposable) { val configuration = CompilerConfiguration().apply { addJvmClasspathRoots(PathUtil.getJdkClassesRoots()) put(CommonConfigurationKeys.MODULE_NAME, "script-test") put(JVMConfigurationKeys.INCLUDE_RUNTIME, true) } fun makeScriptDefinition(templateClasspath: List, templateClassName: String): KotlinScriptDefinition { val classloader = URLClassLoader(templateClasspath.map { it.toURI().toURL() }.toTypedArray(), this.javaClass.classLoader) val cls = classloader.loadClass(templateClassName) return KotlinScriptDefinitionFromAnnotatedTemplate(cls.kotlin, null, null, emptyMap()) } val scriptDef = makeScriptDefinition(listOf( "/Users/jminard/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-compiler-embeddable/1.1-M04/7024065d996ef7b9bc5d4533b6ba20c7de4a8673/kotlin-compiler-embeddable-1.1-M04.jar", "/Users/jminard/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-runtime/1.1-M04/4beeab2b8a1414bc89b7295406ab542e697705b8/kotlin-runtime-1.1-M04.jar", "/Users/jminard/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.1-M04/bdcee15e5eea6728205f3b2977a5093497d36b47/kotlin-stdlib-1.1-M04.jar", "/Users/jminard/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-reflect/1.1-M04/50e442efdd3eab1dcf2ddbf4b3ec5dabecf1b2b2/kotlin-reflect-1.1-M04.jar" ).map { File(it) }, "kotlin.script.templates.standard.ScriptTemplateWithArgs") val replCompiler: GenericReplCompiler by lazy { GenericReplCompiler(disposable, scriptDef, configuration, PrintingMessageCollector(System.out, MessageRenderer.WITHOUT_PATHS, false)) } val compiledEvaluator: GenericReplCompiledEvaluator by lazy { GenericReplCompiledEvaluator(configuration.jvmClasspathRoots, null, arrayOf(emptyArray())) } }