Eclipse学习笔记--有关Bundle

eclipse 3.1以后,bundle(osgi的概念)与原有的plugin成为可互换的名字.eclipseAPI,存在Plugin类和Bundle.其中,Plugin类里的方法已经逐步被废弃使用.

<o:p> </o:p>

建立一个可以管理bundle的类有两种方式:

a.继承 Plugin

b.实现 BundleActivator 接口.

其中,如果我们在创建一个plug-in project,选择了创建Activator,则该类就是继承Plugin.

<o:p> </o:p>

如何调用管理bundle的类?

Menifest.MF文件中指定:

Bundle-Activator: com.helloworld.MyBundle<o:p></o:p>

(自动创建时为: Bundle-Activator: com.helloworld.Activator)

这样设置完成后,再次触发该bundle的时候,就可以看到在Bundle 的start()方法中System.out.println()出来的信息,说明我们的bundle已经启动。

知道了这些,我们就可以控制一个Bundle的启动与停止了,下面的代码是停止的例子:

Button bn=new  Button(parent,0);
        bn.setText("stop the bundle");
        bn.addSelectionListener(new SelectionListener(){
   public void widgetDefaultSelected(SelectionEvent e) {
   }
   public void widgetSelected(SelectionEvent e) {

    //关闭当前view
    IWorkbenchPage page=PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
    IViewPart v=page.findView("com.singba.learing.helloworld.views.HelloworldView");
    page.hideView(v);
    

// 停止bundle
    Bundle mybundle=Platform.getBundle("com.singba.learing.helloworld");
    try {
     mybundle.stop();
    } catch (BundleException e1) {
     e1.printStackTrace();
    }
   }
         
        });

你可能感兴趣的:(eclipse,osgi)