128.3. 使用方法

ルートのコンシューマー側で guava-eventbus コンポーネントを使用すると、Guava EventBus に送信されたメッセージがキャプチャーされ、Camel ルートに転送されます。Guava EventBus コンシューマーは、入力メッセージを 非同期的に 処理します。

SimpleRegistry registry = new SimpleRegistry();
EventBus eventBus = new EventBus();
registry.put("busName", eventBus);
CamelContext camel = new DefaultCamelContext(registry);

from("guava-eventbus:busName").to("seda:queue");

eventBus.post("Send me to the SEDA queue.");

ルートのプロデューサー側で guava-eventbus コンポーネントを使用すると、Camel 交換の本体が Guava EventBus インスタンスに転送されます。

SimpleRegistry registry = new SimpleRegistry();
EventBus eventBus = new EventBus();
registry.put("busName", eventBus);
CamelContext camel = new DefaultCamelContext(registry);

from("direct:start").to("guava-eventbus:busName");

ProducerTemplate producerTemplate = camel.createProducerTemplate();
producer.sendBody("direct:start", "Send me to the Guava EventBus.");

eventBus.register(new Object(){
  @Subscribe
  public void messageHander(String message) {
    System.out.println("Message received from the Camel: " + message);
  }
});