diff --git a/libraries/examples/scripting/jvm-maven-deps/script/src/org/jetbrains/kotlin/script/examples/jvm/resolve/maven/scriptDef.kt b/libraries/examples/scripting/jvm-maven-deps/script/src/org/jetbrains/kotlin/script/examples/jvm/resolve/maven/scriptDef.kt index b08b49750a6..473756ab8ed 100644 --- a/libraries/examples/scripting/jvm-maven-deps/script/src/org/jetbrains/kotlin/script/examples/jvm/resolve/maven/scriptDef.kt +++ b/libraries/examples/scripting/jvm-maven-deps/script/src/org/jetbrains/kotlin/script/examples/jvm/resolve/maven/scriptDef.kt @@ -25,7 +25,7 @@ abstract class MyScriptWithMavenDeps { } object MyScriptProperties : ScriptingProperties() { - init { + override fun setup() { include(jvmJavaHomeScriptingProperties) scriptDefinition { defaultImports() diff --git a/libraries/scripting/common/src/kotlin/script/experimental/api/propertiesDsl.kt b/libraries/scripting/common/src/kotlin/script/experimental/api/propertiesDsl.kt index 672b25ced1c..660f0fe2b3d 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/api/propertiesDsl.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/api/propertiesDsl.kt @@ -33,6 +33,8 @@ open class ScriptingProperties(body: ScriptingProperties.() -> Unit = {}) { body() } + open fun setup() {} + internal fun makePropertyBag(): ChainedPropertyBag = ChainedPropertyBag.createOptimized(parentPropertiesBag ?: parentPropertiesBuilder?.makePropertyBag(), data) diff --git a/libraries/scripting/common/src/kotlin/script/experimental/definitions/definitionFromAnnotation.kt b/libraries/scripting/common/src/kotlin/script/experimental/definitions/definitionFromAnnotation.kt index 98a52adb037..60b63db0428 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/definitions/definitionFromAnnotation.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/definitions/definitionFromAnnotation.kt @@ -61,7 +61,7 @@ fun createScriptDefinitionFromAnnotatedBaseClass( } fun scriptingPropsInstance(kclass: KClass): ScriptingProperties = try { - kclass.objectInstance ?: kclass.createInstance() + kclass.objectInstance ?: kclass.createInstance().also { it.setup() } } catch (e: Throwable) { throw IllegalArgumentException(ILLEGAL_CONFIG_ANN_ARG, e) }