如何在Spring DSL中动态设置CamelContext ID?

时间:2016-09-01 17:14:39

标签: apache-camel osgi jbossfuse spring-dsl

如何在spring DSL中动态设置camelContext id?考虑我的情景,

Bundle A:有camelContext,我设置id属性说simple-ctx。这个bundle有一些其他的实用程序bean,在其他一些bundle中使用。

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

Bundle C:导入我定义了camel上下文的上下文文件。在C中我定义了C特定路线

现在,bundle B和C依赖于Bundle A.现在,如果我执行context-list命令,它会列出simple-ctx。这意味着Bundle B和C具有相同的camelContext id。 我希望实现id应该像simple-ctx-B和simple-ctx-C,而不用在B或C中定义camelContext。

感谢您的建议和反馈。

1 个答案:

答案 0 :(得分:3)

这是不可能的。 id是固定值。但是,JMX命名可以采用动态值,例如计数器,bundle id等。

http://camel.apache.org/camel-jmx.html

听起来好像你想让A有一个命名,其中前缀是其父级的名称?

而不是在所有捆绑中都有camelContext。您可以在A中使用routes,因此这些路线包含在与B或C相同的camelContext中:http://camel.apache.org/how-do-i-import-routes-from-other-xml-files.html