Rename ScriptingEnvironment to ScriptingHostConfiguration

This commit is contained in:
Ilya Chernikov
2018-08-21 13:14:35 +03:00
parent 2fe5f78921
commit c2e6c0ed49
12 changed files with 72 additions and 61 deletions
@@ -8,24 +8,24 @@ package kotlin.script.experimental.jvmhost
import kotlin.script.experimental.api.KotlinType
import kotlin.script.experimental.api.ScriptCompilationConfiguration
import kotlin.script.experimental.api.ScriptEvaluator
import kotlin.script.experimental.api.ScriptingEnvironment
import kotlin.script.experimental.configuration.createScriptCompilationConfigurationFromAnnotatedBaseClass
import kotlin.script.experimental.host.ScriptingHostConfiguration
import kotlin.script.experimental.host.createScriptCompilationConfigurationFromAnnotatedBaseClass
import kotlin.script.experimental.host.BasicScriptingHost
import kotlin.script.experimental.jvm.defaultJvmScriptingEnvironment
open class BasicJvmScriptingHost(
hostEnvironment: ScriptingEnvironment = defaultJvmScriptingEnvironment,
compiler: JvmScriptCompiler = JvmScriptCompiler(hostEnvironment),
hostConfiguration: ScriptingHostConfiguration = defaultJvmScriptingEnvironment,
compiler: JvmScriptCompiler = JvmScriptCompiler(hostConfiguration),
evaluator: ScriptEvaluator = BasicJvmScriptEvaluator()
) : BasicScriptingHost(compiler, evaluator)
inline fun <reified T : Any> createBasicScriptCompilationConfigurationFromAnnotatedBaseClass(
hostEnvironment: ScriptingEnvironment = defaultJvmScriptingEnvironment,
hostConfiguration: ScriptingHostConfiguration = defaultJvmScriptingEnvironment,
noinline body: ScriptCompilationConfiguration.Builder.() -> Unit = {}
): ScriptCompilationConfiguration = createScriptCompilationConfigurationFromAnnotatedBaseClass(
KotlinType(T::class),
hostEnvironment,
hostConfiguration,
ScriptCompilationConfiguration::class,
body
)
@@ -38,7 +38,9 @@ import java.io.File
import java.net.URLClassLoader
import kotlin.script.experimental.api.*
import kotlin.script.experimental.dependencies.DependenciesResolver
import kotlin.script.experimental.host.ScriptingHostConfiguration
import kotlin.script.experimental.host.getMergedScriptText
import kotlin.script.experimental.host.getScriptingClass
import kotlin.script.experimental.jvm.JvmDependency
import kotlin.script.experimental.jvm.impl.BridgeDependenciesResolver
import kotlin.script.experimental.jvm.javaHome
@@ -74,7 +76,7 @@ class KJvmCompiledScript<out ScriptBase : Any>(
}
}
class KJvmCompilerImpl(val hostEnvironment: ScriptingEnvironment) : KJvmCompilerProxy {
class KJvmCompilerImpl(val hostConfiguration: ScriptingHostConfiguration) : KJvmCompilerProxy {
override fun compile(
script: ScriptSource,
@@ -104,13 +106,13 @@ class KJvmCompilerImpl(val hostEnvironment: ScriptingEnvironment) : KJvmCompiler
val kotlinCompilerConfiguration = org.jetbrains.kotlin.config.CompilerConfiguration().apply {
add(
JVMConfigurationKeys.SCRIPT_DEFINITIONS,
BridgeScriptDefinition(scriptCompilationConfiguration, hostEnvironment, ::updateClasspath)
BridgeScriptDefinition(scriptCompilationConfiguration, hostConfiguration, ::updateClasspath)
)
put<MessageCollector>(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, messageCollector)
put(JVMConfigurationKeys.RETAIN_OUTPUT_IN_MEMORY, true)
var isModularJava = false
getFirstFromChainOrNull(ScriptCompilationConfiguration.jvm.javaHome, updatedConfiguration, hostEnvironment)?.let {
getFirstFromChainOrNull(ScriptCompilationConfiguration.jvm.javaHome, updatedConfiguration, hostConfiguration)?.let {
put(JVMConfigurationKeys.JDK_HOME, it)
isModularJava = CoreJrtFileSystem.isModularJdk(it)
}
@@ -238,10 +240,10 @@ class ScriptDiagnosticsMessageCollector : MessageCollector {
internal class BridgeScriptDefinition(
scriptCompilationConfiguration: ScriptCompilationConfiguration,
hostEnvironment: ScriptingEnvironment,
hostConfiguration: ScriptingHostConfiguration,
updateClasspath: (List<File>) -> Unit
) : KotlinScriptDefinition(
hostEnvironment.getScriptingClass(
hostConfiguration.getScriptingClass(
scriptCompilationConfiguration.getOrError(ScriptCompilationConfiguration.baseClass),
BridgeScriptDefinition::class
)
@@ -5,14 +5,14 @@
package kotlin.script.experimental.jvmhost.impl
import kotlin.script.experimental.api.ScriptingEnvironment
import kotlin.script.experimental.host.ScriptingHostConfiguration
import kotlin.script.experimental.jvm.defaultJvmScriptingEnvironment
fun ScriptingEnvironment.withDefaults(): ScriptingEnvironment =
fun ScriptingHostConfiguration.withDefaults(): ScriptingHostConfiguration =
if (this == defaultJvmScriptingEnvironment || defaultJvmScriptingEnvironment.properties.all {
this.properties.containsKey(it.key)
}) {
this
} else {
ScriptingEnvironment(defaultJvmScriptingEnvironment, this)
ScriptingHostConfiguration(defaultJvmScriptingEnvironment, this)
}
@@ -8,6 +8,7 @@
package kotlin.script.experimental.jvmhost
import kotlin.script.experimental.api.*
import kotlin.script.experimental.host.ScriptingHostConfiguration
import kotlin.script.experimental.jvm.defaultJvmScriptingEnvironment
import kotlin.script.experimental.jvmhost.impl.KJvmCompilerImpl
import kotlin.script.experimental.jvmhost.impl.withDefaults
@@ -29,8 +30,8 @@ interface CompiledJvmScriptsCache {
}
open class JvmScriptCompiler(
hostEnvironment: ScriptingEnvironment = defaultJvmScriptingEnvironment,
val compilerProxy: KJvmCompilerProxy = KJvmCompilerImpl(hostEnvironment.withDefaults()),
hostConfiguration: ScriptingHostConfiguration = defaultJvmScriptingEnvironment,
val compilerProxy: KJvmCompilerProxy = KJvmCompilerImpl(hostConfiguration.withDefaults()),
val cache: CompiledJvmScriptsCache = CompiledJvmScriptsCache.NoCache
) : ScriptCompiler {