2

私は ServiceMix を使用しており、いくつかのバンドルを一覧表示して、そこにあるバンドル ID のみを取得しようとしていました。私は次のことをしようとしています:

osgi:リスト | grep -i | awk xxx

awk を使用しようとしましたが、ServiceMix では提供されていません。また、次のように shell:exec を使用しようとしました。

osgi:リスト | grep -i | シェル:実行awk 'xxx'

しかし、それもうまくいきません。おそらく私のアプローチは完全に間違っています。バンドルのIDのみを取得するという目標を達成する方法を他の誰かが経験していますか?

4

2 に答える 2

6

Karaf のシェル言語をいつでも利用できます (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
于 2013-05-23T20:49:36.440 に答える
0

sed/awk コマンドがあるとは思わない。また、list コマンドはバンドル ID を表示するだけではありません。

強化のために JIRA チケットを記録できます。おそらく、リストコマンドのオプションで、リストするもののみを選択します(バンドルID、バンドルバージョン、状態など) http://karaf.apache.org/index/community/support.html

于 2013-05-12T07:04:35.433 に答える