以下内容参考《OSGi and Apache Felix 3.0 Beginner's Guide》,作为自己的学习记录。
在OSGi框架中,bunlde作为其模块化实体,我们把bundle作为一个project进行开发。
开发:
1. 使用maven默认的文件结构作为bunlde的文件结构:
2. 在com.packtpub.felix.bookshelf-inventory-api目录下有pom.xml文件。该文件用于存放bundle的相关信息,maven和felix用这些信息构建bundle。
3. 项目的java文件存放于src/main/java目录下。
部署
1. 首先确保安装好maven,将下载好的maven文件进行解压,然后在环境变量的path中添加解压文件中bin文件路径即可。在命令行用指令mvn -version检查是否安装成功。
2.进入到bundle文件目录,即com.packtpub.felix.bookshelf-inventory-api目录。用指令mvn clean deploy进行build和部署。
3. 成功部署后会生成项目release文件夹,里面的repository.xml文件作为bundles的仓库,Felix通过它对bundles进行访问。
安装到Felix
1. 向OBR服务注册项目的repository:
repos add file:///C:/projects/felixbook/releases/repository.xml
2. 查看注册repository的bundles(用于检查是否注册成功,book作为bundles名字的过滤条件):
list book
3. 该bundle位于框架中第2级,因此设置初始化组件级为2,框架级为2。即框架从会第二级开始启动。
bundlelevel -i 2
frameworklevel 2
4. 安装并启动bundle
deploy -s "Bookshelf Inventory Impl - Mock"
5. 查看bundles,可以看到安装的bundles被启动
至此,bundle的部署、安装完成。