Apache ACE中是否有任何规则引擎可以跳过UI操作:注册目标,安装分发?

时间:2014-02-14 06:28:28

标签: java osgi apache-ace

我是否可以通过以下方式配置任何规则引擎:

  • 注册与过滤器匹配的目标(targerID = com.acme.ace.test.target。*)
  • 将distribution1安装到与过滤器匹配的目标(targerID = com.acme.ace.test.target.local- *)
  • 将distribution2和3安装到与过滤器匹配的目标(targerID = com.acme.ace.test.target.remote- *)

1 个答案:

答案 0 :(得分:2)

Apache ACE中的关联允许您使用过滤器表达式在工件,功能,分布和目标之间创建多对多的关系。

如果您使用Web UI,则可以在任何列之间拖放时创建关联。在封面下,它始终与过滤条件创建一对一的关系,这些条件与拖放中涉及的实体完全匹配。

但是,只要您开始使用GoGo shell或REST API,就可以创建更强大的关联。每个都有左侧和右侧,每侧可以指定过滤条件。这些过滤器几乎与您提到的示例完全相同。

示例(从Eclipse运行server-allinone.bndrun)和shell类型:

w = (cw)

创建要使用的工作空间,然后:

$w cd dist-1
$w ct target-1
$w ct target-2

创建分发和两个目标。然后创建一个关联:

$w cd2t "(name=dist-1)" "(id=target-*)" 1 n

这会在匹配第一个表达式的分布与匹配第二个表达式的目标之间创建关联。左侧只能匹配一个实体,右侧可以匹配“n”(多个)。最后:

$w commit

提交工作区。如果您现在登录Web UI,检索最新版本并选择“dist-1”,您将看到它与两个目标相关联。尝试添加第三个目标,也从'target-'开始,看它也会自动关联。添加具有不同名称的第四个目标,以确认此目标不匹配。

过滤条件(如OSGi中)也可能更复杂,因此您也可以使用属性(如果需要,也可以使用用户定义)来创建更复杂的关联。