Есть ли способ ограничить (по конфигурации), какие сервисы видны каким пакетам?
Как вы знаете, существует возможность фильтрации по свойствам службы, хотя это, вероятно, не дает того вида управления, о котором вы просите: службы по-прежнему видны для других пакетов, развернутых в платформе.
В dm-сервере SpringSource (модульном сервере приложений Java на основе OSGi с открытым исходным кодом) приложение может иметь значение Scoped при развертывании. Это позволяет вам развертывать несколько приложений (в отдельных областях), которые могут включать несовместимые версии зависимых пакетов, и в то же время разрешать совместное использование общих пакетов (путем их развертывания вне области - в так называемой глобальной области).
Если приложение / пакет в определенной области регистрирует службу OSGi, она доступна только для пакетов в одной и той же области. (Услуги также «ограничены».)
Это не волшебство: сервер оборачивает интерфейсы служб OSGi и использует свойства службы «под прикрытием» для выполнения фильтрации, необходимой на лету.
Я думаю, что это даст вам то разделение, которое вы ищете.
Информацию о dm Server (не путать с Spring DM) можно найти на странице SpringSource.org dmServer .
Стив Пауэлл
* * SpringSource тысячи двадцать-одиной; Разработка dm сервера