Как получить ссылку на источник данных OSGi с параметризованным именем JNDI? - PullRequest
0 голосов
/ 11 сентября 2018

Пожалуйста, прости мое невежество, но я не могу найти никаких ресурсов, описывающих, как получить ссылку на объявленный OSGi источник данных без жесткого кодирования имени в определении Spring XML.

Я использую Talend ESBSE Runtime (6.5.1) и попытка создать маршрут, который будет повторно использоваться с различными источниками данных osgi в качестве ссылочного источника данных для маршрута.

Если в конфигурации Spring я объявляю

<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 Context до базовой OSGi.Registry - что делает элемент osgi: reference в Spring XML.

Если кто-то может указать мне правильное направление, это было бы здорово, так как я подозреваю, что я могу неправильно понять, как функционируют различные компоненты.

Спасибо!

1 Ответ

0 голосов
/ 11 сентября 2018

Я думаю, что это проблема настройки заполнителя свойства, потому что в журнале должно быть значение вашего свойства app.datasource.name, а не имя свойства. Попробуйте использовать конфигурацию Spring XML, например this .

...