diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java index 36424aae..746849ad 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java @@ -122,10 +122,7 @@ public abstract class NodeComponent { } } - /** - * 设置是否结束整个流程 - * @param isEnd - */ + //设置是否结束整个流程 public void setIsEnd(boolean isEnd){ this.isEndTL.set(isEnd); } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/enums/FlowParserTypeEnum.java b/liteflow-core/src/main/java/com/yomahub/liteflow/enums/FlowParserTypeEnum.java index ca034886..c5c96b02 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/enums/FlowParserTypeEnum.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/enums/FlowParserTypeEnum.java @@ -1,7 +1,7 @@ package com.yomahub.liteflow.enums; /** - * @Author: guodongqing + * @author guodongqing * @since 2.5.0 */ public enum FlowParserTypeEnum { 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 e5efcaf9..5fe9e8c2 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 @@ -33,9 +33,7 @@ public abstract class JsonFlowParser extends FlowParser{ parse(flowJsonObject); } - /** - * json格式,解析过程 - */ + //json格式,解析过程 public void parse(JSONObject flowJsonObject) throws Exception { try { //判断是以spring方式注册节点,还是以json方式注册 diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/parser/XmlFlowParser.java b/liteflow-core/src/main/java/com/yomahub/liteflow/parser/XmlFlowParser.java index d74741b5..2437feca 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/parser/XmlFlowParser.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/parser/XmlFlowParser.java @@ -36,9 +36,7 @@ public abstract class XmlFlowParser extends FlowParser{ parse(document); } - /** - * xml形式的主要解析过程 - */ + //xml形式的主要解析过程 public void parse(Document document) throws Exception { try { Element rootElement = document.getRootElement(); diff --git a/liteflow-core/src/test/java/com/yomahub/liteflow/test/BaseTest.java b/liteflow-core/src/test/java/com/yomahub/liteflow/test/BaseTest.java new file mode 100644 index 00000000..f32ba2dc --- /dev/null +++ b/liteflow-core/src/test/java/com/yomahub/liteflow/test/BaseTest.java @@ -0,0 +1,12 @@ +package com.yomahub.liteflow.test; + +import com.yomahub.liteflow.spring.ComponentScanner; +import org.junit.AfterClass; + +public class BaseTest { + + @AfterClass + public static void cleanScanCache(){ + ComponentScanner.cleanCache(); + } +} diff --git a/liteflow-spring-boot-starter/src/test/java/com/yomahub/liteflow/test/parser/LFParserJsonNoSpringTest.java b/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/LFParserJsonNoSpringTest.java similarity index 100% rename from liteflow-spring-boot-starter/src/test/java/com/yomahub/liteflow/test/parser/LFParserJsonNoSpringTest.java rename to liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/LFParserJsonNoSpringTest.java diff --git a/liteflow-spring-boot-starter/src/test/java/com/yomahub/liteflow/test/parser/LFParserJsonSpringTest.java b/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/LFParserJsonSpringTest.java similarity index 100% rename from liteflow-spring-boot-starter/src/test/java/com/yomahub/liteflow/test/parser/LFParserJsonSpringTest.java rename to liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/LFParserJsonSpringTest.java diff --git a/liteflow-spring-boot-starter/src/test/java/com/yomahub/liteflow/test/parser/LFParserXmlNoSpringTest.java b/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/LFParserXmlNoSpringTest.java similarity index 100% rename from liteflow-spring-boot-starter/src/test/java/com/yomahub/liteflow/test/parser/LFParserXmlNoSpringTest.java rename to liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/LFParserXmlNoSpringTest.java diff --git a/liteflow-spring-boot-starter/src/test/java/com/yomahub/liteflow/test/parser/LFParserXmlSpringTest.java b/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/LFParserXmlSpringTest.java similarity index 100% rename from liteflow-spring-boot-starter/src/test/java/com/yomahub/liteflow/test/parser/LFParserXmlSpringTest.java rename to liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/LFParserXmlSpringTest.java diff --git a/liteflow-spring-boot-starter/src/test/java/com/yomahub/liteflow/test/parser/LFParserYmlNoSpringTest.java b/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/LFParserYmlNoSpringTest.java similarity index 100% rename from liteflow-spring-boot-starter/src/test/java/com/yomahub/liteflow/test/parser/LFParserYmlNoSpringTest.java rename to liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/LFParserYmlNoSpringTest.java diff --git a/liteflow-spring-boot-starter/src/test/java/com/yomahub/liteflow/test/parser/LFParserYmlSpringTest.java b/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/LFParserYmlSpringTest.java similarity index 100% rename from liteflow-spring-boot-starter/src/test/java/com/yomahub/liteflow/test/parser/LFParserYmlSpringTest.java rename to liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/LFParserYmlSpringTest.java diff --git a/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/ACmp.java b/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/ACmp.java new file mode 100644 index 00000000..4aafee9a --- /dev/null +++ b/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/ACmp.java @@ -0,0 +1,26 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.parser.cmp; + +import cn.hutool.core.util.StrUtil; +import com.yomahub.liteflow.core.NodeComponent; +import com.yomahub.liteflow.exception.FlowSystemException; +import org.springframework.stereotype.Component; + +@Component("a") +public class ACmp extends NodeComponent { + + @Override + public void process() { + String str = this.getSlot().getRequestData(); + if(StrUtil.isNotBlank(str) && str.equals("exception")) { + throw new FlowSystemException("chain execute execption"); + } + System.out.println("ACmp executed!"); + } +} diff --git a/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/BCmp.java b/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/BCmp.java new file mode 100644 index 00000000..ee283f0e --- /dev/null +++ b/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/BCmp.java @@ -0,0 +1,21 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.parser.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import org.springframework.stereotype.Component; + +@Component("b") +public class BCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("BCmp executed!"); + } + +} diff --git a/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/CCmp.java b/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/CCmp.java new file mode 100644 index 00000000..7be4d1b5 --- /dev/null +++ b/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/CCmp.java @@ -0,0 +1,21 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.parser.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import org.springframework.stereotype.Component; + +@Component("c") +public class CCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("CCmp executed!"); + } + +} diff --git a/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/DCmp.java b/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/DCmp.java new file mode 100644 index 00000000..8b7bd0a0 --- /dev/null +++ b/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/DCmp.java @@ -0,0 +1,21 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.parser.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import org.springframework.stereotype.Component; + +@Component("d") +public class DCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("DCmp executed!"); + } + +} diff --git a/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/ECmp.java b/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/ECmp.java new file mode 100644 index 00000000..9f13c991 --- /dev/null +++ b/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/ECmp.java @@ -0,0 +1,20 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.parser.cmp; + +import com.yomahub.liteflow.core.NodeCondComponent; +import org.springframework.stereotype.Component; + +@Component("e") +public class ECmp extends NodeCondComponent { + + @Override + public String processCond() throws Exception { + return "g"; + } +} diff --git a/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/FCmp.java b/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/FCmp.java new file mode 100644 index 00000000..c4ce4ffd --- /dev/null +++ b/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/FCmp.java @@ -0,0 +1,21 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.parser.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import org.springframework.stereotype.Component; + +@Component("f") +public class FCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("FCmp executed!"); + } + +} diff --git a/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/GCmp.java b/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/GCmp.java new file mode 100644 index 00000000..4c0e80f1 --- /dev/null +++ b/liteflow-core/src/test/java/com/yomahub/liteflow/test/parser/cmp/GCmp.java @@ -0,0 +1,21 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.parser.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import org.springframework.stereotype.Component; + +@Component("g") +public class GCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("GCmp executed!"); + } + +} diff --git a/liteflow-spring-boot-starter/src/test/resources/parser/application-json.xml b/liteflow-core/src/test/resources/parser/application-json.xml similarity index 100% rename from liteflow-spring-boot-starter/src/test/resources/parser/application-json.xml rename to liteflow-core/src/test/resources/parser/application-json.xml diff --git a/liteflow-spring-boot-starter/src/test/resources/parser/application-xml.xml b/liteflow-core/src/test/resources/parser/application-xml.xml similarity index 100% rename from liteflow-spring-boot-starter/src/test/resources/parser/application-xml.xml rename to liteflow-core/src/test/resources/parser/application-xml.xml diff --git a/liteflow-spring-boot-starter/src/test/resources/parser/application-yml.xml b/liteflow-core/src/test/resources/parser/application-yml.xml similarity index 100% rename from liteflow-spring-boot-starter/src/test/resources/parser/application-yml.xml rename to liteflow-core/src/test/resources/parser/application-yml.xml diff --git a/liteflow-core/src/test/resources/parser/flow.json b/liteflow-core/src/test/resources/parser/flow.json new file mode 100644 index 00000000..52d0d05c --- /dev/null +++ b/liteflow-core/src/test/resources/parser/flow.json @@ -0,0 +1,52 @@ +{ + "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" + }, + { + "id": "e", + "class": "com.yomahub.liteflow.test.parser.cmp.ECmp" + }, + { + "id": "f", + "class": "com.yomahub.liteflow.test.parser.cmp.FCmp" + }, + { + "id": "g", + "class": "com.yomahub.liteflow.test.parser.cmp.GCmp" + } + ] + }, + "chain": [ + { + "name": "chain2", + "condition": [ + {"type": "then", "value": "c,g,f"} + ] + }, + { + "name": "chain1", + "condition": [ + {"type": "then", "value": "a,c"}, + {"type": "when", "value": "b,d,e(f|g)"}, + {"type": "then", "value": "chain2"} + ] + } + ] + } +} \ No newline at end of file diff --git a/liteflow-core/src/test/resources/parser/flow.xml b/liteflow-core/src/test/resources/parser/flow.xml new file mode 100644 index 00000000..0775c5ec --- /dev/null +++ b/liteflow-core/src/test/resources/parser/flow.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/liteflow-core/src/test/resources/parser/flow.yml b/liteflow-core/src/test/resources/parser/flow.yml new file mode 100644 index 00000000..814f59d5 --- /dev/null +++ b/liteflow-core/src/test/resources/parser/flow.yml @@ -0,0 +1,30 @@ +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 + - id: e + class: com.yomahub.liteflow.test.parser.cmp.ECmp + - id: f + class: com.yomahub.liteflow.test.parser.cmp.FCmp + - id: g + class: com.yomahub.liteflow.test.parser.cmp.GCmp + chain: + - name: chain1 + condition: + - type: then + value: 'a,c' + - type: when + value: 'b,d,e(f|g)' + - type: then + value: 'chain2' + - name: chain2 + condition: + - type: then + value: 'c,g,f'