Использование OSGi WAB в качестве комплекта ресурсов в войне

В настоящее время я нахожусь в процессе разработки службы перевода для множества веб-приложений, которые были разработаны собственными силами. Я столкнулся с проблемой, когда мы упаковали все приложения с файлами свойств, содержащими разные языки, для поддержки i18n.

Во время мозгового штурма было предложено сделать сервис перевода модулем OSGi. Проблема в том, что у меня 0 опыта работы с OSGi и я не знаю, как это сделать. Дальнейшие разговоры и поиск в Google предполагают развитие сервисов как WAB.

Проблема, с которой я столкнулся, заключается в том, как мне вызвать ресурс из WAB? Это вообще возможно или я иду по неверному пути?

Любая помощь будет очень полезна.

С уважением С.

2 ответа

Решение

Трудно сказать наверняка, не зная больше деталей, но вы, вероятно, захотите использовать ваб вместо войны, а не внутри войны. Wab - это просто война с метаданными osgi. Хороший подход к интернационализации (и я полагаю, причина, по которой эта идея возникла) состоит в использовании фрагментов для пакетов ресурсов. Эта статья содержит руководство по разработке wab, а затем по добавлению фрагментов для интернационализации.

Я бы также советовал не пытаться загружать ресурсы напрямую из пакета osgi, поскольку инкапсуляция osgi часто делает ресурсы недоступными, если вы не делаете неприятные вещи с импортом и экспортом пакетов. Вместо этого найдите службу и сделайте так, чтобы она выполняла загрузку ресурсов. Использовать что-то вроде декларативных сервисов или проектов гораздо проще, чем программный доступ к сервисам.

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

Другие вопросы по тегам