Прежде всего, я изучаю scala и новый для java-мира. Я хочу создать консоль и запустить эту консоль в качестве службы, которую вы могли бы запустить и остановить. Я смог запустить ConsoleReader в Актер, но я не знаю, как правильно остановить ConsoleReader. Вот код:
import eu.badmood.util.trace
import scala.actors.Actor._
import tools.jline.console.ConsoleReader
object Main {
def main(args:Array[String]){
//start the console
Console.start(message => {
//handle console inputs
message match {
case "exit" => Console.stop()
case _ => trace(message)
}
})
//try to stop the console after a time delay
Thread.sleep(2000)
Console.stop()
}
}
object Console {
private val consoleReader = new ConsoleReader()
private var running = false
def start(handler:(String)=>Unit){
running = true
actor{
while (running){
handler(consoleReader.readLine("\33[32m> \33[0m"))
}
}
}
def stop(){
//how to cancel an active call to ConsoleReader.readLine ?
running = false
}
}
Я также ищу советы относительно этого кода!