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 d965c1167..c760054e0 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 @@ -76,6 +76,7 @@ public abstract class NodeComponent{ //在元数据里加入step信息 CmpStep cmpStep = new CmpStep(nodeId, name, CmpStepTypeEnum.SINGLE); + cmpStep.setTag(tagTL.get()); slot.addStep(cmpStep); StopWatch stopWatch = new StopWatch(); diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/entity/CmpStep.java b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/entity/CmpStep.java index 87211979a..9173bb8b4 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/entity/CmpStep.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/entity/CmpStep.java @@ -22,6 +22,8 @@ public class CmpStep { private String nodeName; + private String tag; + private CmpStepTypeEnum stepType; //消耗的时间,毫秒为单位 @@ -138,4 +140,12 @@ public class CmpStep { } } } + + public String getTag() { + return tag; + } + + public void setTag(String tag) { + this.tag = tag; + } } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/util/LOGOPrinter.java b/liteflow-core/src/main/java/com/yomahub/liteflow/util/LOGOPrinter.java index 97ec983c8..6b023567a 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/util/LOGOPrinter.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/util/LOGOPrinter.java @@ -13,7 +13,7 @@ public class LOGOPrinter { /** * LiteFlow 当前版本号 */ - private static final String VERSION_NO = "v2.8.1"; + private static final String VERSION_NO = "v2.8.2"; public static void print() { StringBuilder str = new StringBuilder("\n"); diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java index 9f5684c5a..3a79ad7b0 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java @@ -1,7 +1,6 @@ package com.yomahub.liteflow.test; import com.yomahub.liteflow.flow.FlowBus; -import com.yomahub.liteflow.flow.id.IdGeneratorHolder; import com.yomahub.liteflow.property.LiteflowConfigGetter; import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner; import com.yomahub.liteflow.spring.ComponentScanner; diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELDeclSpringbootTest.java b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELDeclSpringbootTest.java index 2158c1cf0..d07e71009 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELDeclSpringbootTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELDeclSpringbootTest.java @@ -2,6 +2,7 @@ package com.yomahub.liteflow.test.cmpStep; import com.yomahub.liteflow.core.FlowExecutor; import com.yomahub.liteflow.flow.LiteflowResponse; +import com.yomahub.liteflow.flow.entity.CmpStep; import com.yomahub.liteflow.test.BaseTest; import org.junit.Assert; import org.junit.Test; @@ -13,6 +14,10 @@ import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; import javax.annotation.Resource; +import java.util.HashSet; +import java.util.Map; +import java.util.Queue; +import java.util.Set; /** * springboot环境最普通的例子测试 @@ -48,4 +53,22 @@ public class CmpStepELDeclSpringbootTest extends BaseTest { Assert.assertTrue(response.isSuccess()); Assert.assertEquals("a==>b", response.getExecuteStepStrWithoutTime()); } + + @Test + public void testStep3() throws Exception{ + LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); + Assert.assertTrue(response.isSuccess()); + Map stepMap = response.getExecuteSteps(); + Assert.assertEquals(2, stepMap.size()); + Queue queue = response.getExecuteStepQueue(); + Assert.assertEquals(5, queue.size()); + + Set tagSet = new HashSet<>(); + response.getExecuteStepQueue().stream().filter( + cmpStep -> cmpStep.getNodeId().equals("a") + ).forEach(cmpStep -> tagSet.add(cmpStep.getTag())); + + Assert.assertEquals(3, tagSet.size()); + + } } diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/resources/cmpStep/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/resources/cmpStep/flow.el.xml index c70aa571c..e4a1e577a 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/resources/cmpStep/flow.el.xml +++ b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/resources/cmpStep/flow.el.xml @@ -1,10 +1,14 @@ - THEN(a, b, WHEN(c, d)); + THEN(a.tag("A"), b.tag("B"), WHEN(c.tag("C"), d.tag("D"))); THEN(WHEN(e, a).any(true), b); + + + THEN(a.tag("a1"), b, a.tag("a2"), a.tag("a3"), b); + \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/BaseTest.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/BaseTest.java index 406a91d4c..2dc0c9b8e 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/BaseTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/BaseTest.java @@ -2,7 +2,6 @@ package com.yomahub.liteflow.test; import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.flow.FlowBus; -import com.yomahub.liteflow.flow.id.IdGeneratorHolder; import com.yomahub.liteflow.property.LiteflowConfigGetter; import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner; import com.yomahub.liteflow.thread.ExecutorHelper; diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepTest.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepTest.java index 470196c71..e4b253fb7 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepTest.java @@ -3,12 +3,18 @@ package com.yomahub.liteflow.test.cmpStep; import com.yomahub.liteflow.core.FlowExecutor; import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.flow.LiteflowResponse; +import com.yomahub.liteflow.flow.entity.CmpStep; import com.yomahub.liteflow.property.LiteflowConfig; import com.yomahub.liteflow.test.BaseTest; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; +import java.util.HashSet; +import java.util.Map; +import java.util.Queue; +import java.util.Set; + public class CmpStepTest extends BaseTest{ private static FlowExecutor flowExecutor; @@ -39,4 +45,22 @@ public class CmpStepTest extends BaseTest{ Assert.assertTrue(response.isSuccess()); Assert.assertEquals("a==>b", response.getExecuteStepStrWithoutTime()); } + + @Test + public void testStep3() throws Exception{ + LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); + Assert.assertTrue(response.isSuccess()); + Map stepMap = response.getExecuteSteps(); + Assert.assertEquals(2, stepMap.size()); + Queue queue = response.getExecuteStepQueue(); + Assert.assertEquals(5, queue.size()); + + Set tagSet = new HashSet<>(); + response.getExecuteStepQueue().stream().filter( + cmpStep -> cmpStep.getNodeId().equals("a") + ).forEach(cmpStep -> tagSet.add(cmpStep.getTag())); + + Assert.assertEquals(3, tagSet.size()); + + } } diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/cmpStep/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/cmpStep/flow.el.xml index cbf8a548f..ce12f9808 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/cmpStep/flow.el.xml +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/cmpStep/flow.el.xml @@ -9,10 +9,14 @@ - THEN(a, b, WHEN(c, d)); + THEN(a.tag("A"), b.tag("B"), WHEN(c.tag("C"), d.tag("D"))); THEN(WHEN(e, a).any(true), b); + + + THEN(a.tag("a1"), b, a.tag("a2"), a.tag("a3"), b); + \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-script-groovy-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java b/liteflow-testcase-el/liteflow-testcase-el-script-groovy-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java index 0924ff42c..64886670f 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-script-groovy-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-script-groovy-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java @@ -1,7 +1,6 @@ package com.yomahub.liteflow.test; import com.yomahub.liteflow.flow.FlowBus; -import com.yomahub.liteflow.flow.id.IdGeneratorHolder; import com.yomahub.liteflow.property.LiteflowConfigGetter; import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner; import com.yomahub.liteflow.spring.ComponentScanner; diff --git a/liteflow-testcase-el/liteflow-testcase-el-script-qlexpress-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java b/liteflow-testcase-el/liteflow-testcase-el-script-qlexpress-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java index 0924ff42c..64886670f 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-script-qlexpress-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-script-qlexpress-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java @@ -1,7 +1,6 @@ package com.yomahub.liteflow.test; import com.yomahub.liteflow.flow.FlowBus; -import com.yomahub.liteflow.flow.id.IdGeneratorHolder; import com.yomahub.liteflow.property.LiteflowConfigGetter; import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner; import com.yomahub.liteflow.spring.ComponentScanner; diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java index 0924ff42c..64886670f 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java @@ -1,7 +1,6 @@ package com.yomahub.liteflow.test; import com.yomahub.liteflow.flow.FlowBus; -import com.yomahub.liteflow.flow.id.IdGeneratorHolder; import com.yomahub.liteflow.property.LiteflowConfigGetter; import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner; import com.yomahub.liteflow.spring.ComponentScanner; diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELSpringbootTest.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELSpringbootTest.java index 0dbdb8ca5..079f82fff 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELSpringbootTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELSpringbootTest.java @@ -14,8 +14,12 @@ import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; import javax.annotation.Resource; +import java.util.HashSet; import java.util.Map; import java.util.Queue; +import java.util.Set; +import java.util.function.Consumer; +import java.util.function.Predicate; /** * springboot环境step的测试例子 @@ -62,6 +66,14 @@ public class CmpStepELSpringbootTest extends BaseTest { Assert.assertEquals(2, stepMap.size()); Queue queue = response.getExecuteStepQueue(); Assert.assertEquals(5, queue.size()); + + Set tagSet = new HashSet<>(); + response.getExecuteStepQueue().stream().filter( + cmpStep -> cmpStep.getNodeId().equals("a") + ).forEach(cmpStep -> tagSet.add(cmpStep.getTag())); + + Assert.assertEquals(3, tagSet.size()); + } } diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/switchError/SwitchELSpringbootTest.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/switchError/SwitchELSpringbootTest.java new file mode 100644 index 000000000..c4812e85d --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/switchError/SwitchELSpringbootTest.java @@ -0,0 +1,39 @@ +package com.yomahub.liteflow.test.switchError; + +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.flow.LiteflowResponse; +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环境EL常规的例子测试 + * @author Bryan.Zhang + */ +@RunWith(SpringRunner.class) +@TestPropertySource(value = "classpath:/switchError/application.properties") +@SpringBootTest(classes = SwitchELSpringbootTest.class) +@EnableAutoConfiguration +@ComponentScan({"com.yomahub.liteflow.test.switchError.cmp"}) +public class SwitchELSpringbootTest extends BaseTest { + + @Resource + private FlowExecutor flowExecutor; + + //2022-07-12 switch 异常错误.c.y.l.builder.el.operator.ToOperator : parameter error + //run QlExpress Exception at line 1 : + // switch().to(): 只有一个node时出错 + @Test + public void testSwitchError() throws Exception{ + LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg"); + Assert.assertTrue(response.isSuccess()); + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/switchError/cmp/ACmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/switchError/cmp/ACmp.java new file mode 100644 index 000000000..721f398aa --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/switchError/cmp/ACmp.java @@ -0,0 +1,20 @@ +/** + *

Title: liteflow

+ *

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

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.switchError.cmp; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; + +@LiteflowComponent("a") +public class ACmp extends NodeComponent { + + @Override + public void process() { + System.out.println("ACmp executed!"); + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/switchError/cmp/BCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/switchError/cmp/BCmp.java new file mode 100644 index 000000000..1cf73df35 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/switchError/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.switchError.cmp; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; + +@LiteflowComponent("b") +public class BCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("BCmp executed!"); + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/switchError/cmp/CCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/switchError/cmp/CCmp.java new file mode 100644 index 000000000..1523e77c4 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/switchError/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.switchError.cmp; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; + +@LiteflowComponent("c") +public class CCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("CCmp executed!"); + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/switchError/cmp/DCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/switchError/cmp/DCmp.java new file mode 100644 index 000000000..0ea34fb48 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/switchError/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.switchError.cmp; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; + +@LiteflowComponent("d") +public class DCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("DCmp executed!"); + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/switchError/cmp/ESwitchCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/switchError/cmp/ESwitchCmp.java new file mode 100644 index 000000000..bbbeb4cde --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/switchError/cmp/ESwitchCmp.java @@ -0,0 +1,20 @@ +/** + *

Title: liteflow

+ *

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

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.switchError.cmp; + +import com.yomahub.liteflow.core.NodeSwitchComponent; +import org.springframework.stereotype.Component; + +@Component("e") +public class ESwitchCmp extends NodeSwitchComponent { + + @Override + public String processSwitch() throws Exception { + return "d"; + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/cmpStep/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/cmpStep/flow.el.xml index f67c0e845..e4a1e577a 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/cmpStep/flow.el.xml +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/cmpStep/flow.el.xml @@ -1,7 +1,7 @@ - THEN(a, b, WHEN(c, d)); + THEN(a.tag("A"), b.tag("B"), WHEN(c.tag("C"), d.tag("D"))); @@ -9,6 +9,6 @@ - THEN(a, b, a, a, b); + THEN(a.tag("a1"), b, a.tag("a2"), a.tag("a3"), b); \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/switchError/application.properties b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/switchError/application.properties new file mode 100644 index 000000000..bc60f8a63 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/switchError/application.properties @@ -0,0 +1 @@ +liteflow.rule-source=switchError/flow.el.xml \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/switchError/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/switchError/flow.el.xml new file mode 100644 index 000000000..2f7e92bc2 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/switchError/flow.el.xml @@ -0,0 +1,10 @@ + + + + THEN( + a, + SWITCH(e).to(d), + b + ); + + \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/BaseTest.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/BaseTest.java index 0924ff42c..64886670f 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/BaseTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/BaseTest.java @@ -1,7 +1,6 @@ package com.yomahub.liteflow.test; import com.yomahub.liteflow.flow.FlowBus; -import com.yomahub.liteflow.flow.id.IdGeneratorHolder; import com.yomahub.liteflow.property.LiteflowConfigGetter; import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner; import com.yomahub.liteflow.spring.ComponentScanner; diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELSpringTest.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELSpringTest.java index 9c714a677..bceba7fcf 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELSpringTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELSpringTest.java @@ -2,6 +2,7 @@ package com.yomahub.liteflow.test.cmpStep; import com.yomahub.liteflow.core.FlowExecutor; import com.yomahub.liteflow.flow.LiteflowResponse; +import com.yomahub.liteflow.flow.entity.CmpStep; import com.yomahub.liteflow.test.BaseTest; import org.junit.Assert; import org.junit.Test; @@ -10,6 +11,10 @@ import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; import javax.annotation.Resource; +import java.util.HashSet; +import java.util.Map; +import java.util.Queue; +import java.util.Set; @RunWith(SpringRunner.class) @ContextConfiguration("classpath:/cmpStep/application.xml") @@ -37,4 +42,22 @@ public class CmpStepELSpringTest extends BaseTest { Assert.assertTrue(response.isSuccess()); Assert.assertEquals("a==>b", response.getExecuteStepStrWithoutTime()); } + + @Test + public void testStep3() throws Exception{ + LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); + Assert.assertTrue(response.isSuccess()); + Map stepMap = response.getExecuteSteps(); + Assert.assertEquals(2, stepMap.size()); + Queue queue = response.getExecuteStepQueue(); + Assert.assertEquals(5, queue.size()); + + Set tagSet = new HashSet<>(); + response.getExecuteStepQueue().stream().filter( + cmpStep -> cmpStep.getNodeId().equals("a") + ).forEach(cmpStep -> tagSet.add(cmpStep.getTag())); + + Assert.assertEquals(3, tagSet.size()); + + } } diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/cmpStep/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/cmpStep/flow.el.xml index c70aa571c..e4a1e577a 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/cmpStep/flow.el.xml +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/cmpStep/flow.el.xml @@ -1,10 +1,14 @@ - THEN(a, b, WHEN(c, d)); + THEN(a.tag("A"), b.tag("B"), WHEN(c.tag("C"), d.tag("D"))); THEN(WHEN(e, a).any(true), b); + + + THEN(a.tag("a1"), b, a.tag("a2"), a.tag("a3"), b); + \ No newline at end of file diff --git a/liteflow-testcase-old/liteflow-testcase-declare-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java b/liteflow-testcase-old/liteflow-testcase-declare-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java index 9f5684c5a..3a79ad7b0 100644 --- a/liteflow-testcase-old/liteflow-testcase-declare-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java +++ b/liteflow-testcase-old/liteflow-testcase-declare-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java @@ -1,7 +1,6 @@ package com.yomahub.liteflow.test; import com.yomahub.liteflow.flow.FlowBus; -import com.yomahub.liteflow.flow.id.IdGeneratorHolder; import com.yomahub.liteflow.property.LiteflowConfigGetter; import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner; import com.yomahub.liteflow.spring.ComponentScanner; diff --git a/liteflow-testcase-old/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/BaseTest.java b/liteflow-testcase-old/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/BaseTest.java index 406a91d4c..2dc0c9b8e 100644 --- a/liteflow-testcase-old/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/BaseTest.java +++ b/liteflow-testcase-old/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/BaseTest.java @@ -2,7 +2,6 @@ package com.yomahub.liteflow.test; import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.flow.FlowBus; -import com.yomahub.liteflow.flow.id.IdGeneratorHolder; import com.yomahub.liteflow.property.LiteflowConfigGetter; import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner; import com.yomahub.liteflow.thread.ExecutorHelper; diff --git a/liteflow-testcase-old/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java b/liteflow-testcase-old/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java index 0924ff42c..64886670f 100644 --- a/liteflow-testcase-old/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java +++ b/liteflow-testcase-old/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java @@ -1,7 +1,6 @@ package com.yomahub.liteflow.test; import com.yomahub.liteflow.flow.FlowBus; -import com.yomahub.liteflow.flow.id.IdGeneratorHolder; import com.yomahub.liteflow.property.LiteflowConfigGetter; import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner; import com.yomahub.liteflow.spring.ComponentScanner; diff --git a/liteflow-testcase-old/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/BaseTest.java b/liteflow-testcase-old/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/BaseTest.java index 0924ff42c..64886670f 100644 --- a/liteflow-testcase-old/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/BaseTest.java +++ b/liteflow-testcase-old/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/BaseTest.java @@ -1,7 +1,6 @@ package com.yomahub.liteflow.test; import com.yomahub.liteflow.flow.FlowBus; -import com.yomahub.liteflow.flow.id.IdGeneratorHolder; import com.yomahub.liteflow.property.LiteflowConfigGetter; import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner; import com.yomahub.liteflow.spring.ComponentScanner; diff --git a/pom.xml b/pom.xml index fb49fb088..96202f3a8 100644 --- a/pom.xml +++ b/pom.xml @@ -39,7 +39,7 @@ - 2.8.1 + 2.8.2 UTF-8 UTF-8 8