Как реализовать AOP для чужих комплектов в OSGI (Apache Felix)? - PullRequest
1 голос
/ 29 мая 2019

Я хочу добавить AOP для классов различных пакетов в OSGI (Apache Felix)

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

Проблемы:

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

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

Ответы [ 2 ]

2 голосов
/ 29 мая 2019

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

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

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

2 голосов
/ 29 мая 2019

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

...