Как использовать equinox Weaving
с bndtools
, потому что пример equinox Weaving
старый и не может заставить его работать?Как использовать Equinox Weaving с bndtools
обновление:
при попытке запустить образец ткачества для Привет мир
У меня есть две связки:
public class HelloService implements BundleActivator {
public void start(final BundleContext context) throws Exception {
System.out.println("Hello world!");
}
public void stop(final BundleContext context) throws Exception {
System.out.println("Good bye world!");
}
}
bnd.bnd
-buildpath: \
osgi.core,\
osgi.cmpn,\
biz.aQute.bnd.annotation,\
${junit}
Bundle-Version: 0.0.0.${tstamp}
Require-Bundle: helloaspect
Export-Package: \
com.weaving.hellohistorytest
Bundle-Activator: com.weaving.hellohistorytest.HelloService
аспект сверток:
bnd.bnd
-buildpath: \
osgi.core,\
osgi.cmpn,\
biz.aQute.bnd.annotation,\
${junit},\
aspectjrt-1.7.3,\
aspectjweaver,\
org.eclipse.equinox.supplement
Bundle-Version: 0.0.0.${tstamp}
Service-Component: \
*
Export-Package: \
com.weaving.helloaspect;aspects="HelloAspect"
Eclipse-SupplementBundle: com.weaving.hellohistorytest
launch.bndrun
runbundles: \
org.apache.felix.gogo.runtime,\
org.apache.felix.gogo.shell,\
org.apache.felix.gogo.command,\
org.eclipse.equinox.weaving.aspectj,\
org.eclipse.equinox.weaving.hook,\
aspectjweaver,\
aspectjrt-1.7.3,\
osgi.cmpn,\
osgi.core,\
cnf.run.equinox.common,\
org.apache.felix.framework,\
osgi.enterprise,\
org.eclipse.equinox.supplement,\
helloaspect;version=latest,\
hellohistorytest;version=latest,\
-runproperties:\
osgi.framework.extensions=org.eclipse.equinox.weaving.hook
-runrequires:\
osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.shell)',\
osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)'
-runvm: -Dosgi.framework.extensions=org.eclipse.equinox.weaving.hook,\
-Daj.weaving.verbose=true,\
-Dorg.aspectj.weaver.showWeaveInfo=true,\
-Dorg.aspectj.osgi.verbose=true
, когда я запустить запуск: я Привет, мир не привет аспект также, Аспект ткачество Крючки Plug-в (инкубация) Установлено:
В чем проблема?
еще не получил никакой помощи – yehia
предложил продолжить (уверить, что Aspect все еще работает после каждого шага) (1) Постарайтесь, чтобы получить пример из рабочего мерзавец репо (либо 3.x или 4. Икс). (2) Снимите другую среду (3) Удалить другие аспекты (держать только тот, который вы хотите использовать) (4) Добавить свои пучки (5) Адаптировать Aspect, чтобы изменить свои пакеты тема довольно сложная, и все становится правдой. Вот почему я предоставил [GitHub repo] (https://github.com/peterkir/example.aspectj) –
@ PeterKirschner.Спасибо за вашу помощь.почему, если я добавляю конструктор внутри класса аспект, как это \t 'int x, y, z; \t Публикация AfterAspect (int _x, int _y, int _z) { \t \t x = _x; \t \t y = _y; \t \t z = _z; \t} '' Перед @After ("исполнение (* example.aspectj.app.Application.methodToModify (..))") \t общественного недействительными methodAfter (JoinPoint joinPoint) 'печатает ** начиная AspectJ Demo приложение ** ** вызов методаToModify с параметром
** ** «Привет RCP World! ** 3 раза без ввода метода ** После ** внутреннего аспекта? – yehia