在Eclipse中获取所有bundle的Bundle []

时间:2009-03-26 20:13:36

标签: java plugins eclipse-plugin osgi

我正在编写一个使用Equinox作为我的OSGi框架的应用程序。我正在尝试发现我的捆绑包注册时所知的所有捆绑包。我试图使用以下行来检索所有可用的包。然而,

EclipseStarter.getSystemBundleContext()getBundles();

警告我......

不鼓励访问:由于对所需库D:\ java \ eclipse \ plugins \ org.eclipse.osgi_3.4.0.v20080605-1900.jar

的限制,无法访问EclipseStarter类型的方法getSystemBundleContext()

获取框架中所有可用捆绑包的列表的正确用法是什么?

1 个答案:

答案 0 :(得分:2)

您可以在插件激活器中使用自己的捆绑上下文作为入口点而不是EclipseStarter:

start(BundleContext context)
{
  context.getBundles();  // what you want
}

如果您不了解PluginAbstractUIPlugin类,请查看它们。 如果你真的需要单独访问,你的插件可能就是一个 - 随意公开YourPlugin.getInstance().getBundleContext()

(免责声明:我没有尝试过 - 但它与OSGi / Eclipse一致)