Apache camel 如何在Spring DSL中动态设置上下文ID?

Apache camel 如何在Spring DSL中动态设置上下文ID?,apache-camel,osgi,jbossfuse,spring-dsl,Apache Camel,Osgi,Jbossfuse,Spring Dsl,如何在spring DSL中动态设置上下文id?考虑一下我的场景, Bundle A:我在其中设置id属性的上下文,比如simplectx。这个包有一些其他的实用程序bean,这些bean在其他包中使用 Bundle B:导入一个上下文文件,我在其中定义了camel上下文。在B中,我定义了B特定路线 Bundle C:导入一个上下文文件,我在其中定义了camel上下文。在C中,我定义了C特定的路由 现在,bundle B和C依赖于bundle A。现在,如果我使用上下文列表命令,它将列出简单的c

如何在spring DSL中动态设置上下文id?考虑一下我的场景,

Bundle A:我在其中设置id属性的上下文,比如simplectx。这个包有一些其他的实用程序bean,这些bean在其他包中使用

Bundle B:导入一个上下文文件,我在其中定义了camel上下文。在B中,我定义了B特定路线

Bundle C:导入一个上下文文件,我在其中定义了camel上下文。在C中,我定义了C特定的路由

现在,bundle B和C依赖于bundle A。现在,如果我使用上下文列表命令,它将列出简单的ctx。这意味着束B和束C具有相同的上下文id。 我想实现id应该像simple-ctx-B一样和simple-ctx-C 没有在B或C中定义上下文


感谢您的建议和反馈。

这是不可能的。
id
是一个固定值。但是,JMX命名可以采用动态值,如计数器、包ID等

听起来好像你想要一个前缀是其父代名字的命名


也不是在所有bundle中都有
camelContext
。您可以在A中使用
路由
,因此这些路由包含在与B或C相同的
上下文
中:

请提供导入上下文文件的代码示例。正如我所知,您只能在osgi捆绑包之间共享对象,而不能共享上下文文件。为什么不保留单独的上下文,并将所有共享bean放入它们自己的捆绑包中呢?这是我的需求和体系结构设计。我现在不能改变它,因为它对现有的服务有巨大的影响。这就是我们希望在运行时修改camel上下文id的原因。