Передача конкретных значений конфигурации пакета в пакет WSO2 ESB

Я хочу расширить WSO2 ESB (v 4.7.0) с помощью пользовательского пакета OSGi, предоставляющего услугу. Этот пакет не зависит от какого-либо посредника, но требует различной конфигурации в зависимости от текущей среды (разработка, тестирование и т. д.). Поэтому было бы неплохо иметь возможность настраивать эти параметры вне пакета, например. в файле свойств.

Я нашел следующую ссылку для такого варианта использования WSO2 Carbon, но, похоже, это не работает в WSO2 ESB: https://docs.wso2.com/display/Carbon420/Config+Files+for+Third+Party+JARs

Есть ли способ сохранить свойства в пути к классам, которые будут каким-то образом привязаны к бандлу, он описан в ссылке выше. Или можно как-то указать путь к связке OSGi?


person powerweb    schedule 27.08.2014    source источник


Ответы (1)


С какими проблемами вы столкнулись при попытке следовать данному документу (подход с использованием фрагментов)? Он должен работать и для ESB, поскольку он основан на углероде.

В качестве альтернативы вы можете хранить конфигурации в реестре
https://docs.wso2.com/display/ESB481/Working+with+the+Registry
Вы можете загрузить файлы конфигурации в реестр через веб-интерфейс консоли управления, а затем внутри пакета вы можете программно получить доступ к реестр и прочитать файлы/configs. (Но это может быть излишним для вашего требования)

В качестве обходного пути, если вы просто пытаетесь найти местоположение ESB, чтобы получить путь к файлу конфигурации (который может находиться в репозитории/conf), вы можете построить этот путь относительно местоположения пакета, найдя путь к пакету.

MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath().toURI()

это даст вам что-то вроде <esb-location>/repository/components/dropins/YourBundle.jar, на основе которого вы можете построить путь к <esb-location>/repository/conf/.

person Rajeev Sampath    schedule 28.08.2014
comment
Подход с набором фрагментов никогда не работал. Я пробовал разные имена для каталогов (имя jar, имя пакета и т. д.), но пакет фрагментов так и не был создан, и не было показано никаких исключений или чего-то подобного. - person powerweb; 29.08.2014