- 新建一个
Plug-in Project,命名为osgi_equinox_activator, 并在OSGI framework中选中standard,如下图

- 下一步:
ID: com.freud.osgi
Version: 1.0.0.qualifier
Name: Osgi_equinox_activator- 勾选
Generate an activator,a Java class that controls the plug-in’s life cycleActivator:com.freud.osgi.activator.Activator如下图

- 下一步,取消对
Create a plug-in using one of the templates的Check,并且Finish - 修改
com.freud.osgi.activator.Activator内容为
package com.freud.osgi.activator;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
public class Activator implements BundleActivator {
private static BundleContext context;
static BundleContext getContext() {
return context;
}
public void start(BundleContext bundleContext) throws Exception {
System.out.println("[freud]Bundle started!");
}
public void stop(BundleContext bundleContext) throws Exception {
System.out.println("[freud]Bundle stoped!");
}
}- 运行,在
Project上右键run as->Run Configurations - 在弹出的对话框中,选择
OSGi Framework,然后右键 ->new在新建的Configuration中做如下配置

Apply并Run,将会在控制台中输出如下

- 在控制台中输入
ss可以看到所有被加载的Bundles

- 输入
stop ${id}可以停止已加载的Bundle,例如stop 3就可以停止我们自己刚刚写的Bundle

- 输入
start ${id}可以启动Bundle,例如start 3就可以重新启动我们刚刚写的Bundle

参考资料
视频教程 : http://v.youku.com/v_show/id_XNDE1NzU0OTY0.html
Equinox OSGi官网 : http://www.eclipse.org/equinox/
林昊 : 《OSGi原理与最佳实践》
Richard S. Hall : 《OSGi实战》