2012-09-19 39 views
2

看到羅伯特·鄧恩的OSGi Dependencies: Heaven and Hell後,我在下面特別感興趣的是:如何在激活捆綁包時自動激活捆綁的依賴關係?

如果您正在使用一個解析器,這是不知道的ACTIVE束 依賴,那麼你就必須來管理這一切你自己。隨着 敏捷,你只需要問你需要什麼,讓解決方案照顧 其餘的。這加快了開發生命週期,並使腳本中的冗餘雜亂無章。

就像理查德說的那樣,使用obr可以解決解析時間依賴關係。但是,我認爲如果不掃描捆綁包的源代碼,則很難解決活動時間依賴性(自動激活捆綁包的依賴性)。

例如,如果一個捆綁包A使用一個使用BundleContext.register方法在捆綁包B上註冊的服務,那麼當激活捆綁包A時,我們怎麼能知道我們也必須激活捆綁包B?

+0

你也許應該添加一個OSGi標籤 –

+0

感謝Robert的建議! –

回答

2

整個方法背後的假設是捆綁包將提供指示其需求和能力的元數據。可以從包中的其他工件(例如web.xml文件或聲明性服務組件文件)推斷出一些額外的信息。

即使存在代碼級依賴關係,也無法檢測任意動態類加載 - 元數據是必不可少的。

編寫一個程序,可以確定一個包的所有可能的功能和要求將是一個硬靜態分析問題,並且這些是不可能的。