如何检查我的RCP应用程序的OSGi插件是否已成功加载?

时间:2014-01-20 16:36:59

标签: eclipse plugins osgi rcp osgi-bundle

我刚刚在我的RCP应用程序的“插件”文件夹中添加了一个新的OSGi插件/软件包(不是eclipse的插件文件夹,它是应用程序本身的插件)。我想检查插件是否已成功加载。我怎样才能在Eclipse IDE中执行此操作?

不幸的是,我不能像在Eclipse中那样在“帮助 - >关于”下查找它,因为我的RCP应用程序中不存在这些按钮。

提前致谢。

1 个答案:

答案 0 :(得分:0)

在Eclipse中,您可以使用OSGi控制台。请参阅此问题如何打开它:How to Open OSGi Console in Eclipse Juno

在您的RCP应用程序中,以-console启动它应该会在您启动它的终端中为您提供一个OSGi控制台。您可能需要包含插件org.eclipse.equinox.console才能实现此目的。

之后,您可以使用控制台显示任何捆绑包的状态:

osgi> ss org.eclipse.equinox.console
"Framework is launched."


id      State       Bundle
286     ACTIVE      org.eclipse.equinox.console_1.0.100.v20130429-0953

osgi> bundle org.eclipse.equinox.console
org.eclipse.equinox.console_1.0.100.v20130429-0953 [286]
  Id=286, Status=ACTIVE      Data Root=/home/adigulla/packages/eclipse/e4/kepler-SR1/configuration/org.eclipse.osgi/bundles/286/data
  "Registered Services"
    {java.lang.Object}={osgi.command.function=[comp,component,dis,disAll,disable,disableAll,en,enAll,enable,enableAll,list,ls], osgi.command.scope=equinox, service.id=134}
    {java.lang.Object}={osgi.command.function=[confapply], osgi.command.scope=equinox, service.id=135}
    {java.lang.Object}={osgi.command.function=[ns,pt], osgi.command.scope=equinox, service.id=136}
    {java.lang.Object}={osgi.command.function=[lockApp,schedApp,startApp,stopApp,unlockApp,unschedApp,activeApps,apps], osgi.command.scope=equinox, service.id=137}
    {org.apache.felix.service.command.Converter}={service.id=138}
...