实现eclipse 4 RCP服务

时间:2014-02-09 14:53:33

标签: service osgi eclipse-rcp rcp e4

也许这是一个愚蠢的问题,但我在网上的研究没有给我一个答案。我想要做的是在RCP中实现我自己的服务,以便为不同的视图提供数据。

我开始进入Eclipse 4 RCP开发并且在Eclipse 3.x中工作得很好。我现在认为Eclipse 3.x实现服务的方式是通过扩展点(org.eclipse.ui.services)。但是现在在Eclipse 4上,我读到的扩展点并不像普及版那么常见。

所以我的问题是在Eclipse 4中实现服务的最佳做法是什么?

顺便提一下,OSGi服务与Eclipse平台服务之间存在差异吗?

感谢。

1 个答案:

答案 0 :(得分:3)

如果您正在编写一个'纯'Eclipse 4(e4)应用程序(一个不使用3.x兼容性代码的应用程序),那么您就无法使用大多数org.eclipse.ui.xxx代码。仍然使用扩展点,但很多事情都是由Eclipse上下文中设置的对象完成的,可以通过直接注入来访问。

您仍然可以通过创建component definition file来使用声明式样式定义OSGi服务(请参阅File > New > Other > Plug-in Development > Component Definition向导)。

对于OSGi服务,您可以选择使用ContextFunction来延迟创建服务实例。

或者您可以简单地将服务类实例放入Eclipse上下文中 - 您通常会在@PostContextCreate类的LifeCycle方法中执行此操作。

这是一个相当广泛的主题,所以我只给出了一个简短的概述。