Как реализовать АОП для чужих связок в OSGI (Apache Felix)?

Я хочу добавить АОП для классов разных пакетов в OSGI (Апач Феликс)

Мне нужно создать Аспект и добавить сквозную функциональность в методы каждого конкретного интерфейса реализации. (предпочтительно с аспектом помощи)

Проблемы:

  • Все реализации целевого интерфейса в разных пакетах
  • Каждый из пакетов имеет собственный путь к классам.
  • Мы не знаем, что в пакетах ведьм есть реализация интерфейса

помогите пожалуйста 8)

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
162
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

В OSGi есть Weavinghook, который позволяет перехватывать загрузку классов. Этот хук позволяет вам проверять байт-код и изменять его до того, как он станет классом. Это также позволяет вам добавлять импорт.

Ответ принят как подходящий

Спецификация OSGi ткацкие хуки, которая охватывает объединение классов для добавления аспектов.

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

Другой пример использует аспект, но у него мало документации, а также отсутствует сборка из командной строки.

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