diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptBreakComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptBreakComponent.java index a091a3ab3..e34b0f704 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptBreakComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptBreakComponent.java @@ -3,6 +3,8 @@ package com.yomahub.liteflow.core; import com.yomahub.liteflow.script.ScriptExecuteWrap; import com.yomahub.liteflow.script.ScriptExecutorFactory; +import java.util.Map; + /** * 脚本BREAK节点 * @author Bryan.Zhang @@ -16,7 +18,7 @@ public class ScriptBreakComponent extends NodeBreakComponent implements ScriptCo wrap.setNodeId(this.getNodeId()); wrap.setSlotIndex(this.getSlotIndex()); wrap.setTag(this.getTag()); - wrap.setCmpData(this.getCmpData(Object.class)); + wrap.setCmpData(this.getCmpData(Map.class)); return (boolean) ScriptExecutorFactory.loadInstance().getScriptExecutor().execute(wrap); } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptCommonComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptCommonComponent.java index 594747ece..6956c673f 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptCommonComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptCommonComponent.java @@ -5,6 +5,8 @@ import com.yomahub.liteflow.script.ScriptExecutorFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Map; + /** * 脚本组件类 * @author Bryan.Zhang @@ -21,7 +23,7 @@ public class ScriptCommonComponent extends NodeComponent implements ScriptCompon wrap.setNodeId(this.getNodeId()); wrap.setSlotIndex(this.getSlotIndex()); wrap.setTag(this.getTag()); - wrap.setCmpData(this.getCmpData(Object.class)); + wrap.setCmpData(this.getCmpData(Map.class)); ScriptExecutorFactory.loadInstance().getScriptExecutor().execute(wrap); } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptForComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptForComponent.java index f789b516a..4196f6019 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptForComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptForComponent.java @@ -3,6 +3,8 @@ package com.yomahub.liteflow.core; import com.yomahub.liteflow.script.ScriptExecuteWrap; import com.yomahub.liteflow.script.ScriptExecutorFactory; +import java.util.Map; + /** * 脚本FOR节点 * @author Bryan.Zhang @@ -16,7 +18,7 @@ public class ScriptForComponent extends NodeForComponent implements ScriptCompon wrap.setNodeId(this.getNodeId()); wrap.setSlotIndex(this.getSlotIndex()); wrap.setTag(this.getTag()); - wrap.setCmpData(this.getCmpData(Object.class)); + wrap.setCmpData(this.getCmpData(Map.class)); return (int) ScriptExecutorFactory.loadInstance().getScriptExecutor().execute(wrap); } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptIfComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptIfComponent.java index 2a90c2254..167782e1a 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptIfComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptIfComponent.java @@ -3,6 +3,8 @@ package com.yomahub.liteflow.core; import com.yomahub.liteflow.script.ScriptExecuteWrap; import com.yomahub.liteflow.script.ScriptExecutorFactory; +import java.util.Map; + /** * 脚本IF节点 * @author Bryan.Zhang @@ -16,7 +18,7 @@ public class ScriptIfComponent extends NodeIfComponent implements ScriptComponen wrap.setNodeId(this.getNodeId()); wrap.setSlotIndex(this.getSlotIndex()); wrap.setTag(this.getTag()); - wrap.setCmpData(this.getCmpData(Object.class)); + wrap.setCmpData(this.getCmpData(Map.class)); return (boolean)ScriptExecutorFactory.loadInstance().getScriptExecutor().execute(wrap); } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptSwitchComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptSwitchComponent.java index 4c9ed0d92..b77faca46 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptSwitchComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptSwitchComponent.java @@ -3,6 +3,8 @@ package com.yomahub.liteflow.core; import com.yomahub.liteflow.script.ScriptExecuteWrap; import com.yomahub.liteflow.script.ScriptExecutorFactory; +import java.util.Map; + /** * 脚本条件节点 * @author Bryan.Zhang @@ -17,7 +19,7 @@ public class ScriptSwitchComponent extends NodeSwitchComponent implements Script wrap.setNodeId(this.getNodeId()); wrap.setSlotIndex(this.getSlotIndex()); wrap.setTag(this.getTag()); - wrap.setCmpData(this.getCmpData(Object.class)); + wrap.setCmpData(this.getCmpData(Map.class)); return (String)ScriptExecutorFactory.loadInstance().getScriptExecutor().execute(wrap); } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptWhileComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptWhileComponent.java index 51da32883..9f1339fe6 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptWhileComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ScriptWhileComponent.java @@ -3,6 +3,8 @@ package com.yomahub.liteflow.core; import com.yomahub.liteflow.script.ScriptExecuteWrap; import com.yomahub.liteflow.script.ScriptExecutorFactory; +import java.util.Map; + /** * 脚本WHILE节点 * @author Bryan.Zhang @@ -17,7 +19,7 @@ public class ScriptWhileComponent extends NodeWhileComponent implements ScriptCo wrap.setNodeId(this.getNodeId()); wrap.setSlotIndex(this.getSlotIndex()); wrap.setTag(this.getTag()); - wrap.setCmpData(this.getCmpData(Object.class)); + wrap.setCmpData(this.getCmpData(Map.class)); return (boolean) ScriptExecutorFactory.loadInstance().getScriptExecutor().execute(wrap); } diff --git a/liteflow-testcase-el/liteflow-testcase-el-script-groovy-springboot/src/test/java/com/yomahub/liteflow/test/script/groovy/cmpdata/CmpDataGroovyELTest.java b/liteflow-testcase-el/liteflow-testcase-el-script-groovy-springboot/src/test/java/com/yomahub/liteflow/test/script/groovy/cmpdata/CmpDataGroovyELTest.java new file mode 100644 index 000000000..bb3055bd2 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-script-groovy-springboot/src/test/java/com/yomahub/liteflow/test/script/groovy/cmpdata/CmpDataGroovyELTest.java @@ -0,0 +1,40 @@ +package com.yomahub.liteflow.test.script.groovy.cmpdata; + +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.flow.LiteflowResponse; +import com.yomahub.liteflow.slot.DefaultContext; +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:/cmpdata/application.properties") +@SpringBootTest(classes = CmpDataGroovyELTest.class) +@EnableAutoConfiguration +@ComponentScan({"com.yomahub.liteflow.test.script.groovy.cmpdata.cmp"}) +public class CmpDataGroovyELTest extends BaseTest { + + @Resource + private FlowExecutor flowExecutor; + + //最简单的情况 + @Test + public void testCmpData1() throws Exception{ + LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg"); + DefaultContext context = response.getFirstContextBean(); + Assert.assertTrue(response.isSuccess()); + Assert.assertEquals("1995-10-01", context.getData("s1")); + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-script-groovy-springboot/src/test/java/com/yomahub/liteflow/test/script/groovy/cmpdata/cmp/ACmp.java b/liteflow-testcase-el/liteflow-testcase-el-script-groovy-springboot/src/test/java/com/yomahub/liteflow/test/script/groovy/cmpdata/cmp/ACmp.java new file mode 100644 index 000000000..843761343 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-script-groovy-springboot/src/test/java/com/yomahub/liteflow/test/script/groovy/cmpdata/cmp/ACmp.java @@ -0,0 +1,21 @@ +/** + *
Title: liteflow
+ *Description: 轻量级的组件式流程框架
+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.script.groovy.cmpdata.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import org.springframework.stereotype.Component; + +@Component("a") +public class ACmp extends NodeComponent { + + @Override + public void process() { + System.out.println(this.getCmpData(String.class)); + System.out.println("ACmp executed!"); + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-script-groovy-springboot/src/test/resources/cmpdata/application.properties b/liteflow-testcase-el/liteflow-testcase-el-script-groovy-springboot/src/test/resources/cmpdata/application.properties new file mode 100644 index 000000000..4cc9f322d --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-script-groovy-springboot/src/test/resources/cmpdata/application.properties @@ -0,0 +1 @@ +liteflow.rule-source=cmpdata/flow.xml \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-script-groovy-springboot/src/test/resources/cmpdata/flow.xml b/liteflow-testcase-el/liteflow-testcase-el-script-groovy-springboot/src/test/resources/cmpdata/flow.xml new file mode 100644 index 000000000..844ec0745 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-script-groovy-springboot/src/test/resources/cmpdata/flow.xml @@ -0,0 +1,18 @@ + + +