要将一个插件公开的服务引用到另一个Eclipse插件中,我有两种方法
1.)扩展点(复杂)
2.)只需使用BundleContext获取Bundle List,然后访问您的其他Eclipse 通过ServiceReference插件并调用相应的服务(非常简单)
我可以看到2比1容易得多。)
2是正确的方式吗?
为什么1.)发明了?
答案 0 :(得分:4)
(1)和(2)都不正确。
(1)与OSGi服务无关。这是一个完全不同的用例。
(2)你做得比必要复杂得多。您只需使用Declarative Services来获取对要使用的服务的引用。不要去发布服务的包,因为你不应该知道或关心哪个包是服务的来源。
答案 1 :(得分:3)
您可以找到here扩展和OSGi服务的良好比较。没有对错(恕我直言,扩展点机制并不复杂,工具更好,......),在某些情况下,其中一个更好。 Eclipse的早期版本不是基于OSGi,因此从Eclipse 3.0开始就可以使用OSGi方式。