OSGI入门例子
2015-07-15 23:45
375 查看
本例子是基于felix容器运行的例子
一:
使用eclipse新建一个 Plug-in Project 项目
注意,
1:Project name 建议用包名加项目名的形式
2:这里的 an OSGI framework 选择 stadard 表示这是一个标准的OSGI程序,可以运行在任何OSGI容器中
然后,继续下一步,Finish即可
二:编辑Activator.java
然后,编辑META-INF/MANIFEST.MF文件
这里需要注意的是:Bundle-Activator ,需要写全路径
三:导出bundle
右键项目,选择Export ,
选择 Deployable plug-ins and fragments
下一步
在Distation中,选择第二个,Archive file,选择导出目录
四:安装felix
下载最新版felix
org.apache.felix.main.distribution-5.0.1.tar.gz
解压之后,cd felix-framework-5.0.1
执行 java -jar bin/felix.jar [注意,不要进入到bin 目录下,执行 java -jar felix.jar]
进入到felix的控制台
输入help之后,可以看到全部命令
把刚才导出的*.zip文件解压开来,会在plugins目录下生成一个*.jar文件
在felix控制台上执行
install file:/tmp/*.jar
然后,执行lb即可查看容器中的全部bundle
执行 start id
即可看到输出
----------start----------
-------bundleChanged-----
com.lala.cctv bundleChanged , type=2
一:
使用eclipse新建一个 Plug-in Project 项目
注意,
1:Project name 建议用包名加项目名的形式
2:这里的 an OSGI framework 选择 stadard 表示这是一个标准的OSGI程序,可以运行在任何OSGI容器中
然后,继续下一步,Finish即可
二:编辑Activator.java
package com.lala.shop; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; public class Activator implements BundleActivator { static BundleContext bundleContext; public void start(BundleContext context) throws Exception { bundleContext = context; context.addBundleListener((event) -> { System.out.println("-------bundleChanged-----"); System.out.println(event.getBundle().getSymbolicName() + " bundleChanged , type="+event.getType()); }); System.out.println("----------start----------"); } public void stop(BundleContext context) throws Exception { bundleContext = null; System.out.println("----------stop----------"); } }
然后,编辑META-INF/MANIFEST.MF文件
Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Shop Bundle-SymbolicName: com.lala.shop Bundle-Version: 1.0.0 Bundle-Activator: com.lala.shop.Activator Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Import-Package: org.osgi.framework;version="1.3.0"
这里需要注意的是:Bundle-Activator ,需要写全路径
三:导出bundle
右键项目,选择Export ,
选择 Deployable plug-ins and fragments
下一步
在Distation中,选择第二个,Archive file,选择导出目录
四:安装felix
下载最新版felix
org.apache.felix.main.distribution-5.0.1.tar.gz
解压之后,cd felix-framework-5.0.1
执行 java -jar bin/felix.jar [注意,不要进入到bin 目录下,执行 java -jar felix.jar]
进入到felix的控制台
输入help之后,可以看到全部命令
把刚才导出的*.zip文件解压开来,会在plugins目录下生成一个*.jar文件
在felix控制台上执行
install file:/tmp/*.jar
然后,执行lb即可查看容器中的全部bundle
执行 start id
即可看到输出
----------start----------
-------bundleChanged-----
com.lala.cctv bundleChanged , type=2
相关文章推荐
- android SDK 快速更新配置(转)
- 颜色代码参考表
- 线程之间的协作
- HDOJ 1013 Digital Roots(算是大数水题)
- js里面的实例方法和静态方法
- 用C语言编写一系列简单的程序
- java网络编程(2)——UDP与TCP
- 15-07-12 函数、递归
- zhichi
- 两次装系统的经验
- Java 操作 SQLite 数据库
- android studio的layout下面建立子文件夹
- c#学习笔记(一):提交Json和解析Json
- .Net学习笔记----2015-07-15(C#基础复习01)
- 转绑定变量
- 欢迎使用CSDN-markdown编辑器
- HTTP 协议漫谈
- 15-07-13 对战游戏
- [leetcode] 164.Maximum Gap
- 简单的两个Spinner内容相关联,Spinner与TextView关联