p2 コンソールを起動すると、p2 クエリ言語を使用して、バンドルに依存するすべての機能を見つけることができます。私の例はEclipse Juno(4.2)にあります:
- コンソール ビューで OSGi コンソールに切り替えます
- ss p2.console # コンソールのバンドル番号を見つける
- felix:start -t consoleBundleNumber
これで、p2 クエリを発行できます。現在のインストールのどの機能にorg.eclipse.jfaceが含まれているかを調べるには、次を使用できます。
osgi> provlpquery this "select(parent | parent.properties['org.eclipse.equinox.p2.type.group'] == true && parent.requirements.exists(rc | everything.exists(iu | iu.id == 'org.eclipse.jface' && iu ~= rc)))" true
org.eclipse.e4.rcp.feature.group 1.1.0.v20120521-2329-8yFTIGF3GGduEYqkQB9M3DKn
org.eclipse.e4.tools.css.spy.feature.feature.group 0.12.0.v20111206-1509-17B-7w3123161302752
どの機能にorg.eclipse.ui.views.properties.tabbedが含まれているかを調べるには、次を使用できます。
osgi> provlquery http://download.eclipse.org/releases/juno "select(parent | parent.properties['org.eclipse.equinox.p2.type.group'] == true && parent.requirements.exists(rc | everything.exists(iu | iu.id == 'org.eclipse.ui.views.properties.tabbed' && iu ~= rc)))" true
org.eclipse.amp.amf.feature.group 0.9.0.v20120528-0244
org.eclipse.bpel.feature.feature.group 1.0.1.v20120606-0845-CI
org.eclipse.jwt.feature.feature.group 1.2.0.v201205310546-7O7i-FK_Qj4QkVn3kW9q
org.eclipse.platform.feature.group 4.2.0.v20120528-1648-9JF7BHV8FyMteji0MoOeOuU6sAnxIeYtKNM1dK
org.eclipse.ptp.etfw.tau.feature.group 6.0.0.201206052145
org.eclipse.tcf.te.feature.feature.group 1.0.0.201206051725
org.eclipse.tcf.te.tcf.feature.feature.group 1.0.0.201206051725
この場合、org.eclipse.platform.feature.groupが最も正しいものです。
最初の例は、実行中の eclipse でプロファイルをクエリするため、provlpquery thisを使用します。2 番目の例は、外部の p2 リポジトリを指定しているため、provlquery repoを使用します。
p2 コンソールの詳細については、http://wiki.eclipse.org/Equinox_p2_Console_Users_Guideを参照してください。たくさんの黒魔術が行われています :-)