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

Jan*_*anM 6 java apache-camel

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

ModelCamelContext modelContext = context.adapt(ModelCamelContext.class);        
RouteDefinition route = modelContext.getRouteDefinition(routeId);
Run Code Online (Sandbox Code Playgroud)

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

将 org.apache.camel.CamelContext 中的 adjustment() 替换为 getCamelContextExtension

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

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

Jan*_*anM 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);
Run Code Online (Sandbox Code Playgroud)

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

var model = context.getCamelContextExtension().getContextPlugin(Model.class);
Run Code Online (Sandbox Code Playgroud)