请原谅我的无知,但是在没有将名称硬编码到SpringXML定义的情况下,我找不到任何资源来描述如何获取对OSGi声明的数据源的引用。
我正在使用TalendESBSE运行时(6.5.1),并尝试创建一个路由,该路由将被不同的OSGi数据源重新用作路由的引用数据源。
如果,在弹簧配置中,我声明
<osgi:reference id="dataSource" interface="javax.sql.DataSource" filter="(osgi.jndi.service.name=myDataSourceName)" />
这是可行的。但是,我看不到任何参数化的方法,因为当我尝试使用
<osgi:reference id="dataSource" interface="javax.sql.DataSource" filter="(osgi.jndi.service.name=${app.datasource.name})" />
karaf日志抱怨它找不到一个名为
${app.datasource.name}
显然是找不到的。
如果参数不能在OSGi引用的过滤器中使用,那么我可以在Java中配置它,但是我不能看到从CAMEL上下文注册表到基础OSGi注册表的任何地方——OSGi:参考元素在Spring XML中执行。
如果有人能在这里指出正确的方向,那就太好了,因为我怀疑我可能误解了各种组件的功能。
谢谢!