OSGI插件开发示例
扫描二维码
环境搭建
- eclipse 开发工具
Felix Framework
OSGI插件运行环境
安装运行步骤:下载felix
wget http://mirror.olnevhost.net/pub/apache//felix/ org.apache.felix.main.distribution-4.6.0.tar.gz
解压文件
tar -zxvf org.apache.felix.main.distribution-4.6.0.tar.gz
运行felix
cd felix-framework-4.6.0
java -jar bin/felix.jar显示: “Welcome to Apache Felix Gogo” 表明安装成功.
至此,环境搭建完毕.开发步骤
创建plugin project
![image](http://7wy48o.com1.z0.glb.clouddn.com/plugin-create.png-blogpic) 创建成功后,会生成如下目录: SampleOne //工程名 ├── META-INF │ └── MANIFEST.MF //plugin配置文件,负现包目录的导入与导出,以及第三方jar的加载 ├── bin //编译目录 │ └── sampleone │ └── Activator.class ├── build.properties └── src //源代码目录 └── sampleone └── Activator.java
编辑源码及配置文件:
编辑
Activator.java
此文件为插件装载启动或停止时,调用对应的start及stop方法。可以start方法中执行一些服务注册或初始化工作,以及在stop方法中。public class Activator implements BundleActivator { private static BundleContext context; static BundleContext getContext() { return context; }
public void start(BundleContext bundleContext) throws Exception {
Activator.context = bundleContext;
while(true){
System.out.println("current time:"+new Date());
Thread.sleep(1000);
}
}
public void stop(BundleContext bundleContext) throws Exception {
Activator.context = null;
}
}
编辑配置文件
Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: SampleOne Bundle-SymbolicName: SampleOne Bundle-Version: 1.0.0.qualifier Bundle-Activator: sampleone.Activator //注册初始化加载类,需要扩展实现BundleActivator.非必须配置 Import-Package: org.osgi.framework;version="1.3.0" Bundle-RequiredExecutionEnvironment: JavaSE-1.7
- 打包