Rename ScriptDefinition to ScriptCompileConfiguration

This commit is contained in:
Ilya Chernikov
2018-08-20 19:33:28 +03:00
parent 98c0a3bdaa
commit bd8f2a81e9
23 changed files with 146 additions and 135 deletions
@@ -20,7 +20,7 @@ import kotlin.script.experimental.jvm.compat.mapToLegacyScriptReportPosition
import kotlin.script.experimental.jvm.compat.mapToLegacyScriptReportSeverity
class BridgeDependenciesResolver(
val scriptDefinition: ScriptDefinition,
val scriptCompilationConfiguration: ScriptCompilationConfiguration,
val onClasspathUpdated: (List<File>) -> Unit = {}
) : AsyncDependenciesResolver {
@@ -39,12 +39,12 @@ class BridgeDependenciesResolver(
)
)
val refineFn = scriptDefinition[ScriptDefinition.refineConfigurationOnAnnotations]?.handler
val refineFn = scriptCompilationConfiguration[ScriptCompilationConfiguration.refineConfigurationOnAnnotations]?.handler
val refinedConfiguration =
if (refineFn == null) null
else {
val res = refineFn(
ScriptDataFacade(scriptContents.toScriptSource(), scriptDefinition, processedScriptData)
ScriptDataFacade(scriptContents.toScriptSource(), scriptCompilationConfiguration, processedScriptData)
)
when (res) {
is ResultWithDiagnostics.Failure ->
@@ -56,11 +56,11 @@ class BridgeDependenciesResolver(
}
}
val newClasspath = refinedConfiguration?.get(ScriptDefinition.dependencies)
val newClasspath = refinedConfiguration?.get(ScriptCompilationConfiguration.dependencies)
?.flatMap { (it as JvmDependency).classpath } ?: emptyList()
if (newClasspath.isNotEmpty()) {
val oldClasspath =
scriptDefinition[ScriptDefinition.dependencies]
scriptCompilationConfiguration[ScriptCompilationConfiguration.dependencies]
?.flatMap { (it as JvmDependency).classpath } ?: emptyList()
if (newClasspath != oldClasspath) {
onClasspathUpdated(newClasspath)
@@ -69,7 +69,7 @@ class BridgeDependenciesResolver(
DependenciesResolver.ResolveResult.Success(
ScriptDependencies(
classpath = newClasspath, // TODO: maybe it should return only increment from the initial config
imports = scriptDefinition[ScriptDefinition.defaultImports]?.toList() ?: emptyList()
imports = scriptCompilationConfiguration[ScriptCompilationConfiguration.defaultImports]?.toList() ?: emptyList()
),
diagnostics
)
@@ -15,31 +15,31 @@ data class JvmDependency(val classpath: List<File>) : ScriptDependency {
constructor(vararg classpathEntries: File) : this(classpathEntries.asList())
}
interface JvmScriptDefinitionKeys
interface JvmScriptCompilationConfigurationKeys
open class JvmScriptDefinitionBuilder : PropertiesCollection.Builder(), JvmScriptDefinitionKeys {
companion object : PropertiesCollection.Builder.BuilderExtension<JvmScriptDefinitionBuilder>, JvmScriptDefinitionKeys {
override fun get() = JvmScriptDefinitionBuilder()
open class JvmScriptCompilationConfigurationBuilder : PropertiesCollection.Builder(), JvmScriptCompilationConfigurationKeys {
companion object : PropertiesCollection.Builder.BuilderExtension<JvmScriptCompilationConfigurationBuilder>, JvmScriptCompilationConfigurationKeys {
override fun get() = JvmScriptCompilationConfigurationBuilder()
}
}
fun JvmScriptDefinitionBuilder.dependenciesFromCurrentContext(vararg libraries: String, wholeClasspath: Boolean = false) {
fun JvmScriptCompilationConfigurationBuilder.dependenciesFromCurrentContext(vararg libraries: String, wholeClasspath: Boolean = false) {
dependenciesFromClassloader(*libraries, wholeClasspath = wholeClasspath)
}
fun JvmScriptDefinitionBuilder.dependenciesFromClassloader(
fun JvmScriptCompilationConfigurationBuilder.dependenciesFromClassloader(
vararg libraries: String,
classLoader: ClassLoader = Thread.currentThread().contextClassLoader,
wholeClasspath: Boolean = false
) {
ScriptDefinition.dependencies.append(
ScriptCompilationConfiguration.dependencies.append(
JvmDependency(scriptCompilationClasspathFromContext(*libraries, classLoader = classLoader, wholeClasspath = wholeClasspath))
)
}
val JvmScriptDefinitionKeys.javaHome by PropertiesCollection.keyCopy(ScriptingEnvironment.jvm.javaHome)
val JvmScriptCompilationConfigurationKeys.javaHome by PropertiesCollection.keyCopy(ScriptingEnvironment.jvm.javaHome)
@Suppress("unused")
val ScriptDefinitionKeys.jvm
get() = JvmScriptDefinitionBuilder
val ScriptCompilationConfigurationKeys.jvm
get() = JvmScriptCompilationConfigurationBuilder