0

OSGI バンドルをターゲットにデプロイするために Apache ACE を使用しています。apace ace UI を使用して手動で正常に実行できますが、「Gogo Shell client API」でシェル スクリプトを実行して実行しようとすると、機能が存在するか、機能を作成する前に関連付けが存在します。また、シェルのスクリプトを介して成果物と機能の間の関連付けを削除できません。これに関するアイデアは本当に役に立ちます。ありがとう

4

1 に答える 1

0

機能または関連付けが存在するかどうかを確認するには、ワークスペースで "lf" (機能の場合) コマンドを使用してクエリを実行できます。たとえば、「test」という機能が存在するかどうかを確認する場合は、次を使用できます。

res = ($workspace lf "(name=test)")
if { (coll:first $res) } { echo "yes" } { echo "no" }

最初の行には、パターンに一致するすべての機能が一覧表示されます。コレクションを返します。2 行目は、リストから最初の項目 (存在する場合) を取得し、それに基づいて "if" の句の 1 つが実行されます。必要に応じて、これを 1 行にまとめることができます。わかりやすくするために分割しています。

機能または関連付けを削除するには、次のようにします。

$workspace df "(name=test)"

式に一致するすべての機能を削除するか、シェル変数に既に機能オブジェクトがある場合:

$workspace df $featureObject

たとえば、アーティファクトと機能の間の関連付けについても同じことが言えます。たとえば、特定の記号名を持つバンドルと test と呼ばれる機能の間の関連付けを削除したいとします。

$workspace da2f "(&(leftEndpoint=\\28Bundle-SymbolicName=org.foo\\29)(rightEndpoint=\\28name=test\\29))"

\\28leftEndpointとrightEndpoint の値の角かっこは\\29、式で直接使用できないため、エスケープする必要があることに注意してください。

于 2015-10-28T17:18:30.010 に答える