Мой потребительский актер Camel не будет опубликован после того, как я отправлю ему сообщение. Это предотвращает закрытие приложения. Это работает, если я просто запускаю и останавливаю актера без отправки каких-либо сообщений. Что мне здесь не хватает?
Пример кода:
import akka.actor.Actor
import Actor._
import akka.event.EventHandler
import akka.camel.{CamelContextManager, CamelServiceManager, Message, Consumer}
object Test {
def main(args: Array[String]): Unit = {
val consumer = actorOf(new Actor with Consumer {
def endpointUri = "direct:test"
def receive = {
case msg: Message => println(msg.bodyAs[String])
}
})
val service = CamelServiceManager.startCamelService
service.awaitEndpointActivation(1) {
consumer.start()
}
// If I comment out this row, it works
CamelContextManager.mandatoryTemplate.requestBody("direct:test", "testing")
service.awaitEndpointDeactivation(1) {
consumer.stop()
}
service.stop
}
}