【问题标题】:How to dynamically setting CamelContext ID in Spring DSL?如何在 Spring DSL 中动态设置 CamelContext ID?
【发布时间】:2016-09-01 17:14:39
【问题描述】:

如何在spring DSL中动态设置camelContext id?像这样考虑我的场景,

Bundle A:在我设置 id 属性的地方拥有 camelContext,比如 simple-ctx。这个包还有一些其他的实用程序 bean,它们在其他包中使用。

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

Bundle C:导入我定义骆驼上下文的上下文文件。在 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。

感谢您的建议和反馈。

【问题讨论】:

  • 能否请您提供导入上下文文件的代码示例。据我所知,您只能在 osgi 包之间共享对象,但不能在上下文文件之间共享对象
  • 为什么不保留单独的上下文并将所有共享 bean 放入自己的包中?
  • 这是我的要求和架构设计。我现在无法更改它,因为对现有服务有巨大影响。这就是想要在运行时修改骆驼上下文 id 的原因。

标签: apache-camel osgi jbossfuse spring-dsl


【解决方案1】:

这是不可能的。 id 是一个固定值。但是,JMX 命名可以采用动态值,例如计数器、捆绑包 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    • 2017-11-16
    • 2015-12-20
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 2013-10-17
    相关资源
    最近更新 更多