📔规则文件格式
LiteFlow支持3种配置方式
- xml
- json
- yml
json,yml,xml配置起来都差不多,不会增加你额外的学习负担。只是形式不同而已。
提示
在后面的章节中,示例基本都是以xml配置来进行,如要换成json和yml,则自行参考这章给出的配置范本。
# 规则组成部分
LiteFlow的规则文件非常轻量,非常容易上手。主要由Node节点和Chain节点组成。
提示
必须要说明的是,Node节点在Springboot/Spring环境体系中是非必须的,只要将相应的组件注册到上下文中即可。当然如果配置在规则文件中,框架也会将节点注册到Spring上下文中。
在非Spring环境体系中,Node节点是必须的。如果不配置Node,系统会报找不到节点的错误。这点要务必注意下。
以下的格式是只作为一个范本,提供给使用者参考。
XML在三种模式下的配置示例
在xml形式下的rule-source的配置方式如下:
本地文件:liteflow.rule-source=config/flow.el.xml
zk方式:liteflow.rule-source=el_xml:127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
自定义配置源:liteflow.rule-source=el_xml:com.yomahub.liteflow.test.TestCustomParser
<?xml version="1.0" encoding="UTF-8"?>
<flow>
    <nodes>
        <node id="a" class="com.yomahub.liteflow.test.parser.cmp.ACmp"/>
        <node id="b" class="com.yomahub.liteflow.test.parser.cmp.BCmp"/>
        <node id="c" class="com.yomahub.liteflow.test.parser.cmp.CCmp"/>
        <node id="d" class="com.yomahub.liteflow.test.parser.cmp.DCmp"/>
    </nodes>
    <chain name="chain1">
        THEN(
            a, b, WHEN(c,d)
        );
    </chain>
</flow>
JSON在三种模式下的配置示例
在json形式下的rule-source的配置方式如下:
本地文件:liteflow.rule-source=config/flow.el.json
zk方式:liteflow.rule-source=el_json:127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
自定义配置源:liteflow.rule-source=el_json:com.yomahub.liteflow.test.TestCustomParser
{
  "flow": {
    "nodes": {
      "node": [
        {
          "id": "a",
          "class": "com.yomahub.liteflow.test.parser.cmp.ACmp"
        },
        {
          "id": "b",
          "class": "com.yomahub.liteflow.test.parser.cmp.BCmp"
        },
        {
          "id": "c",
          "class": "com.yomahub.liteflow.test.parser.cmp.CCmp"
        },
        {
          "id": "d",
          "class": "com.yomahub.liteflow.test.parser.cmp.DCmp"
        }
      ]
    },
    "chain": [
      {
        "name": "chain1",
        "value": "THEN(a, b, WHEN(c, d))"
      }
    ]
  }
}
YAML在三种模式下的配置示例
在yaml形式下的rule-source的配置方式如下:
本地文件:liteflow.rule-source=config/flow.el.yml
zk方式:liteflow.rule-source=el_yml:127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
自定义配置源:liteflow.rule-source=el_yml:com.yomahub.liteflow.test.TestCustomParser
flow:
  nodes:
    node:
      - id: a
        class: com.yomahub.liteflow.test.parser.cmp.ACmp
      - id: b
        class: com.yomahub.liteflow.test.parser.cmp.BCmp
      - id: c
        class: com.yomahub.liteflow.test.parser.cmp.CCmp
      - id: d
        class: com.yomahub.liteflow.test.parser.cmp.DCmp
  chain:
    - name: chain1
      value: "THEN(a, b, WHEN(c, d))"
// Make sure to add code blocks to your code group
 
 

