Каков наилучший способ группировки пакетов OSGi для создания согласованного «приложения»?

«Способ OSGi» заключается в разработке отдельных пакетов, содержащих отдельные, согласованные элементы функциональности. Иногда эти пакеты содержат служебные классы, иногда они зависят от служебных классов и устанавливают свои собственные службы OSGi.

Пользователи, с другой стороны, вряд ли будут подвержены связкам. Они больше заботятся оapplicationчасть программного обеспечения, которая выполняет задачу или решает их проблему. Обычно приложение будет использовать несколько пакетов (скажем, импортированных через Import-Package) для выполнения своих задач.

What is the best way to formalise this relationship in the OSGi world? Одним из примеров требования будет что-то простое, например, показ номера текущей версииof the application (не пакет (ы)) для пользователя. Как будет обнаружен этот номер версии?

Eclipse имеет концепцию, называемую «особенности»; но это не стандарт OSGi.

Питер Криенс имеетнаписано о приложениях OSGi и его статья имеет смысл. Мой вывод был сделан из того, что приложение может отображаться в пакет; просто пакет каким-то образом использует другие пакеты. Но если создать пакет приложений с помощью Import-Package, я не вижу, как это может быть осуществимо с точки зрения разработки.

Один способ может состоять в том, чтобы иметь «пакет приложений»; он использует Require-Bundle и имеет свою собственную версию, но Require-Bundle недоволен в мире OSGi.

Использование Import-Package для импорта всех необходимых пакетов с требуемыми версиями, однако добавляетsignificant накладные расходы на обслуживание разработчика в той степени, в которой я не считаю это возможным. Каждый раз, когда производится наименьшее изменение, даже в пакете реализации, версия пакета должна обновляться, и затем зависимость от версии пакета обновляется в «комплекте приложений».

Ответы на вопрос(3)

Ваш ответ на вопрос