diff --git a/libraries/examples/scripting/jvm-maven-deps/host/src/org/jetbrains/kotlin/script/examples/jvm/resolve/maven/host/host.kt b/libraries/examples/scripting/jvm-maven-deps/host/src/org/jetbrains/kotlin/script/examples/jvm/resolve/maven/host/host.kt index 6073dde7783..5394dbd950b 100644 --- a/libraries/examples/scripting/jvm-maven-deps/host/src/org/jetbrains/kotlin/script/examples/jvm/resolve/maven/host/host.kt +++ b/libraries/examples/scripting/jvm-maven-deps/host/src/org/jetbrains/kotlin/script/examples/jvm/resolve/maven/host/host.kt @@ -7,22 +7,18 @@ package org.jetbrains.kotlin.script.examples.jvm.resolve.maven.host import org.jetbrains.kotlin.script.examples.jvm.resolve.maven.MyScriptWithMavenDeps import java.io.File -import kotlin.script.experimental.api.* -import kotlin.script.experimental.definitions.createScriptDefinitionFromAnnotatedBaseClass +import kotlin.script.experimental.api.EvaluationResult +import kotlin.script.experimental.api.ResultWithDiagnostics +import kotlin.script.experimental.api.ScriptCompileConfiguration +import kotlin.script.experimental.api.ScriptEvaluationEnvironment import kotlin.script.experimental.host.toScriptSource -import kotlin.script.experimental.jvm.defaultJvmScriptingEnvironment -import kotlin.script.experimental.jvmhost.BasicJvmScriptingHost +import kotlin.script.experimental.jvmhost.makeBasicHostFromAnnotatedScriptBaseClass fun evalFile(scriptFile: File): ResultWithDiagnostics { - val scriptDefinition = createScriptDefinitionFromAnnotatedBaseClass( - KotlinType(MyScriptWithMavenDeps::class), - defaultJvmScriptingEnvironment - ) - - val host = BasicJvmScriptingHost() + val host = makeBasicHostFromAnnotatedScriptBaseClass() return host.eval( - scriptFile.toScriptSource(), scriptDefinition, ScriptCompileConfiguration(), ScriptEvaluationEnvironment() + scriptFile.toScriptSource(), ScriptCompileConfiguration(), ScriptEvaluationEnvironment() ) } diff --git a/libraries/examples/scripting/jvm-simple-script/host/src/org/jetbrains/kotlin/script/examples/jvm/simple/host/host.kt b/libraries/examples/scripting/jvm-simple-script/host/src/org/jetbrains/kotlin/script/examples/jvm/simple/host/host.kt index a6b99ed522d..001ee20a6c4 100644 --- a/libraries/examples/scripting/jvm-simple-script/host/src/org/jetbrains/kotlin/script/examples/jvm/simple/host/host.kt +++ b/libraries/examples/scripting/jvm-simple-script/host/src/org/jetbrains/kotlin/script/examples/jvm/simple/host/host.kt @@ -7,28 +7,25 @@ package org.jetbrains.kotlin.script.examples.jvm.simple.host import org.jetbrains.kotlin.script.examples.jvm.simple.MyScript import java.io.File -import kotlin.script.experimental.api.* -import kotlin.script.experimental.definitions.createScriptDefinitionFromAnnotatedBaseClass +import kotlin.script.experimental.api.EvaluationResult +import kotlin.script.experimental.api.ResultWithDiagnostics +import kotlin.script.experimental.api.ScriptEvaluationEnvironment +import kotlin.script.experimental.api.buildScriptingProperties import kotlin.script.experimental.host.toScriptSource -import kotlin.script.experimental.jvm.defaultJvmScriptingEnvironment import kotlin.script.experimental.jvm.jvmDependenciesFromCurrentContext -import kotlin.script.experimental.jvmhost.BasicJvmScriptingHost +import kotlin.script.experimental.jvmhost.makeBasicHostFromAnnotatedScriptBaseClass fun evalFile(scriptFile: File): ResultWithDiagnostics { - val scriptDefinition = createScriptDefinitionFromAnnotatedBaseClass( - KotlinType(MyScript::class), - defaultJvmScriptingEnvironment - ) val additionalCompilationProperties = buildScriptingProperties { jvmDependenciesFromCurrentContext( "scripting-jvm-simple-script" /* script library jar name */ ) } - val host = BasicJvmScriptingHost() + val host = makeBasicHostFromAnnotatedScriptBaseClass() return host.eval( - scriptFile.toScriptSource(), scriptDefinition, additionalCompilationProperties, ScriptEvaluationEnvironment() + scriptFile.toScriptSource(), additionalCompilationProperties, ScriptEvaluationEnvironment() ) } diff --git a/libraries/scripting/common/src/kotlin/script/experimental/host/BasicScriptingHost.kt b/libraries/scripting/common/src/kotlin/script/experimental/host/BasicScriptingHost.kt index 6f583bbdb4e..bf2830e806c 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/host/BasicScriptingHost.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/host/BasicScriptingHost.kt @@ -23,6 +23,7 @@ import kotlinx.coroutines.experimental.runBlocking import kotlin.script.experimental.api.* abstract class BasicScriptingHost( + val scriptDefinition: ScriptDefinition, val compiler: ScriptCompiler, val evaluator: ScriptEvaluator ) { @@ -30,7 +31,6 @@ abstract class BasicScriptingHost( open fun eval( script: ScriptSource, - scriptDefinition: ScriptDefinition, compileConfiguration: ScriptCompileConfiguration, environment: ScriptEvaluationEnvironment ): ResultWithDiagnostics = diff --git a/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/BasicJvmScriptingHost.kt b/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/BasicJvmScriptingHost.kt index 5e5454535e5..03cc1e2aa65 100644 --- a/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/BasicJvmScriptingHost.kt +++ b/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/BasicJvmScriptingHost.kt @@ -5,10 +5,26 @@ package kotlin.script.experimental.jvmhost +import kotlin.script.experimental.api.KotlinType +import kotlin.script.experimental.api.ScriptDefinition import kotlin.script.experimental.api.ScriptEvaluator +import kotlin.script.experimental.api.ScriptingEnvironment +import kotlin.script.experimental.definitions.createScriptDefinitionFromAnnotatedBaseClass import kotlin.script.experimental.host.BasicScriptingHost +import kotlin.script.experimental.jvm.defaultJvmScriptingEnvironment open class BasicJvmScriptingHost( - compiler: JvmScriptCompiler = JvmScriptCompiler(), + scriptDefinition: ScriptDefinition, + hostEnvironment: ScriptingEnvironment = defaultJvmScriptingEnvironment, + compiler: JvmScriptCompiler = JvmScriptCompiler(hostEnvironment), evaluator: ScriptEvaluator = BasicJvmScriptEvaluator() -) : BasicScriptingHost(compiler, evaluator) +) : BasicScriptingHost(scriptDefinition, compiler, evaluator) + + +inline fun makeBasicHostFromAnnotatedScriptBaseClass( + hostEnvironment: ScriptingEnvironment = defaultJvmScriptingEnvironment +) = + BasicJvmScriptingHost( + createScriptDefinitionFromAnnotatedBaseClass(KotlinType(T::class), hostEnvironment), + hostEnvironment + )