I’m afraid I’m no expert on RCP. I’d expect your step (4) below to add the required dependency, it is clearly a problem that the runtime classes cannot be found. Maybe embed aspectjrt.jar from an AspectJ into your plugin directly?
cheers, Andy > On Mar 19, 2015, at 11:55 PM, ZhangYan <[email protected]> wrote: > > I would like to weave an aspectj into an existing plugin of elipse-based RCP > program. > > I don't have the source code of the plugin and what my aspectj want to do is > to print a log when executing a specific method in the target plugin. > > Below is what my steps, however it doesn't work, Could you someone suggest > how to achive it. > > > 1) I downloaded AJDT plugin in my Eclipse and create my AspectJ progect > including my aspect file. > > 2) In the AspectJ project properties, specify the target plugin name in the > "Inppath" . Here , Let's say the target plugin name is AAAA_1.0.jar and > specify the same name mytest_1.0.jar in the "Output" jar. > > 3) Build the my aspectj project, and get the new AAAA_1.0.jar with my aspectj > included. > > 4) Then I modify the MANIFEST.MF of AAAA_1.0.jar, add the > "org.aspectj.runtime" into the "Require Bundle". > > 5) Then I replace the AAAA_1.0.jar of the RCP program with the new created > one. > > 6) copy the <My Eclipse Installation Folder>/plugins/org.aspectj.*.jar into > <My RCP>/plugins/ > > 7) copy the <My Eclipse Installation > Folder>/features/org.aspectj_1.8.5.20150128171000 into <My RCP>/features/ > > 8) copy all aspectj related entries defined in the <My Eclipse Installation > Folder>/artifacts.xml ino my <My RCP>/artifacts.xml > > 9) then run my RCP, However my aspect doesn't work and RCP prints the error : > > Caused by: java.lang.NoClassDefFoundError: > org/aspectj/lang/NoAspectBoundException > <I removed some stack trace here> > at > org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:294) > at > org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90) > at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55) > ... 51 more > Caused by: java.lang.ClassNotFoundException: > org.aspectj.lang.NoAspectBoundException cannot be found by <my target jar > name> > at > org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:423) > at > org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:336) > at > org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:328) > at > org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160) > at java.lang.ClassLoader.loadClass(ClassLoader.java:358) > ... 60 more > > It seems org.aspectj.runtime can't be found. Any advice how to solve it? > > Or is there any guide if I want to add a aspectj into a exsisting plugin > which has no source code? > > Best Regards > Bruce > > > _______________________________________________ > aspectj-users mailing list > [email protected] <mailto:[email protected]> > To change your delivery options, retrieve your password, or unsubscribe from > this list, visit > https://dev.eclipse.org/mailman/listinfo/aspectj-users > <https://dev.eclipse.org/mailman/listinfo/aspectj-users>
_______________________________________________ aspectj-users mailing list [email protected] To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/aspectj-users
