Eclipse扩展点与手动编程访问

时间:2012-02-22 17:52:14

标签: java eclipse eclipse-plugin osgi

要将一个插件公开的服务引用到另一个Eclipse插件中,我有两种方法

1.)扩展点(复杂)

2.)只需使用BundleContext获取Bundle List,然后访问您的其他Eclipse 通过ServiceReference插件并调用相应的服务(非常简单)

我可以看到2比1容易得多。)

2是正确的方式吗?

为什么1.)发明了?

2 个答案:

答案 0 :(得分:4)

(1)和(2)都不正确。

(1)与OSGi服务无关。这是一个完全不同的用例。

(2)你做得比必要复杂得多。您只需使用Declarative Services来获取对要使用的服务的引用。不要去发布服务的包,因为你不应该知道或关心哪个包是服务的来源。

答案 1 :(得分:3)

您可以找到here扩展和OSGi服务的良好比较。没有对错(恕我直言,扩展点机制并不复杂,工具更好,......),在某些情况下,其中一个更好。 Eclipse的早期版本不是基于OSGi,因此从Eclipse 3.0开始就可以使用OSGi方式。