OSGi规范解读笔记——uses用法

开始读OSGi的规范文档,发现很多不懂之处,对其中的理解记录在此

uses用法

uses放在export header里面,用于限制依赖资源的版本,如果框架中有同一个包的多个版本,在uses的限制下,如果检测到版本冲突,osgi标准的resolve算法会抛出uses conflict

-osgi中的类由class loader和class name决定,当两个以上的class loader都加载了同样class name的类,并发生“contact”,就会报错,因此引入uses机制

-uses标记的包,一定是要么被当前bundle导出,要么导入的


for example:

bundle A

version 1.0

export package a version 1.0


bundle A

version 2.0

export package a version 2.0


bundle B

version 1.0

import package a version 1.0

export package b uses:=a 


bundle C

version 1.0

import package a version 2

解析两个A和一个B都没问题,但是再解析C就会有问题,因为uses不允许a的不同版本出现,作如下修改就正确了

bundle C

version 1.0

import package a version 1


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值