[英]How to find annotated classes in OSGi bundle
我的應用程序有幾個包,它們包含JAXB注釋類和服務包,它負責創建JAXBContext
。
服務包注冊BundleListener
並捕獲生命周期事件,但問題是我不知道如何從org.osgi.framework.Bundle
對象中檢索帶注釋的類。 在MANIFEST.MF
和Bundle.loadClass(..)
添加帶有類的條目將解決我的問題,但是通過注釋查找類似乎對我來說是更明確的解決方案。
你知道如何找到帶注釋的課程嗎?
我想我必須掃描jar
文件中的.class
資源
Enumeration<?> classes = bundle.findEntries("/", "*.class", true)
並使用Bundle.loadClass(...)
加載它們。 你認為這種方法會出現任何性能問題嗎?
使用Bundle.findEntries
搜索包不會搜索Bundle-Classpath。 您需要使用新的BundleWiring.listResources
api。
看看http://sourceforge.net/projects/extcos/ ; 雖然它的重點是組件掃描,但我認為它可以涵蓋您的用例。 請注意,注釋在JAXB中是可選的 - 也就是說,JAXB可以使用類而無需注釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.