Sorting default jvm props and basic implementations

This commit is contained in:
Ilya Chernikov
2018-07-23 13:42:39 +02:00
parent fe2a11142e
commit 70ec004aaa
19 changed files with 110 additions and 133 deletions
@@ -10,25 +10,16 @@ import java.io.File
import kotlin.script.experimental.api.*
import kotlin.script.experimental.definitions.createScriptDefinitionFromAnnotatedBaseClass
import kotlin.script.experimental.host.toScriptSource
import kotlin.script.experimental.jvm.DummyCompiledJvmScriptCache
import kotlin.script.experimental.jvm.JvmBasicScriptingHost
import kotlin.script.experimental.jvm.JvmGetScriptingClass
import kotlin.script.experimental.jvm.JvmScriptCompiler
import kotlin.script.experimental.jvm.runners.BasicJvmScriptEvaluator
import kotlin.script.experimental.jvmhost.impl.KJVMCompilerImpl
import kotlin.script.experimental.misc.invoke
import kotlin.script.experimental.jvm.defaultJvmScriptingEnvironment
import kotlin.script.experimental.jvmhost.BasicJvmScriptingHost
fun evalFile(scriptFile: File): ResultWithDiagnostics<EvaluationResult> {
val environment = ScriptingEnvironment(
ScriptingEnvironmentProperties.getScriptingClass(JvmGetScriptingClass())
)
val scriptCompiler = JvmScriptCompiler(KJVMCompilerImpl(environment), DummyCompiledJvmScriptCache())
val scriptDefinition = createScriptDefinitionFromAnnotatedBaseClass(
KotlinType(MyScriptWithMavenDeps::class),
environment
defaultJvmScriptingEnvironment
)
val host = JvmBasicScriptingHost(scriptCompiler, BasicJvmScriptEvaluator())
val host = BasicJvmScriptingHost()
return host.eval(
scriptFile.toScriptSource(), scriptDefinition, ScriptCompileConfiguration(), ScriptEvaluationEnvironment()
@@ -13,7 +13,10 @@ import kotlin.script.dependencies.ScriptContents
import kotlin.script.dependencies.ScriptDependenciesResolver
import kotlin.script.experimental.annotations.KotlinScript
import kotlin.script.experimental.api.*
import kotlin.script.experimental.jvm.*
import kotlin.script.experimental.jvm.JvmDependency
import kotlin.script.experimental.jvm.compat.mapLegacyDiagnosticSeverity
import kotlin.script.experimental.jvm.compat.mapLegacyScriptPosition
import kotlin.script.experimental.jvm.jvmDependenciesFromCurrentContext
import kotlin.script.experimental.misc.invoke
@KotlinScript(
@@ -26,7 +29,6 @@ abstract class MyScriptWithMavenDeps {
object MyScriptProperties : ScriptingProperties() {
override fun setup() {
include(jvmJavaHomeScriptingProperties)
scriptDefinition {
defaultImports<DependsOn>()
defaultImports(Repository::class)
@@ -6,36 +6,29 @@
package org.jetbrains.kotlin.script.examples.jvm.simple.host
import org.jetbrains.kotlin.script.examples.jvm.simple.MyScript
import org.jetbrains.kotlin.script.util.scriptCompilationClasspathFromContext
import java.io.File
import kotlin.script.experimental.api.*
import kotlin.script.experimental.definitions.createScriptDefinitionFromAnnotatedBaseClass
import kotlin.script.experimental.host.toScriptSource
import kotlin.script.experimental.jvm.*
import kotlin.script.experimental.jvm.runners.BasicJvmScriptEvaluator
import kotlin.script.experimental.jvmhost.impl.KJVMCompilerImpl
import kotlin.script.experimental.misc.invoke
val myJvmConfigParams = jvmJavaHomeParams + with(ScriptDefinitionProperties) {
listOf(
dependencies(JvmDependency(scriptCompilationClasspathFromContext("scripting-jvm-simple-script" /* script library jar name */)))
)
}
import kotlin.script.experimental.jvm.defaultJvmScriptingEnvironment
import kotlin.script.experimental.jvm.jvmDependenciesFromCurrentContext
import kotlin.script.experimental.jvmhost.BasicJvmScriptingHost
fun evalFile(scriptFile: File): ResultWithDiagnostics<EvaluationResult> {
val environment = ScriptingEnvironment(
ScriptingEnvironmentProperties.getScriptingClass(JvmGetScriptingClass())
)
val scriptCompiler = JvmScriptCompiler(KJVMCompilerImpl(environment), DummyCompiledJvmScriptCache())
val scriptDefinition = createScriptDefinitionFromAnnotatedBaseClass(
KotlinType(MyScript::class),
environment
defaultJvmScriptingEnvironment
)
val additionalCompilationProperties = buildScriptingProperties {
jvmDependenciesFromCurrentContext(
"scripting-jvm-simple-script" /* script library jar name */
)
}
val host = JvmBasicScriptingHost(scriptCompiler, BasicJvmScriptEvaluator())
val host = BasicJvmScriptingHost()
return host.eval(
scriptFile.toScriptSource(), scriptDefinition, ScriptCompileConfiguration(myJvmConfigParams), ScriptEvaluationEnvironment()
scriptFile.toScriptSource(), scriptDefinition, additionalCompilationProperties, ScriptEvaluationEnvironment()
)
}