在运行时在Eclipse中查找依赖包

Bru*_*ert 5 java osgi bundle eclipse-plugin

Eclipse包(例如,在激活器代码中)如何在运行时找到依赖的Bundle实例?我想找到Eclipse选择的捆绑包以满足依赖性要求,我不想自己解释清单.

示例:我想在我当前捆绑所依赖的所有捆绑包中找到名为"marker.txt"的所有资源.也是传递依赖.为了实现这一点,我需要能够找到所有这些捆绑包.

And*_*aft 4

没有简单的方法来确定依赖性。最好的方法是通过 PackageAdmin 界面。请特别参阅 PackageAdmin 和 getImportingBundles 的 OSGi 规范:http://www.osgi.org/javadoc/r4v42/org/osgi/service/packageadmin/ExportedPackage.html#getImportingBundles()

您需要确定所有已安装的捆绑包中,哪一个捆绑包导出您的捆绑包正在导入的一个或多个包。实现此目的的最简单方法是使用bundles = null调用PackageAdmin.getExportedPackages(Bundle bundle)。这将返回所有导出包的数组。然后,您需要迭代该数组并调用ExportPackage.getImportingBundles()