Fix default host configuration property - make it not shared:
Shared instance is incorrect here and causes clashes when many definitions are loaded in the same process. Also make the diagnostics in case of clashes more verbose.
This commit is contained in:
+7
-4
@@ -25,9 +25,10 @@ val JvmScriptingHostConfigurationKeys.javaHome by PropertiesCollection.key<File>
|
||||
val ScriptingHostConfigurationKeys.jvm
|
||||
get() = JvmScriptingHostConfigurationBuilder()
|
||||
|
||||
val defaultJvmScriptingHostConfiguration = ScriptingHostConfiguration {
|
||||
getScriptingClass(JvmGetScriptingClass())
|
||||
}
|
||||
val defaultJvmScriptingHostConfiguration
|
||||
get() = ScriptingHostConfiguration {
|
||||
getScriptingClass(JvmGetScriptingClass())
|
||||
}
|
||||
|
||||
class JvmGetScriptingClass : GetScriptingClass {
|
||||
|
||||
@@ -52,7 +53,9 @@ class JvmGetScriptingClass : GetScriptingClass {
|
||||
if (dependencies == null) {
|
||||
dependencies = newDeps
|
||||
} else {
|
||||
if (newDeps != dependencies) throw IllegalArgumentException("scripting configuration dependencies changed")
|
||||
if (newDeps != dependencies) throw IllegalArgumentException(
|
||||
"scripting configuration dependencies changed:\nold: ${dependencies?.joinToString { (it as? JvmDependency)?.classpath.toString() }}\nnew: ${newDeps?.joinToString { (it as? JvmDependency)?.classpath.toString() }}"
|
||||
)
|
||||
}
|
||||
|
||||
if (!baseClassLoaderIsInitialized) {
|
||||
|
||||
Reference in New Issue
Block a user