Camel 2.x升级3.x获取FromDefinition及方法迁移位置咨询
Camel 2.x 到 3.x 迁移相关问题解答
如何在Camel 3.x中获取FromDefinition
Camel 3.x对核心API做了分层重构,将运行态的org.apache.camel.Route实例和定义态的路由元数据做了明确拆分,原来Route接口下的getRouteContext()方法已经被移除。你可以通过以下代码获取FromDefinition以及对应的uri:
// 0. 若未持有CamelContext,可直接从Route实例获取 CamelContext camelContext = route.getCamelContext(); // 1. 首先从Route实例获取路由ID String routeId = route.getId(); // 2. 从CamelContext中获取对应路由的定义对象 RouteDefinition routeDefinition = camelContext.getRouteDefinition(routeId); // 3. 获取FromDefinition FromDefinition fromDefinition = routeDefinition.getInput(); // 4. 对应获取原代码中的uri String fromUri = fromDefinition.getUri();
如何查询Camel 3.x迁移后的方法对应位置
- 官方迁移文档中按模块梳理了全量API变更、废弃方法的替代方案,你可以直接按类名、方法名搜索对应的变更说明
- 你可以查看Camel 3.x的官方Javadoc,2.x中被移除/调整的方法,会在弃用注释中标注对应的替代API路径
- 开发阶段你也可以直接在IDE中检索核心类的相关方法,路由定义相关的API都收敛在
RouteDefinition类下,运行态相关API保留在Route接口下,按业务场景检索对应类的方法即可快速定位
内容的提问来源于stack exchange,提问作者piotrassz
相关产品推荐
相关产品推荐

