Простым решением является создание собственного пакета начальной загрузки, который будет предоставлять все другие пакеты из базы данных (или другого места). OSGi позволяет вам устанавливать пакеты из произвольного InputStream
, поэтому должно быть достаточно просто подключить его к любому источнику, который вы хотите (например, JDBC).
См. BundleContext.installBundle()
метод для более подробной информации.
Вы не должны искать «обратный вызов», через который фреймворк будет уведомлять вас «когда ему нужно загрузить требуемую зависимость», поскольку автоматическое управление зависимостями (ala Maven) не является частью основной функциональности OSGi (хотя может быть достигается с помощью таких услуг, как OBR ).