如何在 Eclipse 插件中使用 AspectJ
正如之前的问题中提到的,我是试图检查我的所有结果集是否都已关闭。为此,我想使用 AspcetJ,但经过 1 天的艰苦奋斗,我无法在插件上下文中使用方面。
我想要的是有一个方面项目定义几个方面来检查结果集,然后使用我的自定义插件启动新的 eclipse 调试配置,并将我的方面应用到这些插件上。
如何实现呢?
提前致谢, 马努
As mentioned in a previous question I am trying to check that all my ResultSet are closed. For that I want to use AspcetJ but after 1 day of hard fight I am not able to use aspects in a plugin context.
What I want is to have an aspect project defining several aspects to check resultset and then launch a new eclipse debug configuration with my custom plugins and have my aspects applied on these plugins.
How achieve that ?
Thanks in advance,
Manu
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
由于您在 OSGi 环境中运行,因此需要使用一种特定的加载时编织样式,即 OSGi 感知的样式。标准编译时编织或 LTW 将不起作用。这是因为 OSGi 对每个插件使用不同的类加载器,并且 Eclipse 使用的插件集在启动前是未知的。
看看 Equinox Aspects(又名春分编织):
http ://www.eclipse.org/equinox/incubator/aspects/equinox-aspects-quick-start.php
本质上,您需要对方面插件的清单文件进行一些更改,添加 aop.xml 文件,并确保您的方面插件设置为 autostarted=true。
[编辑]
从 eclipse Juno 开始,步骤已更改,请参阅:http://wiki.eclipse.org/Equinox_Weaving_QuickStart
Since you are running in an OSGi environment, you need to use a specific style of load-time weaving, one that is OSGi aware. Standard compile-time weaving or LTW will not work. This is because OSGi uses a different classloader for each plugin and the set of plugins used by Eclipse is not known before startup.
Have a look at Equinox Aspects (aka equinox weaving):
http://www.eclipse.org/equinox/incubator/aspects/equinox-aspects-quick-start.php
Essentially, you need to make some changes to your aspect plugin's manifest file, add an aop.xml file, and ensure that your aspect plugin is set to autostarted=true.
[edit]
As of eclipse Juno the steps are changed see : http://wiki.eclipse.org/Equinox_Weaving_QuickStart