我正在使用camel 2.15.1并且我尝试使用adviceWith()但我不断收到弃用警告。以下是相关摘录:
routeDefinition.adviceWith(camelContext, new AdviceWithRouteBuilder(){
@Override
public void configure() throws Exception {
interceptSendToEndpoint("direct:doSomething")
.skipSendToOriginalEndpoint()
}
});
我知道我可以通过将camelContext强制转换为ModelCamelContext来避免弃用警告,但是像这样的强制转换会有一些气味。正在以正确的方式处理它吗?
答案 0 :(得分:4)
这些弃用在将来的版本中已被删除,因为我们真的只希望人们从CamelContext
访问他们所需的所有内容。
但是它有一个自适应方法,所以你可以适应没有类型转换的类型
ModelCamelContext mcc = context.adapt(ModelCamelContext.class);
答案 1 :(得分:3)
这解决了我的单元测试的问题:
public void testMe() throws Exception{
CamelContext context = this.context();
// Get the route that we're after by ID.
RouteDefinition route = context.getRouteDefinition("<routeID>");
//override the default send endpoint.
route.adviceWith(context.adapt(ModelCamelContext.class), new RouteBuilder() {
public void configure() throws Exception {
interceptSendToEndpoint("mock:overrideme")
.skipSendToOriginalEndpoint()
.to("mock:inbound");
}
});
}