Bnd - Bundle Tool中文使用手册

在Play OSGi中提及到了Bnd是个非常有用的东西,既然是个好东西,就介绍给大家用,在得到了Peter的授权下,我把这篇使用手册翻译成了中文,大家感兴趣的话可以到这里看看:http://www.aqute.biz/Code/BndCn ,同时也会提供一个PDF的版本供大家下载,PDF版本下载地址为:http://www.blogjava.net/Files/BlueDavy/Bnd.zip
有 了Bnd后,传统的java工程非常容易打包成标准的OSGi R4的bundle,同时Bnd也为校验Bundle是否符合OSGi R4规范提供了支持,而且Bnd有命令行、Eclipse插件、Ant Task和Maven插件,拿过来非常的好用,强烈推荐大家用用看。
不过如果Bnd推出一个图形的编辑文件内容的插件就更好了,就像插件里的Manifest.MF的图形编辑器一样,那样Bnd就好用了。
在这里简单的说一个使用Bnd打包生成Bundle的例子,
例如我们要把Eclipse里A工程里的接口和实现打包成两个Bundle:
首先把接口部分cn.org.osgi.demo里的类打包为demo Bundle,并允许其他Bundle访问到这个package,那么就只需要在A工程里建立一个cn.org.osgi.demo.bnd的文件,文件内容这么写:
Export-Package = cn.org.osgi.demo;-noimport:=true;version=1.0
Bundle-Version = 1.0
然后就只需要在Eclipse里选中此文件,点击右键,选择Make Bundle就会在和bnd文件同级的目录下生成一个cn.org.osgi.demo.jar文件,打开这个jar文件查看它的manifest.mf文件,内容如下:
Manifest-Version: 1.0
Bundle-Name: A
Created-By: 1.4.2_03 (Sun Microsystems Inc.)
Bundle-ManifestVersion: 2
Bundle-SymbolicName: cn.org.osgi.demo
Tool: Bnd-0.0.160
Bnd-LastModified: 1185523455812
Export-Package: cn.org.osgi.demo;version=1.0
Bundle-Version: 1.0
可以看到,Bnd已经按照OSGi规范生成了标准的manifest.mf的内容。
然后把实现部分cn.org.osgi.demo.impl里的类打包为demo Impl Bundle,同样的在A工程里建立一个cn.org.osgi.demo.impl.bnd的文件,文件内容这么写:
Private-Package = cn.org.osgi.demo.impl
Bundle-Version = 1.0
同样的方法打包生成此Bundle,这个Bundle的manifest.mf文件内容为:
Manifest-Version: 1.0
Bundle-Name: A
Private-Package: cn.org.osgi.demo.impl
Created-By: 1.4.2_03 (Sun Microsystems Inc.)
Import-Package: cn.org.osgi.demo
Bundle-ManifestVersion: 2
Bundle-SymbolicName: cn.org.osgi.demo.impl
Tool: Bnd-0.0.160
Bnd-LastModified: 1185523495406
Bundle-Version: 1.0
可 以看到,基于Bnd我们非常容易就把一个传统的java工程打包成了两个有效的OSGi R4的Bundle,从这可以看出这对于要把传统的java系统重构为基于OSGi的系统会有很大的帮助,除了打包生成Bundle外,Bnd本身还具备 了校验bundle是否符合OSGi R4规范、把新的文件或jar文件添加到已存在的Bundle中去。
如果觉得还不错的话,大家不妨试试,具体的使用方法可以看使用手册。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值