Как отменить публикацию Akka Camel? - PullRequest
1 голос
/ 25 сентября 2011

Мой потребительский актер 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

  }
}
...