AspectJ LoadTimeWaaving на OSGI - PullRequest
       51

AspectJ LoadTimeWaaving на OSGI

0 голосов
/ 23 сентября 2018

Я пытаюсь использовать aspectJ Load Time Weaving (без Spring) в OSGI с помощью javos равноденствия (org.aspectj.runtime, org.aspectj.weaver, org.eclipse.equinox.weaving.aspectj в папке bundles иorg.eclipse.equinox.weaving.hook, расположенный в той же папке, что и физическое местоположение org.eclipse.osgi) в соответствии с: https://wiki.eclipse.org/Equinox_Weaving_QuickStart

Порядок загрузки пакетов:

[org.eclipse.equinox.weaving.hook::1 -> INSTALLED]
[org.aspectj.runtime::11 -> INSTALLED]
[org.aspectj.weaver::12 -> INSTALLED]
[org.eclipse.equinox.weaving.aspectj::13 -> INSTALLED]
[com.common-calculations_2.11::19 -> INSTALLED] //here I used aspects
[com.instrumentation_2.11::48 -> INSTALLED] //here I defined the aspects 
Done installing bundles
Starting bundles...
[org.eclipse.equinox.weaving.aspectj::13 -> ACTIVE]
[org.aspectj.runtime::11 -> ACTIVE]
[org.eclipse.osgi::0 -> ACTIVE]
 FRAGMENT Bundle - skip starting: org.eclipse.equinox.weaving.hook
 FRAGMENT Bundle - skip starting: org.aspectj.runtime
[org.aspectj.weaver::12 -> ACTIVE]
 FRAGMENT Bundle - skip starting: org.eclipse.equinox.weaving.aspectj
 Bundle started: [com.common-calculations_2.11::19 -> ACTIVE]
 Bundle started: [com.instrumentation_2.11::48 -> ACTIVE]

Я хочу знать, как мне запустить баночку с крючком?Я буду признателен за любую помощь ... ps кто-то решил его проблему, импортировав в его рабочую область пакет "org.eclipse.osgi" и фрагмент "org.eclipse.equinox.weaving.hook" как "Бинарный проект со связанным содержимым"., но я не совсем уверен, как это сделать: https://www.eclipse.org/forums/index.php?t=msg&th=440862

Спасибо за ваши ответы

1 Ответ

0 голосов
/ 25 сентября 2018

Однажды я написал большую статью на эту тему в своем блоге, когда столкнулся с проблемой на моей работе в приложении для управления железнодорожным движением.Он по-прежнему работает с аспектами своей основной функциональности - не только для отслеживания вызовов, но и для автоматической обработки ресурсов и транзакций для JPA, аспектов безопасности потоков и т. Д. (Поэтому я знаю, что решение все еще работает в реальной жизни в моем бывшем проекте):

http://ballmerpeak.web.elte.hu/devblog/setting-up-aspect-oriented-programming-with-equinox-osgi-and-ajdt.html

На моем github предоставляется отдельный пример кода:

https://github.com/prenex/equinox_osgi_skeleton

Я также добавлю сюда содержимое нашего электронного письма, если оно можетпомогите другим:

"Привет!

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

Для вашей проблемы:

1.) Вы поместили пакет equinox.weaving.hook рядом с основным пакетом org.eclipse.osgi? Были некоторые неясные вещикак это требование в прошлый раз, когда я работал над ним, поэтому я записал его в блоге. 2.) Вы пробовали мой пример кода по следующей ссылке?

https://github.com/prenex/equinox_osgi_skeleton

Я бы сначала попробовал запустить этот примерМой проект, в котором уже есть AspectJ, а затем построчно сравнивайте свое решение в соответствующих местах, пока оно не начнет работать.

Посмотрите на следующий коммит, чтобы увидеть, что я изменил в обычном равноденствии +Скелет проекта Osgi для добавления простой поддержки AspectJ: https://github.com/prenex/equinox_osgi_skeleton/commit/882d7765f31a3fc8ee136e88b689fce116a73d1c

С наилучшими пожеланиями, Ричард Тьер

PS: Как вы наткнулись на мой блог?Я счастлив, что кто-то действительно прочитал это и нашел это полезным, даже если это не полностью решает все их проблемы.:-) "

...