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-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/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-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/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-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