Apache ACE の関連付けにより、フィルター式を使用して、アーティファクト、機能、ディストリビューション、およびターゲット間の多対多の関係を作成できます。
Web UI を使用する場合は、任意の列間でドラッグ アンド ドロップするたびに関連付けを作成します。内部的には、ドラッグ アンド ドロップに関係するエンティティと完全に一致するフィルター条件を使用して、常に 1 対 1 の関係が作成されます。
ただし、GoGo シェルまたは REST API を使い始めるとすぐに、より強力な関連付けを作成できます。それぞれに左側と右側があり、それぞれにフィルター条件を指定できます。これらのフィルターは、あなたが言及した例とほぼ同じです。
例 (Eclipse から server-allinone.bndrun を実行) とシェル タイプ:
w = (cw)
作業するワークスペースを作成するには:
$w cd dist-1
$w ct target-1
$w ct target-2
ディストリビューションと 2 つのターゲットを作成します。次に、関連付けを作成します。
$w cd2t "(name=dist-1)" "(id=target-*)" 1 n
これにより、最初の式に一致する分布と 2 番目の式に一致するターゲットとの間の関連付けが作成されます。左側は 1 つのエンティティのみに一致し、右側は 'n' (複数) に一致します。ついに:
$w commit
ワークスペースをコミットします。ここで Web UI にログインし、最新バージョンを取得して「dist-1」を選択すると、両方のターゲットに関連付けられていることがわかります。同じく「target-」で始まる 3 番目のターゲットを追加してみて、それも自動的に関連付けられることを確認してください。別の名前の 4 番目のターゲットを追加して、このターゲットが一致しないことを確認します。
OSGi のようなフィルター条件もより複雑になる可能性があるため、属性 (必要に応じてユーザー定義も) を使用して、より複雑な関連付けを作成することもできます。