我的插件依赖项中的plugin.xml 文件何时加载?
我使用 eclipse rcp 应用程序。 在我的插件 AI 中使用第 3 方插件 B。 在插件 B 中有带有一些扩展的plugin.xml。 在我的插件 AI 中,为插件 B 中定义的扩展添加了一些扩展,并且它可以工作。
现在我尝试在插件 A 中覆盖 B 的某些扩展中的一些值。 现在,当我运行应用程序时,有时它使用旧值(来自插件 B 中的plugin.xml),有时它使用我的新值(来自插件 A plugin.xml)。 它在应用程序的一次执行中是一致的,但在执行之间会发生变化。
获取这些值的代码位于插件 B 中,我不想更改它。 看起来像这样:
IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint("org.jbpm.gd.common.xmlMappings");
IExtension[] extensions = extensionPoint.getExtensions();
我如何确保我的价值观将被使用?
我认为设置正确的plugin.xml 文件加载顺序很重要,因此我的plugin.xml 将位于最后,而我的值将覆盖它们的值,但我不知道该怎么做。
I vahe eclipse rcp app. In my plugin A I use 3rd party plugin B.
In plugin B there is plugin.xml with some extensions. In my plugin A I have added some extensions to extensions defined in plugin B, and it works.
Now I tried to overwrite some values in some extensions from B in plugin A.
Now, when I run app sometimes it uses old values (from plugin.xml in plugin B), sometimes it uses my new values (from plugin A plugin.xml). It's consistent in one execution of app, but changes from execution to execution.
Code that gets these values is in plugin B and I wouldn't like to change it. And looks like that:
IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint("org.jbpm.gd.common.xmlMappings");
IExtension[] extensions = extensionPoint.getExtensions();
How can I ensure my values will be used?
I think it's matter of setting right order of loading of plugin.xml files, so my plugin.xml will be last, and my values will overwrite theirs, but I'm not sure how to do it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Eclipse 不保证扩展的显示顺序。 此外,加载特定插件时没有保证生命周期。 如果你想要保证,你需要手动实现它,这可能需要更改插件 B。
Eclipse makes no guarantees about the order that extensions are seen. Further, there is no guaranteed lifecycle for when specific plugins are loaded. If you want a guarantee, you need to implement it manually, and that will probably require a change of plugin B.