有没有办法知道什么时候和什么插件Eclipse服务注册?

时间:2011-08-14 13:37:57

标签: eclipse eclipse-plugin eclipse-rcp

Eclipse越来越多地使用面向服务的体系结构,这很好,但我只是看到通过插件在什么阶段缺乏知识的开发人员>服务已注册为问题?

考虑例子:

IServiceLocator someServiceLocator = ...
SomeService someService = (SomeService)someServiceLocator.getService(SomeService.class);
// oops, someService is null

someServicenull的原因可能是:

  • 注册此服务的某些插件不存在或未加载
  • 服务尚未注册

如何解决这个问题?有没有工具?

感谢。

2 个答案:

答案 0 :(得分:0)

简短的回答:没有可用的工具。

有关服务的完整列表及其注册位置,请在ServiceLocator.registerService(Class api, Object service)上执行“呼叫层次结构”。

有关可用全球服务的良好列表,请查看Workbench.initializeDefaultServices()。还有一些其他服务仅在窗口或工作台部件级别提供。

答案 1 :(得分:0)

如果您想知道安装和启动了哪些插件,可以使用OSGI控制台查看插件的状态。

因此,如果您正在寻找服务“XService”,请找到包含该服务的插件并在OSGI控制台上查找插件状态。

使用-console选项启动应用程序,并在osgi控制台上键入ss。这不是直截了当但有效。