From 7ac63c21fcc1da52e9f15946f4fd85e895e5228a Mon Sep 17 00:00:00 2001 From: bryan31 Date: Thu, 4 Nov 2021 19:54:28 +0800 Subject: [PATCH] =?UTF-8?q?bug=20#I4FYKA=20jsonparser=E5=A5=BD=E5=83=8F?= =?UTF-8?q?=E7=BC=BA=E5=B0=91=E8=84=9A=E6=9C=AC=E6=9D=A1=E4=BB=B6=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E7=9A=84=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../liteflow/parser/JsonFlowParser.java | 28 ++++++-- .../groovy/LiteflowJsonScriptGroovyTest.java | 70 +++++++++++++++++++ ....java => LiteflowXmlScriptGroovyTest.java} | 10 +-- .../json-script/application.properties | 1 + .../src/test/resources/json-script/flow.json | 34 +++++++++ .../resources/json-script/flow_update.json | 40 +++++++++++ .../resources/script/application.properties | 1 - .../xml-script/application.properties | 1 + .../resources/{script => xml-script}/flow.xml | 0 .../{script => xml-script}/flow_update.xml | 0 .../LiteflowJsonScriptQLExpressTest.java | 69 ++++++++++++++++++ ...va => LiteflowXmlScriptQLExpressTest.java} | 8 +-- .../json-script/application.properties | 1 + .../src/test/resources/json-script/flow.json | 34 +++++++++ .../resources/json-script/flow_update.json | 40 +++++++++++ .../resources/script/application.properties | 1 - .../xml-script/application.properties | 1 + .../resources/{script => xml-script}/flow.xml | 0 .../{script => xml-script}/flow_update.xml | 0 19 files changed, 323 insertions(+), 16 deletions(-) create mode 100644 liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/script/groovy/LiteflowJsonScriptGroovyTest.java rename liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/script/groovy/{LiteflowScriptGroovyTest.java => LiteflowXmlScriptGroovyTest.java} (90%) create mode 100644 liteflow-testcase-script-groovy/src/test/resources/json-script/application.properties create mode 100644 liteflow-testcase-script-groovy/src/test/resources/json-script/flow.json create mode 100644 liteflow-testcase-script-groovy/src/test/resources/json-script/flow_update.json delete mode 100644 liteflow-testcase-script-groovy/src/test/resources/script/application.properties create mode 100644 liteflow-testcase-script-groovy/src/test/resources/xml-script/application.properties rename liteflow-testcase-script-groovy/src/test/resources/{script => xml-script}/flow.xml (100%) rename liteflow-testcase-script-groovy/src/test/resources/{script => xml-script}/flow_update.xml (100%) create mode 100644 liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/script/qlexpress/LiteflowJsonScriptQLExpressTest.java rename liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/script/qlexpress/{LiteflowScriptQLExpressTest.java => LiteflowXmlScriptQLExpressTest.java} (92%) create mode 100644 liteflow-testcase-script-qlexpress/src/test/resources/json-script/application.properties create mode 100644 liteflow-testcase-script-qlexpress/src/test/resources/json-script/flow.json create mode 100644 liteflow-testcase-script-qlexpress/src/test/resources/json-script/flow_update.json delete mode 100644 liteflow-testcase-script-qlexpress/src/test/resources/script/application.properties create mode 100644 liteflow-testcase-script-qlexpress/src/test/resources/xml-script/application.properties rename liteflow-testcase-script-qlexpress/src/test/resources/{script => xml-script}/flow.xml (100%) rename liteflow-testcase-script-qlexpress/src/test/resources/{script => xml-script}/flow_update.xml (100%) diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/parser/JsonFlowParser.java b/liteflow-core/src/main/java/com/yomahub/liteflow/parser/JsonFlowParser.java index be2fa6b19..52a6662de 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/parser/JsonFlowParser.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/parser/JsonFlowParser.java @@ -2,6 +2,7 @@ package com.yomahub.liteflow.parser; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -9,7 +10,9 @@ import com.alibaba.fastjson.parser.Feature; import com.yomahub.liteflow.common.LocalDefaultFlowConstant; import com.yomahub.liteflow.core.NodeComponent; import com.yomahub.liteflow.entity.flow.*; +import com.yomahub.liteflow.enums.NodeTypeEnum; import com.yomahub.liteflow.exception.ExecutableItemNotFoundException; +import com.yomahub.liteflow.exception.NodeTypeNotSupportException; import com.yomahub.liteflow.flow.FlowBus; import com.yomahub.liteflow.spring.ComponentScanner; import org.slf4j.Logger; @@ -60,22 +63,37 @@ public abstract class JsonFlowParser extends FlowParser { // 当存在节点定义时,解析node节点 if (flowJsonObject.getJSONObject("flow").containsKey("nodes")){ JSONArray nodeArrayList = flowJsonObject.getJSONObject("flow").getJSONObject("nodes").getJSONArray("node"); - String id, name, clazz, script; + String id, name, clazz, script, type; for (int i = 0; i < nodeArrayList.size(); i++) { JSONObject nodeObject = nodeArrayList.getJSONObject(i); id = nodeObject.getString("id"); name = nodeObject.getString("name"); clazz = nodeObject.getString("class"); + type = nodeObject.getString("type"); - //如果有class的定义,则表明是java组件,无class的定义,则表明是脚本组件 - if (StrUtil.isNotBlank(clazz)){ + //初始化type + if (StrUtil.isBlank(type)){ + type = NodeTypeEnum.COMMON.getCode(); + } + NodeTypeEnum nodeTypeEnum = NodeTypeEnum.getEnumByCode(type); + if (ObjectUtil.isNull(nodeTypeEnum)){ + throw new NodeTypeNotSupportException(StrUtil.format("type [{}] is not support", type)); + } + + //这里区分是普通java节点还是脚本节点 + //如果是脚本节点,又区分是普通脚本节点,还是条件脚本节点 + if (nodeTypeEnum.equals(NodeTypeEnum.COMMON) && StrUtil.isNotBlank(clazz)){ if (!FlowBus.containNode(id)){ FlowBus.addCommonNode(id, name, clazz); } }else{ if (!FlowBus.containNode(id)){ - script = nodeObject.getString("script"); - FlowBus.addCommonScriptNode(id, name, script); + script = nodeObject.getString("value"); + if (nodeTypeEnum.equals(NodeTypeEnum.SCRIPT)){ + FlowBus.addCommonScriptNode(id, name, script); + }else if(nodeTypeEnum.equals(NodeTypeEnum.COND_SCRIPT)){ + FlowBus.addCondScriptNode(id, name, script); + } } } } diff --git a/liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/script/groovy/LiteflowJsonScriptGroovyTest.java b/liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/script/groovy/LiteflowJsonScriptGroovyTest.java new file mode 100644 index 000000000..8e0e5875e --- /dev/null +++ b/liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/script/groovy/LiteflowJsonScriptGroovyTest.java @@ -0,0 +1,70 @@ +package com.yomahub.liteflow.test.script.groovy; + +import cn.hutool.core.io.resource.ResourceUtil; +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.entity.data.DefaultSlot; +import com.yomahub.liteflow.entity.data.LiteflowResponse; +import com.yomahub.liteflow.enums.FlowParserTypeEnum; +import com.yomahub.liteflow.flow.FlowBus; +import com.yomahub.liteflow.test.BaseTest; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import javax.annotation.Resource; + + +/** + * 测试springboot下的脚本组件,基于json配置 + * @author Bryan.Zhang + * @since 2.6.4 + */ +@RunWith(SpringRunner.class) +@TestPropertySource(value = "classpath:/json-script/application.properties") +@SpringBootTest(classes = LiteflowJsonScriptGroovyTest.class) +@EnableAutoConfiguration +@ComponentScan({"com.yomahub.liteflow.test.script.groovy.cmp"}) +public class LiteflowJsonScriptGroovyTest extends BaseTest { + + @Resource + private FlowExecutor flowExecutor; + + //测试普通脚本节点 + @Test + public void testScript1() { + LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg"); + Assert.assertTrue(response.isSuccess()); + Assert.assertEquals(Integer.valueOf(6), response.getSlot().getData("s1")); + } + + //测试条件脚本节点 + @Test + public void testScript2() { + LiteflowResponse response = flowExecutor.execute2Resp("chain2", "arg"); + Assert.assertTrue(response.isSuccess()); + Assert.assertEquals("d==>s2[条件脚本]==>a", response.getSlot().printStep()); + } + + //测试脚本的热重载 + @Test + public void testScript3() throws Exception{ + //根据配置,加载的应该是flow.xml,执行原来的规则 + LiteflowResponse responseOld = flowExecutor.execute2Resp("chain2", "arg"); + Assert.assertTrue(responseOld.isSuccess()); + Assert.assertEquals("d==>s2[条件脚本]==>a", responseOld.getSlot().printStep()); + //更改规则,重新加载,更改的规则内容从flow_update.xml里读取,这里只是为了模拟下获取新的内容。不一定是从文件中读取 + String newContent = ResourceUtil.readUtf8Str("classpath: /json-script/flow_update.json"); + //进行刷新 + FlowBus.refreshFlowMetaData(FlowParserTypeEnum.TYPE_JSON, newContent); + + //重新执行chain2这个链路,结果会变 + LiteflowResponse responseNew = flowExecutor.execute2Resp("chain2", "arg"); + Assert.assertTrue(responseNew.isSuccess()); + Assert.assertEquals("d==>s2[条件脚本_改]==>b==>s3[普通脚本_新增]", responseNew.getSlot().printStep()); + } +} diff --git a/liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/script/groovy/LiteflowScriptGroovyTest.java b/liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/script/groovy/LiteflowXmlScriptGroovyTest.java similarity index 90% rename from liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/script/groovy/LiteflowScriptGroovyTest.java rename to liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/script/groovy/LiteflowXmlScriptGroovyTest.java index fff40be3c..05307f1ed 100644 --- a/liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/script/groovy/LiteflowScriptGroovyTest.java +++ b/liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/script/groovy/LiteflowXmlScriptGroovyTest.java @@ -20,16 +20,16 @@ import javax.annotation.Resource; /** - * 测试springboot下的脚本组件 + * 测试springboot下的脚本组件,基于xml配置 * @author Bryan.Zhang * @since 2.6.0 */ @RunWith(SpringRunner.class) -@TestPropertySource(value = "classpath:/script/application.properties") -@SpringBootTest(classes = LiteflowScriptGroovyTest.class) +@TestPropertySource(value = "classpath:/json-script/application.properties") +@SpringBootTest(classes = LiteflowXmlScriptGroovyTest.class) @EnableAutoConfiguration @ComponentScan({"com.yomahub.liteflow.test.script.groovy.cmp"}) -public class LiteflowScriptGroovyTest extends BaseTest { +public class LiteflowXmlScriptGroovyTest extends BaseTest { @Resource private FlowExecutor flowExecutor; @@ -58,7 +58,7 @@ public class LiteflowScriptGroovyTest extends BaseTest { Assert.assertTrue(responseOld.isSuccess()); Assert.assertEquals("d==>s2[条件脚本]==>a", responseOld.getSlot().printStep()); //更改规则,重新加载,更改的规则内容从flow_update.xml里读取,这里只是为了模拟下获取新的内容。不一定是从文件中读取 - String newContent = ResourceUtil.readUtf8Str("classpath: /script/flow_update.xml"); + String newContent = ResourceUtil.readUtf8Str("classpath: /xml-script/flow_update.xml"); //进行刷新 FlowBus.refreshFlowMetaData(FlowParserTypeEnum.TYPE_XML, newContent); diff --git a/liteflow-testcase-script-groovy/src/test/resources/json-script/application.properties b/liteflow-testcase-script-groovy/src/test/resources/json-script/application.properties new file mode 100644 index 000000000..42559d0b3 --- /dev/null +++ b/liteflow-testcase-script-groovy/src/test/resources/json-script/application.properties @@ -0,0 +1 @@ +liteflow.rule-source=json-script/flow.json \ No newline at end of file diff --git a/liteflow-testcase-script-groovy/src/test/resources/json-script/flow.json b/liteflow-testcase-script-groovy/src/test/resources/json-script/flow.json new file mode 100644 index 000000000..b3454c1f2 --- /dev/null +++ b/liteflow-testcase-script-groovy/src/test/resources/json-script/flow.json @@ -0,0 +1,34 @@ +{ + "flow": { + "nodes": { + "node": [ + { + "id": "s1", + "name": "普通脚本", + "type": "script", + "value": "def a=3;def b=2;slot.setData(\"s1\",a*b);" + }, + { + "id": "s2", + "name": "条件脚本", + "type": "cond_script", + "value": "count = slot.getData(\"count\");if(count > 100){return \"a\";}else{return \"b\";}" + } + ] + }, + "chain": [ + { + "name": "chain1", + "condition": [ + {"type": "then", "value": "a,b,c,s1"} + ] + }, + { + "name": "chain2", + "condition": [ + {"type": "then", "value": "d,s2(a|b)"} + ] + } + ] + } +} \ No newline at end of file diff --git a/liteflow-testcase-script-groovy/src/test/resources/json-script/flow_update.json b/liteflow-testcase-script-groovy/src/test/resources/json-script/flow_update.json new file mode 100644 index 000000000..03f9d3131 --- /dev/null +++ b/liteflow-testcase-script-groovy/src/test/resources/json-script/flow_update.json @@ -0,0 +1,40 @@ +{ + "flow": { + "nodes": { + "node": [ + { + "id": "s1", + "name": "普通脚本", + "type": "script", + "value": "def a=3;def b=2;slot.setData(\"s1\",a*b);" + }, + { + "id": "s2", + "name": "条件脚本_改", + "type": "cond_script", + "value": "count = slot.getData(\"count\");if(count > 150){return \"b\";}else{return \"a\";}" + }, + { + "id": "s3", + "name": "普通脚本_新增", + "type": "script", + "value": "def a=3;def b=2;def c=10;slot.setData(\"s1\",a*b+c);" + } + ] + }, + "chain": [ + { + "name": "chain1", + "condition": [ + {"type": "then", "value": "a,b,c,s1"} + ] + }, + { + "name": "chain2", + "condition": [ + {"type": "then", "value": "d,s2(a|b),s3"} + ] + } + ] + } +} \ No newline at end of file diff --git a/liteflow-testcase-script-groovy/src/test/resources/script/application.properties b/liteflow-testcase-script-groovy/src/test/resources/script/application.properties deleted file mode 100644 index 6e99918c6..000000000 --- a/liteflow-testcase-script-groovy/src/test/resources/script/application.properties +++ /dev/null @@ -1 +0,0 @@ -liteflow.rule-source=script/flow.xml \ No newline at end of file diff --git a/liteflow-testcase-script-groovy/src/test/resources/xml-script/application.properties b/liteflow-testcase-script-groovy/src/test/resources/xml-script/application.properties new file mode 100644 index 000000000..692fc494b --- /dev/null +++ b/liteflow-testcase-script-groovy/src/test/resources/xml-script/application.properties @@ -0,0 +1 @@ +liteflow.rule-source=xml-script/flow.xml \ No newline at end of file diff --git a/liteflow-testcase-script-groovy/src/test/resources/script/flow.xml b/liteflow-testcase-script-groovy/src/test/resources/xml-script/flow.xml similarity index 100% rename from liteflow-testcase-script-groovy/src/test/resources/script/flow.xml rename to liteflow-testcase-script-groovy/src/test/resources/xml-script/flow.xml diff --git a/liteflow-testcase-script-groovy/src/test/resources/script/flow_update.xml b/liteflow-testcase-script-groovy/src/test/resources/xml-script/flow_update.xml similarity index 100% rename from liteflow-testcase-script-groovy/src/test/resources/script/flow_update.xml rename to liteflow-testcase-script-groovy/src/test/resources/xml-script/flow_update.xml diff --git a/liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/script/qlexpress/LiteflowJsonScriptQLExpressTest.java b/liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/script/qlexpress/LiteflowJsonScriptQLExpressTest.java new file mode 100644 index 000000000..196c52491 --- /dev/null +++ b/liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/script/qlexpress/LiteflowJsonScriptQLExpressTest.java @@ -0,0 +1,69 @@ +package com.yomahub.liteflow.test.script.qlexpress; + +import cn.hutool.core.io.resource.ResourceUtil; +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.entity.data.DefaultSlot; +import com.yomahub.liteflow.entity.data.LiteflowResponse; +import com.yomahub.liteflow.enums.FlowParserTypeEnum; +import com.yomahub.liteflow.flow.FlowBus; +import com.yomahub.liteflow.test.BaseTest; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import javax.annotation.Resource; + + +/** + * 测试springboot下的脚本组件 + * @author Bryan.Zhang + * @since 2.6.0 + */ +@RunWith(SpringRunner.class) +@TestPropertySource(value = "classpath:/json-script/application.properties") +@SpringBootTest(classes = LiteflowJsonScriptQLExpressTest.class) +@EnableAutoConfiguration +@ComponentScan({"com.yomahub.liteflow.test.script.qlexpress.cmp"}) +public class LiteflowJsonScriptQLExpressTest extends BaseTest { + + @Resource + private FlowExecutor flowExecutor; + + //测试普通脚本节点 + @Test + public void testScript1() { + LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg"); + Assert.assertTrue(response.isSuccess()); + Assert.assertEquals(Integer.valueOf(6), response.getSlot().getData("s1")); + } + + //测试条件脚本节点 + @Test + public void testScript2() { + LiteflowResponse response = flowExecutor.execute2Resp("chain2", "arg"); + Assert.assertTrue(response.isSuccess()); + Assert.assertEquals("d==>s2[条件脚本]==>b", response.getSlot().printStep()); + } + + @Test + public void testScript3() throws Exception{ + //根据配置,加载的应该是flow.xml,执行原来的规则 + LiteflowResponse responseOld = flowExecutor.execute2Resp("chain2", "arg"); + Assert.assertTrue(responseOld.isSuccess()); + Assert.assertEquals("d==>s2[条件脚本]==>b", responseOld.getSlot().printStep()); + //更改规则,重新加载,更改的规则内容从flow_update.xml里读取,这里只是为了模拟下获取新的内容。不一定是从文件中读取 + String newContent = ResourceUtil.readUtf8Str("classpath: /json-script/flow_update.json"); + //进行刷新 + FlowBus.refreshFlowMetaData(FlowParserTypeEnum.TYPE_JSON, newContent); + + //重新执行chain2这个链路,结果会变 + LiteflowResponse responseNew = flowExecutor.execute2Resp("chain2", "arg"); + Assert.assertTrue(responseNew.isSuccess()); + Assert.assertEquals("d==>s2[条件脚本_改]==>a==>s3[普通脚本_新增]", responseNew.getSlot().printStep()); + } +} diff --git a/liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/script/qlexpress/LiteflowScriptQLExpressTest.java b/liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/script/qlexpress/LiteflowXmlScriptQLExpressTest.java similarity index 92% rename from liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/script/qlexpress/LiteflowScriptQLExpressTest.java rename to liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/script/qlexpress/LiteflowXmlScriptQLExpressTest.java index 996a384db..5e39430cd 100644 --- a/liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/script/qlexpress/LiteflowScriptQLExpressTest.java +++ b/liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/script/qlexpress/LiteflowXmlScriptQLExpressTest.java @@ -25,11 +25,11 @@ import javax.annotation.Resource; * @since 2.6.0 */ @RunWith(SpringRunner.class) -@TestPropertySource(value = "classpath:/script/application.properties") -@SpringBootTest(classes = LiteflowScriptQLExpressTest.class) +@TestPropertySource(value = "classpath:/xml-script/application.properties") +@SpringBootTest(classes = LiteflowXmlScriptQLExpressTest.class) @EnableAutoConfiguration @ComponentScan({"com.yomahub.liteflow.test.script.qlexpress.cmp"}) -public class LiteflowScriptQLExpressTest extends BaseTest { +public class LiteflowXmlScriptQLExpressTest extends BaseTest { @Resource private FlowExecutor flowExecutor; @@ -57,7 +57,7 @@ public class LiteflowScriptQLExpressTest extends BaseTest { Assert.assertTrue(responseOld.isSuccess()); Assert.assertEquals("d==>s2[条件脚本]==>b", responseOld.getSlot().printStep()); //更改规则,重新加载,更改的规则内容从flow_update.xml里读取,这里只是为了模拟下获取新的内容。不一定是从文件中读取 - String newContent = ResourceUtil.readUtf8Str("classpath: /script/flow_update.xml"); + String newContent = ResourceUtil.readUtf8Str("classpath: /xml-script/flow_update.xml"); //进行刷新 FlowBus.refreshFlowMetaData(FlowParserTypeEnum.TYPE_XML, newContent); diff --git a/liteflow-testcase-script-qlexpress/src/test/resources/json-script/application.properties b/liteflow-testcase-script-qlexpress/src/test/resources/json-script/application.properties new file mode 100644 index 000000000..42559d0b3 --- /dev/null +++ b/liteflow-testcase-script-qlexpress/src/test/resources/json-script/application.properties @@ -0,0 +1 @@ +liteflow.rule-source=json-script/flow.json \ No newline at end of file diff --git a/liteflow-testcase-script-qlexpress/src/test/resources/json-script/flow.json b/liteflow-testcase-script-qlexpress/src/test/resources/json-script/flow.json new file mode 100644 index 000000000..f43f53971 --- /dev/null +++ b/liteflow-testcase-script-qlexpress/src/test/resources/json-script/flow.json @@ -0,0 +1,34 @@ +{ + "flow": { + "nodes": { + "node": [ + { + "id": "s1", + "name": "普通脚本", + "type": "script", + "value": "a=3;b=2;slot.setData(\"s1\",a*b);" + }, + { + "id": "s2", + "name": "条件脚本", + "type": "cond_script", + "value": "count = slot.getData(\"count\");if(count > 100){return \"a\";}else{return \"b\";}" + } + ] + }, + "chain": [ + { + "name": "chain1", + "condition": [ + {"type": "then", "value": "a,b,c,s1"} + ] + }, + { + "name": "chain2", + "condition": [ + {"type": "then", "value": "d,s2(a|b)"} + ] + } + ] + } +} \ No newline at end of file diff --git a/liteflow-testcase-script-qlexpress/src/test/resources/json-script/flow_update.json b/liteflow-testcase-script-qlexpress/src/test/resources/json-script/flow_update.json new file mode 100644 index 000000000..94c8c20b0 --- /dev/null +++ b/liteflow-testcase-script-qlexpress/src/test/resources/json-script/flow_update.json @@ -0,0 +1,40 @@ +{ + "flow": { + "nodes": { + "node": [ + { + "id": "s1", + "name": "普通脚本", + "type": "script", + "value": "a=3;b=2;slot.setData(\"s1\",a*b);" + }, + { + "id": "s2", + "name": "条件脚本_改", + "type": "cond_script", + "value": "count = slot.getData(\"count\");if(count > 150){return \"b\";}else{return \"a\";}" + }, + { + "id": "s3", + "name": "普通脚本_新增", + "type": "script", + "value": "a=3;b=2;c=10;slot.setData(\"s1\",a*b+c);" + } + ] + }, + "chain": [ + { + "name": "chain1", + "condition": [ + {"type": "then", "value": "a,b,c,s1"} + ] + }, + { + "name": "chain2", + "condition": [ + {"type": "then", "value": "d,s2(a|b),s3"} + ] + } + ] + } +} \ No newline at end of file diff --git a/liteflow-testcase-script-qlexpress/src/test/resources/script/application.properties b/liteflow-testcase-script-qlexpress/src/test/resources/script/application.properties deleted file mode 100644 index 6e99918c6..000000000 --- a/liteflow-testcase-script-qlexpress/src/test/resources/script/application.properties +++ /dev/null @@ -1 +0,0 @@ -liteflow.rule-source=script/flow.xml \ No newline at end of file diff --git a/liteflow-testcase-script-qlexpress/src/test/resources/xml-script/application.properties b/liteflow-testcase-script-qlexpress/src/test/resources/xml-script/application.properties new file mode 100644 index 000000000..692fc494b --- /dev/null +++ b/liteflow-testcase-script-qlexpress/src/test/resources/xml-script/application.properties @@ -0,0 +1 @@ +liteflow.rule-source=xml-script/flow.xml \ No newline at end of file diff --git a/liteflow-testcase-script-qlexpress/src/test/resources/script/flow.xml b/liteflow-testcase-script-qlexpress/src/test/resources/xml-script/flow.xml similarity index 100% rename from liteflow-testcase-script-qlexpress/src/test/resources/script/flow.xml rename to liteflow-testcase-script-qlexpress/src/test/resources/xml-script/flow.xml diff --git a/liteflow-testcase-script-qlexpress/src/test/resources/script/flow_update.xml b/liteflow-testcase-script-qlexpress/src/test/resources/xml-script/flow_update.xml similarity index 100% rename from liteflow-testcase-script-qlexpress/src/test/resources/script/flow_update.xml rename to liteflow-testcase-script-qlexpress/src/test/resources/xml-script/flow_update.xml