Пожалуйста, не используйте System.exit (0), чтобы закрыть инфраструктуру OSGi. Вы должны сделать это, остановив пакет с идентификатором 0, системным пакетом. Таким образом, вы даете всем связям возможность закрыться упорядоченным образом (например, для освобождения ресурсов и т. Д.).
Спецификация OSGi определяет следующее (Core Specification, R4.x, 4.2.6 Stop of the Framework).
Завершение работы можно инициировать, остановив системный пакет, [...] или вызывая метод stop на объекте фреймворка.
В этой главе дается подробное описание того, что происходит, когда каркас закрыт.
Системный комплект соответственно. каркас объекта также определяется (глава 4.6 Система Bundle):
Расслоение система напоминает рамочный объект, когда основа запускается, но реализации не требуется использовать один и тот же объект для каркаса объекта и системы расслоение. Однако оба объекта должны иметь идентификатор связки id 0, одинаковое местоположение и символическое имя пакета.
Спектр OSGi можно приобрести бесплатно на сайте OSGi Alliance (http://www.osgi.org/Specifications/HomePage).
Стандартный способ до сих пор это то, что я описал в своем ответе. Это поведение, указанное в спецификациях OSGi, также в следующей версии 4.2. Следующий выпуск (4.2.) будет включать в себя * необязательный * Start Level Service, который может использоваться для управления начальным уровнем пакетов (и структуры). – akr