org.eclipse.ui.startup扩展点的使用

默认情况下,Eclipse插件是懒加载(Lazy Start)的,即只有当插件的功能被真正调用的时候(比如打开插件中的视图或点击插件的全局菜单等),插件才会被启动(执行生命周期的开始start 方法)

org.eclipse.ui.startup 扩展点可能是版本2.0一直有争议的API之一。
它标记当Eclipse加载时要启动的插件。亦即当某插件中有类实现org.eclipse.ui.startup扩展点,
则在eclipse启动(工作台窗口打开时)时,激活启动插件,而不受延迟加载策略限制。

执行顺序:

插件类的start方法执行---》实现IStartup接口的类的earlyStartup方法执行

扩展点属性说明:

point - 目标扩展点的标准标识(org.eclipse.ui.StartUp)
id - 扩展实例的可选标识。
name - 扩展实例的可选名称。
class - 实现 org.eclipse.ui.IStartup的类的标准名称。如果未指定此项,则将使用插件类。

不要指定插件类作为显式值,否则它将被实例化两次(一次由常规插件激活操作实例化,一次由此机制实例化)。这是一个注意事项。

plugin.xml中示例
 <extension
         id="hellorcp.start.StartUp"
         name="hellorcp.start.StartUp"
         point="org.eclipse.ui.startup">
      <startup class="hellorcp.start.StartUp"></startup>
 </extension>

使用
  • 在插件项目配置文件,META-INF/MANIFEST.MF文件中,Extension页面,Add一个org.eclipse.ui.startup扩展点

  • 配置此扩展点

  • 指向的类需要实现IStartup接口

      package org.skyeye.modeling.api;
    
      import org.eclipse.ui.IStartup;
    
      public class SkyeyeStartUp implements IStartup{
    
          @Override
          public void earlyStartup() {
      	
          }
    
      }
    
posted on 2017-06-23 16:04  googlewo  阅读(855)  评论(0编辑  收藏  举报