我在學習OSGi,我很好奇以下情況:如何更新OSGI中的接口?
我想改變(大部分)由OSGi公開的接口,而不改變類名。是否有可能製作一個將舊界面「翻譯」爲新界面的軟件包。
下面是一個例子,我希望它已經足夠清楚了,只需使用一些清單標題即可。 假設我有這些OSGi bundle了:
Bundle-Name: Example Iface1 Implementation
Import-Package: org.osgi.framework
Export-Package: example.interfaces;version="1.0"
Bundle-Name: Example Iface1 User
Import-Package: org.osgi.framework, example.interfaces;version="1.0"
但後來我需要更新公開接口(一個或多個)。 接口類別名稱保持不變,但添加了功能。 所以我創建:
Bundle-Name: Example Iface2 Implementation
Import-Package: org.osgi.framework
Export-Package: example.interfaces;version="2.0"
我可以做這樣的bunlde翻譯的新界面到老了,需要捆綁?
Bundle-Name: Interface Translator
Import-Package: org.osgi.framework, example.interfaces;version="2.0"
Export-Package: example.interfaces;version="1.0"
因爲在這種情況下,我不知道該怎麼做Java中的進口...
還是有更好的方法做處理這種情況的OSGi?
我不知道語義版本控制。這在大多數情況下提供了一個好方法!但是,我仍然想知道是否有一種方法可以在主要版本更改之間進行「翻譯」。這種變化是後向不相容的,但可能有辦法解決這個問題。 – 2010-11-03 07:59:50