我使用maven-scr-plugin生成組件和元類型描述。我正在從org.apache.felix.scr註釋遷移到org.osgi.service.component註釋。使用maven-scr-plugin和OSGI R6註釋生成元類型描述
卡斯滕齊格勒寫了一個很好的博客如何做這個遷移here。但是,這並不解釋如何從組件註釋直接生成元類型描述。相反,我必須爲每個組件創建一個單獨的配置@interface,並重寫所有組件激活器(至少要利用這些額外的@interface類的附加值)。
我仍然可以使用maven-scr-plugin通過添加對org.apache.felix.scr.ds-annotations
的依賴來處理osgi註釋。但是,如果顯式打開maven-scr-plugin,則僅輸出元類型信息。通過felix註釋,@Component
註釋中的專用參數metatype=true
可用於啓用元類型生成。但是,此類參數在@Component
註釋的OSGi版本中不可用。
有沒有辦法強制maven-scr-plugin生成元類型描述,或者我可以使maven-bundle-plugin(或bndtools)基於osgi @Component註釋生成元類型數據,而不是必須爲每個組件定義一個專用配置類?
是的,我明白了,這個工作沒有問題。然而,要正確地做到這一點,我還必須更改所有激活器,如您的示例所示(我知道它可以不用,但在我的類中留下了大量未使用的樣板代碼)。我能否將您的答案看作是確認bnd不支持我正在尋找的方法?然後我可以排除該解決方案路徑,只留下maven-scr插件作爲可能的解決方案。 –
上面的代碼顯示了OSGi是什麼標準化的... –