从不同的保险丝束访问驼峰上下文

时间:2014-06-10 02:16:09

标签: spring apache-camel fuseesb

我有几种不同的保险丝束,其中一些具有在自己的驼峰环境中定义的驼峰路线。

我想从一个捆绑包中访问所有驼峰上下文。

类似的东西:

fuse.getCamelContext("someOtherCamelContextId")

或者也许:

fuse.getBundleContext("someOtherBundleName").getCamelContext("someOtherCamelContextId")

我知道如何实现一个CamelContextAware类并使用spring注入它,但是,它只能访问本地的camel上下文。

Fuse确实记录了驼峰上下文的服务ID - 有没有办法查找它们?

或者Fuse只允许访问该捆绑包服务吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

CamelContext已注册到OSGi服务注册表中。所以只需使用它来查找CamelContext,例如它的标准OSGi如何做到这一点。

答案 1 :(得分:0)

这是一个例子!

ServiceReference[] srs = bundleContext.getServiceReferences(CamelContext.class.getName(), "(camel.context.name=myother-camel-context-name)");
CamelContext camelContext = (CamelContext) bundleContext.getService(srs[0])

非常简单......