【发布时间】:2015-12-26 16:09:54
【问题描述】:
我从 GitHub 下载了一个示例项目here,它使用了 RCP 开发的混合模式。在该项目中,他们将“e4”D.I 功能访问到现有的 3.x RCP 应用程序中。
我也为我的 3.x RCP 应用程序(它有我自己的 .product 文件)尝试了相同的方法,但是我在“MyLegacyIDE.e4xmi”文件中定义的菜单(或部分)没有反映到启动的产品和 UI(菜单、视图、部件等)与我的 Eclipse 3.x 系列中的相同。将 MyLegacyIDE.e4xmi 文件添加到我的插件项目时,没有任何新情况发生。
另外,我已将“applicationXMI”参数指向我在插件位置定义的 XMI 文件,例如:
<extension
id="product"
point="org.eclipse.core.runtime.products">
<product
application="com.ami.veb.ui.application"
name="VeB - e4 Product">
<property
name="applicationXMI"
value="MyLegacyIDE.e4xmi">
</property>
</product>
建议将不胜感激!
根本原因(我的问题):
在调试时,我发现我的应用程序模型(“MyLegacyIDE.e4xmi”)没有被 Eclipse 正确加载。在以下行中(在加载 Application Model 期间):
Resource applicationResource = loadResource(applicationDefinitionInstance); of ResourceHandler.java ['org.eclipse.e4.ui.internal.workbench' plugin]
applicationDefinitionInstance --> 仍然指向“org.eclipse.ui.workbench”插件下存在的“LegacyIDE.e4xmi”,而不是我在我的文件中定义的 XMI 文件(“MyLegacyIDE.e4xmi”) plugin.xml 文件。
(即“applicationDefinitionInstance”的值是“platform:/plugin/org.eclipse.ui.workbench/LegacyIDE.e4xmi”而不是“platform:/plugin/com.ami.veb.ui/MyLegacyIDE.e4xmi ")
如果我哪里出错了,请纠正我。
【问题讨论】:
-
您能否提供您的 plugin.xml 的所有相关部分?例如,定义您的应用程序的位置。另外,您是否尝试过简单地使用示例 RCP 作为起点,即删除您不需要的内容并用您自己的内容替换它?
标签: eclipse dependency-injection eclipse-rcp e4 emf