Make definition a part of the basic hosts, simplify usages
This commit is contained in:
+7
-11
@@ -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<EvaluationResult> {
|
||||
val scriptDefinition = createScriptDefinitionFromAnnotatedBaseClass(
|
||||
KotlinType(MyScriptWithMavenDeps::class),
|
||||
defaultJvmScriptingEnvironment
|
||||
)
|
||||
|
||||
val host = BasicJvmScriptingHost()
|
||||
val host = makeBasicHostFromAnnotatedScriptBaseClass<MyScriptWithMavenDeps>()
|
||||
|
||||
return host.eval(
|
||||
scriptFile.toScriptSource(), scriptDefinition, ScriptCompileConfiguration(), ScriptEvaluationEnvironment()
|
||||
scriptFile.toScriptSource(), ScriptCompileConfiguration(), ScriptEvaluationEnvironment()
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+7
-10
@@ -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<EvaluationResult> {
|
||||
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<MyScript>()
|
||||
|
||||
return host.eval(
|
||||
scriptFile.toScriptSource(), scriptDefinition, additionalCompilationProperties, ScriptEvaluationEnvironment()
|
||||
scriptFile.toScriptSource(), additionalCompilationProperties, ScriptEvaluationEnvironment()
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -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<EvaluationResult> =
|
||||
|
||||
+18
-2
@@ -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 <reified T : Any> makeBasicHostFromAnnotatedScriptBaseClass(
|
||||
hostEnvironment: ScriptingEnvironment = defaultJvmScriptingEnvironment
|
||||
) =
|
||||
BasicJvmScriptingHost(
|
||||
createScriptDefinitionFromAnnotatedBaseClass(KotlinType(T::class), hostEnvironment),
|
||||
hostEnvironment
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user