如何在OSGi包中找到带注释的类

AVa*_*hev 9 java osgi jaxb

我的应用程序有几个包,它们包含JAXB注释类和服务包,它负责JAXBContext创建.

服务包注册BundleListener并捕获生命周期事件,但问题是我不知道如何从org.osgi.framework.Bundle对象中检索带注释的类.添加具有类进入MANIFEST.MF,并Bundle.loadClass(..)能解决我的问题,而是通过注释发现类似乎更明确的解决方案我.

你知道如何找到带注释的课程吗?

我想我必须扫描jar文件中的.class资源

Enumeration<?> classes = bundle.findEntries("/", "*.class", true)
Run Code Online (Sandbox Code Playgroud)

并加载它们Bundle.loadClass(...).你认为这种方法会出现任何性能问题吗?

BJ *_*ave 6

搜索捆绑包Bundle.findEntries不会搜索Bundle-Classpath.你需要使用新的BundleWiring.listResourcesapi.