From c20ac04326449171314805589ca8a29b5b1ee428 Mon Sep 17 00:00:00 2001 From: "everywhere.z" Date: Fri, 21 Oct 2022 14:22:15 +0800 Subject: [PATCH] =?UTF-8?q?bug=20#I5WSG9=202.9.0=E7=89=88=E6=9C=ACtag?= =?UTF-8?q?=E5=9C=A8WHEN=E4=B8=8B=E4=B8=8D=E7=94=9F=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yomahub/liteflow/flow/element/Node.java | 3 +++ .../flow/element/condition/WhenCondition.java | 1 + .../test/tag/NodeTagELSpringbootXmlTest.java | 9 +++++++ .../yomahub/liteflow/test/tag/cmp/HCmp.java | 27 +++++++++++++++++++ .../src/test/resources/tag/flow.el.xml | 4 +++ 5 files changed, 44 insertions(+) create mode 100644 liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/tag/cmp/HCmp.java diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/Node.java b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/Node.java index 21019395b..9b4187821 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/Node.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/Node.java @@ -160,7 +160,10 @@ public class Node implements Executable,Cloneable{ //详情见这个issue:https://gitee.com/dromara/liteFlow/issues/I4XRBA @Override public boolean isAccess(Integer slotIndex) throws Exception { + //把线程属性赋值给组件对象 instance.setSlotIndex(slotIndex); + instance.setTag(tag); + instance.setCmpData(cmpData); return instance.isAccess(); } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/WhenCondition.java b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/WhenCondition.java index 95ec93189..61e066707 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/WhenCondition.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/WhenCondition.java @@ -40,6 +40,7 @@ public class WhenCondition extends Condition { private boolean errorResume = false; //只在when类型下有效,用于不同node进行同组合并,相同的组会进行合并,不同的组不会进行合并 + //此属性已弃用 private String group = LocalDefaultFlowConstant.DEFAULT; //只在when类型下有效,为true的话说明在多个并行节点下,任意一个成功,整个when就成功 diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/tag/NodeTagELSpringbootXmlTest.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/tag/NodeTagELSpringbootXmlTest.java index 211ca9d95..8469c53e1 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/tag/NodeTagELSpringbootXmlTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/tag/NodeTagELSpringbootXmlTest.java @@ -66,4 +66,13 @@ public class NodeTagELSpringbootXmlTest extends BaseTest { Assert.assertTrue(response.isSuccess()); Assert.assertEquals("g", response.getExecuteStepStr()); } + + //测试tag是否能在WHEN中起效果 + @Test + public void testTag5() throws Exception{ + LiteflowResponse response = flowExecutor.execute2Resp("chain5", "arg"); + DefaultContext context = response.getFirstContextBean(); + Assert.assertTrue(response.isSuccess()); + Assert.assertEquals("1",context.getData("test")); + } } diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/tag/cmp/HCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/tag/cmp/HCmp.java new file mode 100644 index 000000000..cbdb66e19 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/tag/cmp/HCmp.java @@ -0,0 +1,27 @@ +/** + *

Title: liteflow

+ *

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

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.tag.cmp; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import com.yomahub.liteflow.slot.DefaultContext; + +@LiteflowComponent("h") +public class HCmp extends NodeComponent { + + @Override + public void process() { + } + + @Override + public boolean isAccess() { + DefaultContext context = this.getFirstContextBean(); + context.setData("test",this.getTag()); + return true; + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/tag/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/tag/flow.el.xml index 64343b83f..f6a02ef81 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/tag/flow.el.xml +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/tag/flow.el.xml @@ -15,4 +15,8 @@ THEN(f.tag("false"), g); + + + WHEN(h.tag("1")); + \ No newline at end of file