今天我使用了OSGi掛鉤,特別是FindHook
和EventListenerHook
服務。我想嘗試代理服務。 EventListenerHook
工作正常,我的服務代理。但我意識到,FindHook
事件would'nt被稱爲如果服務將通過註釋相關setXXX
法@Reference
(BND風格)獲得服務實現的參考。也許這不是註釋的問題,而是一般的DS。Service.FindHook事件並未通過向組件添加服務引用而調用
這是相當糟糕,卑詩省有註冊一個沒有代理和一個代理的兩個服務。我只想從代理人那裏獲得參考。一般情況下,沒有DS,你可以通過調用BundleContext.getServiceReference(java.lang.Class<S> clazz)
和事件FindHook.find
將被調用,在那裏你可以決定你想返回ServiceReference
引用。
什麼樣的過程會時,我使用的方法一樣DS(對我來說:BND註釋@Reference
)被執行?正如我在上節所描述的那樣:我想確定應該引用哪些服務。
OK。你的意思是它有什麼需要做什麼樣的框架我使用?來回例如我正在使用Apache Felix。 – 2012-08-02 12:31:01
不是OSGi框架,而是Declarative Services的實現(您也可能從Apache Felix項目中獲得)。 – 2012-08-03 15:41:23