Pass scripting (host) environment independently from properties/configuration

This commit is contained in:
Ilya Chernikov
2018-07-15 22:23:49 +02:00
parent 91e6c0b77c
commit 8953bba47c
11 changed files with 49 additions and 43 deletions
@@ -19,10 +19,10 @@ import kotlin.script.experimental.jvmhost.impl.KJVMCompilerImpl
import kotlin.script.experimental.misc.invoke
fun evalFile(scriptFile: File): ResultWithDiagnostics<EvaluationResult> {
val scriptCompiler = JvmScriptCompiler(KJVMCompilerImpl(), DummyCompiledJvmScriptCache())
val environment = ScriptingEnvironment(
ScriptingEnvironmentProperties.getScriptingClass(JvmGetScriptingClass())
)
val scriptCompiler = JvmScriptCompiler(KJVMCompilerImpl(environment), DummyCompiledJvmScriptCache())
val scriptDefinition = ScriptDefinitionFromAnnotatedBaseClass(
KotlinType(MyScriptWithMavenDeps::class),
environment
@@ -33,7 +33,6 @@ abstract class MyScriptWithMavenDeps {
object MyConfiguration : ArrayList<Pair<TypedKey<*>, Any?>>(
jvmJavaHomeParams + with(ScriptCompileConfigurationProperties) {
listOf(
baseClass<MyScriptWithMavenDeps>(),
defaultImports(DependsOn::class.qualifiedName!!, Repository::class.qualifiedName!!),
dependencies(
JvmDependency(
@@ -18,16 +18,15 @@ import kotlin.script.experimental.misc.*
val myJvmConfigParams = jvmJavaHomeParams + with(ScriptCompileConfigurationProperties) {
listOf(
baseClass<MyScript>(),
dependencies(JvmDependency(scriptCompilationClasspathFromContext("scripting-jvm-simple-script" /* script library jar name */)))
)
}
fun evalFile(scriptFile: File): ResultWithDiagnostics<EvaluationResult> {
val scriptCompiler = JvmScriptCompiler(KJVMCompilerImpl(), DummyCompiledJvmScriptCache())
val environment = ScriptingEnvironment(
ScriptingEnvironmentProperties.getScriptingClass(JvmGetScriptingClass())
)
val scriptCompiler = JvmScriptCompiler(KJVMCompilerImpl(environment), DummyCompiledJvmScriptCache())
val scriptDefinition = ScriptDefinitionFromAnnotatedBaseClass(
KotlinType(MyScript::class),
environment