在Java中运行时添加camel路由

Him*_*dav 11 spring apache-camel

如何在Java中运行时添加camel路由?我找到了一个Grails示例,但我已经用Java实现了它.

我的applicationContext.xml已经有一些预定义的静态路由,我想在运行时添加一些动态路由.可能吗?因为包含动态路由的唯一方法是编写route.xml然后将路由定义加载到上下文.它将如何在现有的静态路由上运行? 在运行时路由

Ben*_*Day 17

你可以简单地在CamelContext上调用几个不同的API来添加路由......就像这样

context.addRoutes(new MyDynamcRouteBuilder(context, "direct:foo", "mock:foo"));
....
private static final class MyDynamcRouteBuilder extends RouteBuilder {
    private final String from;
    private final String to;

    private MyDynamcRouteBuilder(CamelContext context, String from, String to) {
        super(context);
        this.from = from;
        this.to = to;
    }

    @Override
    public void configure() throws Exception {
        from(from).to(to);
    }
}
Run Code Online (Sandbox Code Playgroud)

看完这个单元测试的完整例子......

https://svn.apache.org/repos/asf/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/AddRoutesAtRuntimeTest.java

  • @Petter 听起来很棒,有链接吗?:) (2认同)
  • @Petter,对我来说也很棒.有机会把它变成开源吗? (2认同)