Apache Camel mockEndpoints()模拟所有端点,而不是仅建议路由中的端点

时间:2019-02-18 22:44:27

标签: java apache-camel

我正在尝试如下建议和模拟一条特定路线的终点:

RouteDefinition route = context.getRouteDefinition("process-search");
        route.adviceWith(context, new AdviceWithRouteBuilder() {
            @Override
            public void configure() throws Exception {
                mockEndpoints();
            }
        });

在这里,我希望mockEndpoints仅模拟建议的process-search路由内的端点,但是我看到正在建议Camel Context中的端点,就像我在使用context.getRouteDefinitions()然后分别建议每条路线。

来自mockEndpoints() JavaDocs-

  

模拟路由中的所有端点。

我假设端点未与特定端点关联,所以它们已被重用。但是在那种情况下,如何将建议仅限于特定路由的端点,而无需手动明确引用它们。

骆驼的版本是2.17.0.redhat-630310

1 个答案:

答案 0 :(得分:0)

javadoc有点误解,它实际上是在模拟所有路由的所有端点。您只能使用过滤器,通配符等自动模拟。我们将为将来的Camel版本更新Javadoc。

您只想限制路由中端点的具体原因是什么?端点可以在其他路由之间共享,例如将路由链接在一起时等。模拟其他端点进行测试也不会影响这些端点。