仅在servicemix上列出捆绑包ID

时间:2013-04-15 11:32:42

标签: osgi apache-karaf osgi-bundle apache-servicemix

我正在使用ServiceMix,我试图列出一些捆绑包,只检索捆绑包ID。 我正在尝试执行以下操作:

  

osgi:list | grep -i | awk xxx

我尝试使用awk,但ServiceMix中没有提供。 我也试过用shell:exec这样:

  

osgi:list | grep -i | shell:exec awk 'xxx'

但这也不起作用,也许我的做法完全错了。 是否有其他人有一些经验,我如何才能实现我的目标,即只检索捆绑的id?

2 个答案:

答案 0 :(得分:6)

你可以随时使用Karaf的shell语言(作为karaf 2.3.1的作品)

bundles = $.context bundles ;
echo "Printing bundle information" ;
each ($bundles) {
    symbolicName = $it symbolicName ;
    bundleId = (($it bundleid) toString) ;
    echo "Symbolic name : " $symbolicName " Bundle Id : " $bundleId ;
}

运行时,这将输出类似于:

的内容
Symbolic name :  org.apache.felix.framework  Bundle Id :  0
Symbolic name :  org.ops4j.pax.url.mvn  Bundle Id :  1
Symbolic name :  org.ops4j.pax.url.wrap  Bundle Id :  2
Symbolic name :  org.ops4j.pax.logging.pax-logging-service  Bundle Id :  3

答案 1 :(得分:0)

我不认为有sed / awk命令。而list命令不仅可以显示包ID。

您可以记录JIRA票证以进行增强。也许对于list命令的选项来选择仅列出的内容(bundle id,bundle version,state等) http://karaf.apache.org/index/community/support.html