Как реализовать OSGi-Listener, который контролирует весь трафик между пакетами

В нашем текущем osgi-проекте мы хотели бы позволить сторонним разработчикам писать свои собственные пакеты и регистрировать их как osgi-сервисы. Мы хотели бы позволить всему трафику обходить центральный пакет, который проверяет авторизацию, безопасность, разрешения...

Наш первый подход состоял в том, чтобы заставить эти пакеты вызывать центральную службу для вызова других служб. Такой подход, похоже, не работает.

Можно ли установить прослушиватель, который получает весь трафик, передаваемый между пакетами, и, следовательно, возможно, выполнять некоторые действия?

Спасибо заранее, Томас

1 ответ

Решение

На самом деле, нет. Однако вы можете использовать сервисные хуки, чтобы центральный пакет мог наблюдать за всеми регистрациями сервисов и скрывать их от всех потребителей. Этот центральный пакет может затем зарегистрировать сервисы замены оболочки, которые вместо этого увидят потребители. Это позволило бы центральному пакету "перехватывать" все сервисные вызовы.

Это ставит центральную связку в богоподобную позицию, что делает невозможным ее динамическое обновление.

Другие вопросы по тегам