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

时间:2010-11-11 10:26:59

标签: java eclipse-plugin osgi bundle

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

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

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

请参阅我对this question的回答。 4.3将有一个新的捆绑连接API,允许这样的事情。

答案 2 :(得分:0)

您可以打开OSGi控制台并发出以下命令:

ss

到包的列表,包括数字ID

bundle <id>

获取更多信息,包括依赖项。

您还应该尝试

help

获取更多命令