Спецификация OSGi состоит из двух отдельных частей: ядра и сборника.
Основной частью является спецификация модульной системы для Java. Таким образом, основная спецификация не имеет отношения к концепции DI.
Компендиум, с другой стороны, определяет серию сервисов, которые может предоставить контейнер OSGi.
Среди этих сервисов вы найдете «Спецификацию декларативных сервисов» (OSGi Compendium Services, глава 112), которая является первой попыткой внедрить знакомую концепцию DI в OSGi.
Идея проста: поскольку OSGi позволяет разработчику реализовывать, определять и регистрировать сервисы, Спецификация декларативных сервисов дает разработчику возможность определять сервис, зависящий от ряда других базовых сервисов. Это особенно интересная (и сложная) проблема в OSGi, поскольку службы по определению ненадежны, и они могут появляться и исчезать.
Помимо спецификации декларативных сервисов, существует по крайней мере два других популярных решения, пытающихся предоставить более мощную инфраструктуру DI в OSGi:
Стоит отметить, что в следующей версии спецификации OSGi для R4.2 будет содержаться новая спецификация компендиума под названием Blueprint Services, которая предоставит полное DI-решение для OSGi на основе среды Spring DM (команда Spring внесла большой вклад это новая спецификация)