[orx-olive] add resources watcher to oliveProgram

This commit is contained in:
Ricardo Matias
2020-08-24 19:29:27 +01:00
committed by Edwin Jakobs
parent 02e5121efe
commit 497c903800

View File

@@ -7,8 +7,8 @@ import java.nio.file.Files
import java.nio.file.Paths import java.nio.file.Paths
import kotlin.streams.toList import kotlin.streams.toList
open class OliveProgram(private val sourceLocation: String, private val scriptHost: OliveScriptHost) : Program() { open class OliveProgram(private val sourceLocation: String, private val scriptHost: OliveScriptHost, resources: Resources?) : Program() {
val olive = extend(Olive<OliveProgram>(scriptMode = ScriptMode.OLIVE_PROGRAM)) { val olive = extend(Olive<OliveProgram>(scriptMode = ScriptMode.OLIVE_PROGRAM, resources = resources)) {
script = sourceLocation script = sourceLocation
scriptHost = this@OliveProgram.scriptHost scriptHost = this@OliveProgram.scriptHost
} }
@@ -20,7 +20,7 @@ fun stackRootClassName(thread: Thread = Thread.currentThread(), sanitize: Boolea
return if (sanitize) rootClass.replace(Regex("Kt$"), "") else rootClass return if (sanitize) rootClass.replace(Regex("Kt$"), "") else rootClass
} }
fun ApplicationBuilder.oliveProgram(scriptHost: OliveScriptHost = OliveScriptHost.JSR223_REUSE, init: OliveProgram.() -> Unit): OliveProgram { fun ApplicationBuilder.oliveProgram(scriptHost: OliveScriptHost = OliveScriptHost.JSR223_REUSE, resources: Resources? = null, init: OliveProgram.() -> Unit): OliveProgram {
val rootClassName = stackRootClassName(sanitize = true).split(".").last() val rootClassName = stackRootClassName(sanitize = true).split(".").last()
var sourceLocation = "src/main/kotlin/$rootClassName.kt" var sourceLocation = "src/main/kotlin/$rootClassName.kt"
@@ -34,7 +34,7 @@ fun ApplicationBuilder.oliveProgram(scriptHost: OliveScriptHost = OliveScriptHos
error("multiple source candidates found: $otherCandidates") error("multiple source candidates found: $otherCandidates")
} }
} }
program = object : OliveProgram(sourceLocation, scriptHost) { program = object : OliveProgram(sourceLocation, scriptHost, resources) {
override fun setup() { override fun setup() {
super.setup() super.setup()
init() init()