1. 程式人生 > >Provider Policy與Consumer Policy在bnd中的區別

Provider Policy與Consumer Policy在bnd中的區別

provider provide 即使 導入 問題 org 兼容性 version 出現

首先需要了解的是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

Provider Policy與Consumer Policy在bnd中的區別