Apache Camel路由到接口(或者更确切地说是动态添加侦听器)

时间:2011-06-14 21:45:12

标签: apache-camel

我正在研究一个简单的用例,它允许客户端动态注册来自JMS端点的事件。我目前的实现如下:

...
public void addListener(Event event, Listener listener){
    try {
        camelContext.addRoutes(new RouteBuilder() {
            @Override
            public void configure() throws Exception {
                from(event.from()).bean(listener);
            }
        });
    } catch (Exception exception) {
        exception.printStackTrace();
    }

}
...

上面的event.from()将标识消息将被消耗的端点(“activemq:topic:market.stocks.update.ibm”),并且listener将是Listener接口的实现。

我设想了一个典型的调用:

notifications.addListener(updateEvent, new Listener(){
    void listen(){
        System.out.println("Hey! Something got updated");
    }
});

当然,除了驼峰路线之外,上述任何一个都没有作用,因为它有一个具体的bean作为接收者,因此驼峰语境无法启动。

动态添加bean端点的推荐方法是什么?

1 个答案:

答案 0 :(得分:2)