将camel路由配置返回xml

时间:2016-07-04 12:41:17

标签: java apache-camel

我想知道是否可以从camel上下文返回全部或部分路由 - 我想使用Java进行配置,然后检索它以将其导出到xml。

有没有办法实现这一目标?我还没有在文档中找到任何内容,我希望我错过了一些东西并且有办法。

4 个答案:

答案 0 :(得分:2)

是的,您正在寻找的是这个JMX MBean接口:
http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.html#dumpRoutesAsXml()

基本上,在Camel中默认启用JMX,因此您可以使用JConsole等JMX控制台连接到运行Camel的JVM。然后跟踪像org.apache.camel:context=...,type=context,name=...这样的CamelContext MBean并调用操作dumpRoutesAsXml()。并且您将获取Camel上下文中的所有路由为XML。

有关Camel和JMX的更多信息,您也可以参考此文档:
http://camel.apache.org/camel-jmx.html

答案 1 :(得分:1)

您可以使用

    List<RouteDefinition> routes = camelContext.getRouteDefinitions();
    RoutesDefinition def = new RoutesDefinition();
    def.setRoutes(routes);
    String xml = ModelHelper.dumpModelAsXml(camelContext, def);

如果您想要替换属性占位符,请参阅ManagedCamelContext.dumpRoutesAsXml方法

答案 2 :(得分:0)

好的,你的问题仍然不明确。

但是有两种选择。

  1. Blueprint容器接受热部署,这意味着您只需将Camel XML放入文件夹即可启动该路径。它还取决于您尝试集成的系统类型,例如:为数据库相关的集成执行此操作有点复杂。

  2. 您可以使用路径构建器,基本上您可以在运行时创建路径并启动路径。

  3. 请发布有关您问题的更多详情,以便更好地了解。如果您能清楚地解释您的要求,您可能甚至不需要两种方法。

答案 3 :(得分:0)

你可以使用 hawtio 来管理骆驼路由,你可以在他们的 xml 表单中看到路由,这里我在 java dsl 上写了我的路由,可以看到他们的 xml 表单 enter image description here

或者你可以将路由转储为 xml enter image description here