Camel:将routeContext导入外部camelContext

时间:2015-12-12 19:28:41

标签: java spring maven apache-camel

我在项目A中有一个驼峰语境:

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

项目B和项目C使用项目A作为Maven依赖项。

项目B和C中的每一个都定义了自己的<routeContext>(在单独的xml文件中):

项目B:

<routeContext id="bRoutes" xmlns="http://camel.apache.org/schema/spring">
    <route id="barB">
        <from uri="direct:barB"/>
        <to uri="mock:barB"/>
    </route>
</routeContext>

项目C:

<routeContext id="cRoutes" xmlns="http://camel.apache.org/schema/spring">
    <route id="barC">
        <from uri="direct:barC"/>
        <to uri="mock:barC"/>
    </route>
</routeContext>

我希望项目B和C中的每一个能够将他们的路线(&#34; bRoutes&#34;和#34; cRoutes&#34;)导入到驼峰环境中#34; camelContext&#34 ;他们继承自项目A.

我怎么能这样做?

如果我添加

<routeContextRef ref="bRoutes"/>
<routeContextRef ref="cRoutes"/>

到项目A中的xml文件,&#34; cRoutes&#34;加载项目B时不会被识别,并且&#34; bRoutes&#34;加载项目C时将无法识别。

1 个答案:

答案 0 :(得分:0)

这对于蓝图并不是很好,因为它现在是正确的。您可以使用纯Java DSL执行此操作,但据我所知,您无法将camelcontext从另一个xml文件导入到当前的文件中。

基本上,如果您将骆驼部署到Karaf,您可以使用direct-vm将项目A,B和C相互连接。所以不要直接:barC你要写直接VM:C。