Nikky
10/21/2018, 3:08 PM@KotlinScript
annotation on the base class with a configuration object, and then construct a configuration from it.
And then BasicJvmScriptingHost
now have all needed defaults. So the resulting code may look like:
object MyScriptConfiguration : ScriptCompilationConfiguration({
defaultImports("org.apache.camel")
jvm {
dependenciesFromCurrentContext(wholeClasspath = true)
javaHome(File("/opt/data/sfw/lang/java/8"))
}
})
@KotlinScript(compilationConfiguration = MyScriptConfiguration::class)
abstract class MyScript(var name: String) {
fun say(message : String) {
println(name + ":" + message)
}
}
fun main(args: Array<String>) {
val script = """
say("hello kts!")
"""
val config = createJvmCompilationConfigurationFromTemplate<MyScript>()
val evalu = ScriptEvaluationConfiguration {
constructorArgs("injected")
}
val result = BasicJvmScriptingHost().eval(script.toScriptSource(), config, evalu)
for (report in result.reports) {
println(report)
}
}
Posted in #scripting