Provider Policy与Consumer Policy在bnd中的区别

首先需要了解的是bnd的相关知识:

1. API(也就是接口),

2. API Provider(接口的实现)

3. API Consumer( 接口的使用者)

OSGi中的一个版本有4个部分:

major        1

minor        1.1

micro        1.1.1

qualifier    1.1.1.qualifier

主版本 1

次版本 1.1

微版本 1.1.1

限定符 1.1.1.qualifier

主版本           破坏前后兼容性变化

次版本         向后兼容性变化

微版本           bug的修复(非API变化)

限定符        新的构建

Provider Policy其实就是接口实现的版本控制策略,API Provider需要导入API所在的包,那么它的版本变化是随着API所在包的次版本而变化的,例如如果API中添加一个新的方法(次版本发生变化),那么API Provider必须实现这个方法,要不然以后新的客户端调用这个方法时候,就没有实现。

Consumer Policy就是接口调用者的版本控制策略, Consumer Policy也需要导入API所在的包,它的版本变化是随着API所在包的主版本而变化的,因为即使API中添加了一个新方法,它也用不上,编译中也不会出现错误。但是如果API中删除一个方法(主版本发生变化),它就要发生变化了,因为它原来调用的方法可能已经被删除了,编译也就不能通过了。

以上,终于把这个以前困扰自己的问题解决了。

附上官方文档链接:http://bnd.bndtools.org/chapters/170-versioning.html

时间: 2024-11-20 08:33:56

Provider Policy与Consumer Policy在bnd中的区别的相关文章

总结:比较SARSA、SARSA(lambda)、Q-learning、on policy and off policy

前几天面试的时候被问到RL一些基础算法的区别,回来抽空做了一些整理方便加深理解. On policy与off policy 为了解决强化学习中探索与利用的平衡问题,可以采用两个策略训练模型,一个策略为行为策略,用于保持探索性,提供多样化的数据,不断优化另一个策略(目标策略). on policy的目标策略与行为策略是一个策略,在优化时,两个策略同时被优化.而off policy的目标策略与行为策略不同,可以采用重要性采样的方法实现这一目标,一个具体的例子是蒙特卡洛on policy算法与蒙特卡洛

<强化学习> on policy VS off policy

默认价值函数为Q(s,a),策略迭代更新为pai <—— epsilon-greedy(Q) policy是agent的属性,决定了agent面对某状态s时会选择哪个行为a value是agent的感觉,代表着agent对某个(s,a)的感觉,感觉它好感觉它不好 强化学习迭代过程中, policy-evaluation是获取agent按照当前policy会产生的所有感觉,即获取Qpai    : policy-improvement是根据感觉Q生成一个更好的policy on policy和of

【转】Predicate和Consumer接口– Java 8中java.util.function包下的接口

原文链接 http://ifeve.com/predicate-and-consumer-interface-in-java-util-function-package-in-java-8/ 原文链接 作者:   Mohamed Sanaulla  译者: 李璟([email protected]) 早先我写了一篇<函数式接口>,探讨了部分Java 8中函数式接口的用法.我也提及了Predicate接口属于java.util.function包, 在这篇文章中,我将展示如何应用Predicat

【转】全局变量与局部变量在内存中的区别详细解析

转自:http://www.jb51.net/article/42012.htm 作者: 字体:[增加 减小] 类型:转载 时间:2013-10-11 我要评论 以下是对全局变量与局部变量在内存中的区别进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 一.预备知识-程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)- 由编译器自动分配释放,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. 2.堆区(heap) - 一般

altersystem set recyclebin = off 报错 recyclebin 参数在11g和10g中的区别

在11g中altersystem set recyclebin = off 报错recyclebin 参数在11g和10g中的区别 在Oracle 11g中,recyclebin参数发生了微小的变化. This supported parameter was introduced inOracle 10.2.0 Version  ParameterName               Data Type             Session Modifiable             Sys

continue语句在for语句和while语句中的区别

while语句的形式: while( expression ) statement for语句的形式: for( expression1; expression2;expression3 )   // ( 初始化,条件,调整 ) statement break语句在for语句和while语句中的作用都是:永久终止其循环:而continue语句在两个语句中存在区别: 在for语句中,continue语句跳过循环体的剩余部分,直接回到调整部分: 在while语句中,调整部分是循环体的一部分,所以co

在oracle中where 子句和having子句中的区别

在oracle中where 子句和having子句中的区别 1.where 不能放在GROUP BY 后面 2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE 3.WHERE 后面的条件中不能有聚集函数,比如SUM(),AVG()等,而HAVING 可以 Where和Having都是对查询结果的一种筛选,说的书面点就是设定条件的语句.下面分别说明其用法和异同点.注:本文使用字段为oracle数据库中默认用户scott下面的emp表,sal

&lt;input type =&quot;button&quot;&gt;&lt;/input&gt;和&lt;button&gt;&lt;/button&gt;在mvc中的区别

今天整了一上午,在MVC3中的form表单中放一个<button></button>一触发button中的onclick事件尽管没submit但仍然会提交表单(提交地址是默认传过来的地址一般为/ControllerName/Index)而<input type="button"></input>则不会 无意中把<button>标签放到了<form>标签中,你会发现点击这个button变成了提交,相当于<inp

二级域名和二级目录在SEO中的区别

就好比绝缘体和非绝缘体一样,并不是绝对的,在一些站中,二级域名要高于二级目录,在一些站中二级目录会高于二级域名.下面来简单给你分析下二级域名和二级目录的情况吧. 分析权重: 很多朋友都知道,二级域名其实就是从主站分出去的一个小站,小站会分取主站的权重.如果二级域名过多,而没有充足的人手和时间来打理,很容易会造成权重偏衡. 大小失衡:如果用大量的二级域名做栏目页面,容易导致主站内容缺乏,数量和质量出现问题,主站没有内容,权重相对会很低.当搜索引擎爬行到二级域名的时候,会把它当作小站处理.换句话说,