在Eclipse RCP中屏蔽第三方插件的扩展点

来源:互联网 发布:新注册的域名怎么解析 编辑:程序博客网 时间:2024/05/16 09:46
        在自己的Eclipse RCP 产品中,可能经常要集成第三方的插件,来满足特定的功能需要。但是对于一些不需要的功能,通常的做法是该插件修改源代码。如果出于lisence或非开源的原因,无法修改,或删除其源代码,就要考虑如何在RCP中控制其扩展点的加载。
       可以在RCP的WorkbenchWindowAdvisor.preWindowOpen中,取到所有加载的扩展点,然后进行相应的过滤处理。首先使用WorkbenchPlugin.getDefault() 得到WorkbenchPlugin;通过 WorkbenchPlugin可以获取各种类型的扩展点的注册表。WorkbenchPlugin.getActionSetRegistry() 得到的注册表中存有所有的ActionSet扩展点;WorkbenchPlugin.getViewRegistry()得到了所有的views扩展点。  通过注册表的removeExtension() 可以去掉相应的扩展点,使其不被加载到RCP中。
     具体使用方法可以参考eclipse 的 API 。