将Camel Context定义拆分为多个文件/ jar

时间:2015-04-27 15:38:27

标签: apache-camel

我需要将camel上下文定义拆分为多个文件/项目。我想要一个只有全局配置的文件(比如dataFormats,onCompletion handler,onException handler,interceptFrom,operation routes)和一个建立在它之上的文件,主要定义路径。

我还没有找到任何方法来调整/扩展在另一个文件中完成的CamelContext定义。有办法吗?

看起来像这样:

驼core.xml:

<camelContext id="camelContext">
    <interceptFrom>
        <log message="{$routeId} started" />
    </interceptFrom>
</camelContext>

驼routes.xml:

<camelContext id="camelContext">
    <route id="camelRoute1">
        <from uri="vm:foo" />
        <log message="camelRoute1 completed" />
    </route>
</camelContext>

运行camelRoute1时所需的输出:

camelRoute1 started
camelRoute1 completed

2 个答案:

答案 0 :(得分:2)

我找到了针对我的案例的Java DSL解决方法:

  1. 在camelContext定义中,我设置了autoStart =&#34; false&#34;
  2. 在我应该使用全局骆驼定义的项目中,我添加了一个实现ApplicationListenerCamelContextAware
  3. 的spring bean
  4. 在这个bean中,我从camel上下文中获取所有路由定义 - 包括在另一个项目/上下文文件中定义的路由定义。因此,我循环遍历所有路径定义,并使用Camel adviceWith功能添加interceptFrom,onException等。
  5. 然后我用context.startAllRoutes()。
  6. 启动所有路由

    有效: - )

答案 1 :(得分:-1)

可以这样做。 使用<import resource="myCoolRoutes.xml"/>

请参阅文档 - http://camel.apache.org/how-do-i-import-routes-from-other-xml-files.html