Apache Camel Adapt() 方法在版本 4 中被删除

问题描述 投票:0回答:1

在从 Apache Camel 3 迁移到版本 4 时,我遇到了这样一个事实:adapt() 方法已从 Camel 上下文中删除,并且不再可能适应 ModelCamelContext

ModelCamelContext modelContext = context.adapt(ModelCamelContext.class);        
RouteDefinition route = modelContext.getRouteDefinition(routeId);

官方迁移指南只提到了这一点

用 getCamelContextExtension 替换了 org.apache.camel.CamelContext 中的 Adapt()

但遗憾的是没有详细说明 API 如何兼容。我正在努力解决一个需要动态操作路由定义的用例,这对于旧的 ModelCamelContext 方法来说相当简单。 我需要获取路由定义,将其从上下文中删除,再次添加不同的路由并在其上操作输出(getOutputs 方法)。

有什么想法可以在 Apache Camel 版本 4 中实现这一点吗?

java apache-camel
1个回答
0
投票

Camel 迁移指南 https://camel.apache.org/manual/camel-4-migration-guide.html 提到以下一段迁移代码:

Removed getExtension from the interface CamelContext

Use getCamelContextExtension instead. For example ManagedCamelContext managed = context.getCamelContextExtension().getContextPlugin(ManagedCamelContext.class);

基于此,我们能够通过以下方式获得模型扩展:

var model = context.getCamelContextExtension().getContextPlugin(Model.class);
© www.soinside.com 2019 - 2024. All rights reserved.