diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/BaseTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/BaseTest.java index dacc3f9be..2dc0c9b8e 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/BaseTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/BaseTest.java @@ -1,5 +1,6 @@ package com.yomahub.liteflow.test; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.flow.FlowBus; import com.yomahub.liteflow.property.LiteflowConfigGetter; import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner; @@ -14,5 +15,6 @@ public class BaseTest { ExecutorHelper.loadInstance().clearExecutorServiceMap(); SpiFactoryCleaner.clean(); LiteflowConfigGetter.clean(); + FlowExecutorHolder.clean(); } } diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/absoluteConfigPath/AbsoluteConfigPathTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/absoluteConfigPath/AbsoluteConfigPathTest.java index 387c91553..461f52b66 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/absoluteConfigPath/AbsoluteConfigPathTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/absoluteConfigPath/AbsoluteConfigPathTest.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.test.absoluteConfigPath; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.property.LiteflowConfig; @@ -22,7 +23,7 @@ public class AbsoluteConfigPathTest extends BaseTest { public static void init(){ LiteflowConfig config = new LiteflowConfig(); config.setRuleSource("/usr/local/flow2.xml"); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } @Test diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/asyncNode/AsyncNodeTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/asyncNode/AsyncNodeTest.java index 5e1adf6b2..42e23299f 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/asyncNode/AsyncNodeTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/asyncNode/AsyncNodeTest.java @@ -2,6 +2,7 @@ package com.yomahub.liteflow.test.asyncNode; import cn.hutool.core.collection.ListUtil; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.property.LiteflowConfig; @@ -27,7 +28,7 @@ public class AsyncNodeTest extends BaseTest { public static void init(){ LiteflowConfig config = new LiteflowConfig(); config.setRuleSource("asyncNode/flow.xml"); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } /***** diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/base/BaseCommonTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/base/BaseCommonTest.java index 94b7735ac..25b806846 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/base/BaseCommonTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/base/BaseCommonTest.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.test.base; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.property.LiteflowConfig; @@ -16,7 +17,7 @@ public class BaseCommonTest { public static void init(){ LiteflowConfig config = new LiteflowConfig(); config.setRuleSource("base/flow.xml"); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } @Test diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/builder/BuilderTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/builder/BuilderTest.java index c20b7a783..d9c72be1d 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/builder/BuilderTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/builder/BuilderTest.java @@ -4,6 +4,7 @@ import com.yomahub.liteflow.builder.LiteFlowChainBuilder; import com.yomahub.liteflow.builder.LiteFlowConditionBuilder; import com.yomahub.liteflow.builder.LiteFlowNodeBuilder; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.enums.NodeTypeEnum; @@ -20,7 +21,7 @@ public class BuilderTest extends BaseTest { @BeforeClass public static void init(){ LiteflowConfig config = new LiteflowConfig(); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } //基于普通组件的builder模式测试 diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/cmpRetry/LiteflowRetryTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/cmpRetry/LiteflowRetryTest.java index 6aa03f304..eabc01f7f 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/cmpRetry/LiteflowRetryTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/cmpRetry/LiteflowRetryTest.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.test.cmpRetry; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.property.LiteflowConfig; @@ -28,7 +29,7 @@ public class LiteflowRetryTest extends BaseTest { config.setRuleSource("cmpRetry/flow.xml"); config.setRetryCount(3); config.setSlotSize(512); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } //全局重试配置测试 diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/component/FlowExecutorTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/component/FlowExecutorTest.java index 5e5e3d80e..b879e7754 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/component/FlowExecutorTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/component/FlowExecutorTest.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.test.component; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.property.LiteflowConfig; @@ -24,7 +25,7 @@ public class FlowExecutorTest extends BaseTest { public static void init(){ LiteflowConfig config = new LiteflowConfig(); config.setRuleSource("component/flow.xml"); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } //isAccess方法的功能测试 diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/config/LiteflowConfigTest1.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/config/LiteflowConfigTest1.java index 1d0141fc5..20d73b679 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/config/LiteflowConfigTest1.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/config/LiteflowConfigTest1.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.test.config; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.property.LiteflowConfig; @@ -23,7 +24,7 @@ public class LiteflowConfigTest1 extends BaseTest { public static void init(){ LiteflowConfig config = new LiteflowConfig(); config.setRuleSource("config/flow.xml"); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } @Test diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomWhenThreadPoolTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomWhenThreadPoolTest.java index 087b01663..461fce8f7 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomWhenThreadPoolTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomWhenThreadPoolTest.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.test.customWhenThreadPool; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.property.LiteflowConfig; @@ -23,7 +24,7 @@ public class CustomWhenThreadPoolTest extends BaseTest { public static void init(){ LiteflowConfig config = new LiteflowConfig(); config.setRuleSource("customWhenThreadPool/flow.xml"); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } /** diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/emptyflow/EmptyFlowTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/emptyflow/EmptyFlowTest.java index 994c2be17..26bd5607d 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/emptyflow/EmptyFlowTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/emptyflow/EmptyFlowTest.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.test.emptyflow; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.property.LiteflowConfig; import com.yomahub.liteflow.test.BaseTest; import org.junit.BeforeClass; @@ -18,7 +19,7 @@ public class EmptyFlowTest extends BaseTest { public static void init(){ LiteflowConfig config = new LiteflowConfig(); config.setRuleSource("emptyflow/flow.xml"); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } //测试空flow的情况下,liteflow是否能正常启动 diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/exception/ExceptionTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/exception/ExceptionTest.java index 5c6b9ea33..2f770e388 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/exception/ExceptionTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/exception/ExceptionTest.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.test.exception; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.exception.ChainNotFoundException; @@ -28,7 +29,7 @@ public class ExceptionTest extends BaseTest { LiteflowConfig config = new LiteflowConfig(); config.setRuleSource("exception/flow.xml"); config.setWhenMaxWaitSeconds(1); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } @Test(expected = FlowExecutorNotInitException.class) diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/flowmeta/FlowMetaTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/flowmeta/FlowMetaTest.java index f5474815f..3e6f7920d 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/flowmeta/FlowMetaTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/flowmeta/FlowMetaTest.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.test.flowmeta; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.flow.FlowBus; @@ -20,7 +21,7 @@ public class FlowMetaTest extends BaseTest { LiteflowConfig config = new LiteflowConfig(); config.setRuleSource("flowmeta/flow.xml"); config.setParseOnStart(false); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } //测试动态添加元信息节点 diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/multipleType/LiteflowMultipleTypeTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/multipleType/LiteflowMultipleTypeTest.java index 7ec1667f0..6503bad44 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/multipleType/LiteflowMultipleTypeTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/multipleType/LiteflowMultipleTypeTest.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.test.multipleType; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.property.LiteflowConfig; @@ -23,7 +24,7 @@ public class LiteflowMultipleTypeTest extends BaseTest { LiteflowConfig config = new LiteflowConfig(); config.setRuleSource("multipleType/flow.xml,multipleType/flow.yml"); config.setSupportMultipleType(true); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } @Test diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/nodeExecutor/LiteflowNodeExecutorTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/nodeExecutor/LiteflowNodeExecutorTest.java index 60153647c..100887598 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/nodeExecutor/LiteflowNodeExecutorTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/nodeExecutor/LiteflowNodeExecutorTest.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.test.nodeExecutor; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.property.LiteflowConfig; @@ -26,7 +27,7 @@ public class LiteflowNodeExecutorTest extends BaseTest { config.setRetryCount(3); config.setSlotSize(512); config.setNodeExecutorClass("com.yomahub.liteflow.test.nodeExecutor.CustomerDefaultNodeExecutor"); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } // 默认执行器测试 diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/nullParam/NullParamTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/nullParam/NullParamTest.java index cfd17ea05..964bb402c 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/nullParam/NullParamTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/nullParam/NullParamTest.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.test.nullParam; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.property.LiteflowConfig; @@ -22,7 +23,7 @@ public class NullParamTest { public static void init(){ LiteflowConfig config = new LiteflowConfig(); config.setRuleSource("nullParam/flow.xml"); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } /** diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parsecustom/CustomParserJsonTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parsecustom/CustomParserJsonTest.java index 6731dfbdd..a67f75867 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parsecustom/CustomParserJsonTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parsecustom/CustomParserJsonTest.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.test.parsecustom; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.property.LiteflowConfig; @@ -22,7 +23,7 @@ public class CustomParserJsonTest extends BaseTest { public static void init(){ LiteflowConfig config = new LiteflowConfig(); config.setRuleSource("com.yomahub.liteflow.test.parsecustom.parser.CustomJsonFlowParser"); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } //测试springboot场景的自定义json parser diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parsecustom/CustomParserXmlTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parsecustom/CustomParserXmlTest.java index 31bf93a4b..5a360e46c 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parsecustom/CustomParserXmlTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parsecustom/CustomParserXmlTest.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.test.parsecustom; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.property.LiteflowConfig; @@ -22,7 +23,7 @@ public class CustomParserXmlTest extends BaseTest { public static void init(){ LiteflowConfig config = new LiteflowConfig(); config.setRuleSource("com.yomahub.liteflow.test.parsecustom.parser.CustomXmlFlowParser"); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } //测试springboot场景的自定义json parser diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/JsonParserTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/JsonParserTest.java index c0f3071fb..4656ce5be 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/JsonParserTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/JsonParserTest.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.test.parser; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.property.LiteflowConfig; @@ -22,7 +23,7 @@ public class JsonParserTest extends BaseTest { public static void init(){ LiteflowConfig config = new LiteflowConfig(); config.setRuleSource("parser/flow.json"); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } //测试spring场景的json parser diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/XmlParserTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/XmlParserTest.java index c29d3db4d..b7a44df55 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/XmlParserTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/XmlParserTest.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.test.parser; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.property.LiteflowConfig; @@ -22,7 +23,7 @@ public class XmlParserTest extends BaseTest { public static void init(){ LiteflowConfig config = new LiteflowConfig(); config.setRuleSource("parser/flow.xml"); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } //测试无springboot场景的xml parser diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/YmlParserTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/YmlParserTest.java index fadc554d9..4afa05dd6 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/YmlParserTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/YmlParserTest.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.test.parser; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.property.LiteflowConfig; @@ -22,7 +23,7 @@ public class YmlParserTest extends BaseTest { public static void init(){ LiteflowConfig config = new LiteflowConfig(); config.setRuleSource("parser/flow.yml"); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } //测试无springboot场景的yml parser diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/PreAndFinallyTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/PreAndFinallyTest.java index 82aadc790..16a4b2e61 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/PreAndFinallyTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/PreAndFinallyTest.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.test.preAndFinally; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.property.LiteflowConfig; @@ -22,7 +23,7 @@ public class PreAndFinallyTest extends BaseTest { public static void init(){ LiteflowConfig config = new LiteflowConfig(); config.setRuleSource("preAndFinally/flow.xml"); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } //测试普通的pre和finally节点 diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/privateDelivery/PrivateDeliveryTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/privateDelivery/PrivateDeliveryTest.java index 5ffad07e0..51ccba473 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/privateDelivery/PrivateDeliveryTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/privateDelivery/PrivateDeliveryTest.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.test.privateDelivery; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.property.LiteflowConfig; @@ -23,7 +24,7 @@ public class PrivateDeliveryTest extends BaseTest { public static void init(){ LiteflowConfig config = new LiteflowConfig(); config.setRuleSource("privateDelivery/flow.xml"); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } @Test diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/refreshRule/RefreshRuleTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/refreshRule/RefreshRuleTest.java index 81a190419..455c4c46f 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/refreshRule/RefreshRuleTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/refreshRule/RefreshRuleTest.java @@ -2,6 +2,7 @@ package com.yomahub.liteflow.test.refreshRule; import cn.hutool.core.io.resource.ResourceUtil; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.enums.FlowParserTypeEnum; @@ -25,7 +26,7 @@ public class RefreshRuleTest extends BaseTest { public static void init(){ LiteflowConfig config = new LiteflowConfig(); config.setRuleSource("refreshRule/flow.xml"); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } //测试普通刷新流程的场景 diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/reload/ReloadTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/reload/ReloadTest.java index 8d001ed40..f0b88da9a 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/reload/ReloadTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/reload/ReloadTest.java @@ -1,6 +1,7 @@ package com.yomahub.liteflow.test.reload; import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.property.LiteflowConfig; @@ -22,7 +23,7 @@ public class ReloadTest extends BaseTest { public static void init(){ LiteflowConfig config = new LiteflowConfig(); config.setRuleSource("reload/flow.xml"); - flowExecutor = FlowExecutor.loadInstance(config); + flowExecutor = FlowExecutorHolder.loadInstance(config); } //用reloadRule去重新加载,这里如果配置是放在本地。如果想修改,则要去修改target下面的flow.xml diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/resizeSlot/ResizeSlotTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/resizeSlot/ResizeSlotTest.java new file mode 100644 index 000000000..5b3679562 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/resizeSlot/ResizeSlotTest.java @@ -0,0 +1,62 @@ +package com.yomahub.liteflow.test.resizeSlot; + +import cn.hutool.core.util.ReflectUtil; +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; +import com.yomahub.liteflow.entity.data.DataBus; +import com.yomahub.liteflow.entity.data.DefaultSlot; +import com.yomahub.liteflow.entity.data.LiteflowResponse; +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.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; + +/** + * springboot环境下slot扩容测试 + * @author Bryan.Zhang + * @since 2.5.0 + */ +public class ResizeSlotTest extends BaseTest { + + private static FlowExecutor flowExecutor; + + @BeforeClass + public static void init(){ + LiteflowConfig config = new LiteflowConfig(); + config.setRuleSource("resizeSlot/flow.xml"); + config.setSlotSize(4); + flowExecutor = FlowExecutorHolder.loadInstance(config); + } + + @Test + public void testResize() throws Exception{ + ExecutorService pool = Executors.newCachedThreadPool(); + + List>> futureList = new ArrayList<>(); + for (int i = 0; i < 100; i++) { + Future> future = pool.submit(() -> flowExecutor.execute2Resp("chain1", "arg")); + futureList.add(future); + } + + for(Future> future : futureList){ + Assert.assertTrue(future.get().isSuccess()); + } + + //取到static的对象QUEUE + Field field = ReflectUtil.getField(DataBus.class, "QUEUE"); + ConcurrentLinkedQueue queue = (ConcurrentLinkedQueue) ReflectUtil.getStaticFieldValue(field); + + //因为初始slotSize是4,按照0.75的扩容比,要满足100个线程,应该扩容5~6次,5次=65,6次=114 + //为什么不是直接114呢? + //因为在单测中根据机器的性能,在多线程情况下,有些机器跑的慢一点,也就是说65个就足够了。有些机器跑的快一点,是能真正扩容到114个的 + Assert.assertTrue(queue.size() > 4); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/resizeSlot/cmp/ACmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/resizeSlot/cmp/ACmp.java new file mode 100644 index 000000000..f2dd79317 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/resizeSlot/cmp/ACmp.java @@ -0,0 +1,18 @@ +/** + *

Title: liteflow

+ *

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

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.resizeSlot.cmp; + +import com.yomahub.liteflow.core.NodeComponent; + +public class ACmp extends NodeComponent { + + @Override + public void process() { + System.out.println("ACmp executed!"); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/resizeSlot/cmp/BCmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/resizeSlot/cmp/BCmp.java new file mode 100644 index 000000000..da3cf63a8 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/resizeSlot/cmp/BCmp.java @@ -0,0 +1,19 @@ +/** + *

Title: liteflow

+ *

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

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.resizeSlot.cmp; + +import com.yomahub.liteflow.core.NodeComponent; + +public class BCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("BCmp executed!"); + } + +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/resizeSlot/cmp/CCmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/resizeSlot/cmp/CCmp.java new file mode 100644 index 000000000..48a4c2ca4 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/resizeSlot/cmp/CCmp.java @@ -0,0 +1,19 @@ +/** + *

Title: liteflow

+ *

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

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.resizeSlot.cmp; + +import com.yomahub.liteflow.core.NodeComponent; + +public class CCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("CCmp executed!"); + } + +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/ImplicitSubFlowTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/ImplicitSubFlowTest.java new file mode 100644 index 000000000..f353a4bf1 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/ImplicitSubFlowTest.java @@ -0,0 +1,46 @@ +package com.yomahub.liteflow.test.subflow; + +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; +import com.yomahub.liteflow.entity.data.DefaultSlot; +import com.yomahub.liteflow.entity.data.LiteflowResponse; +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.Set; + +/** + * 测试隐式调用子流程 + * 单元测试 + * + * @author justin.xu + */ +public class ImplicitSubFlowTest extends BaseTest { + + private static FlowExecutor flowExecutor; + + @BeforeClass + public static void init(){ + LiteflowConfig config = new LiteflowConfig(); + config.setRuleSource("subflow/flow-implicit.xml"); + flowExecutor = FlowExecutorHolder.loadInstance(config); + } + + public static final Set RUN_TIME_SLOT = new HashSet<>(); + + //这里GCmp中隐式的调用chain4,从而执行了h,m + @Test + public void testImplicitSubFlow() { + LiteflowResponse response = flowExecutor.execute2Resp("chain3", "it's a request"); + Assert.assertTrue(response.isSuccess()); + Assert.assertEquals("f==>g==>h==>m", response.getSlot().getExecuteStepStr()); + + // 传递了slotIndex,则set的size==1 + Assert.assertEquals(1, RUN_TIME_SLOT.size()); + // set中第一次设置的requestId和response中的requestId一致 + Assert.assertTrue(RUN_TIME_SLOT.contains(response.getSlot().getRequestId())); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/SubflowInDifferentConfigTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/SubflowInDifferentConfigTest.java new file mode 100644 index 000000000..0c5d55e1a --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/SubflowInDifferentConfigTest.java @@ -0,0 +1,46 @@ +package com.yomahub.liteflow.test.subflow; + +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; +import com.yomahub.liteflow.entity.data.DefaultSlot; +import com.yomahub.liteflow.entity.data.LiteflowResponse; +import com.yomahub.liteflow.exception.MultipleParsersException; +import com.yomahub.liteflow.property.LiteflowConfig; +import com.yomahub.liteflow.property.LiteflowConfigGetter; +import com.yomahub.liteflow.test.BaseTest; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * 测试主流程与子流程在不同的配置文件的场景 + * + * @author Bryan.Zhang + */ +public class SubflowInDifferentConfigTest extends BaseTest { + + private static FlowExecutor flowExecutor; + + @BeforeClass + public static void init(){ + LiteflowConfig config = new LiteflowConfig(); + config.setRuleSource("subflow/flow-main.xml,subflow/flow-sub1.xml,subflow/flow-sub2.xml"); + flowExecutor = FlowExecutorHolder.loadInstance(config); + } + + //是否按照流程定义配置执行 + @Test + public void testExplicitSubFlow1() { + LiteflowResponse response = flowExecutor.execute2Resp("chain1", "it's a request"); + Assert.assertTrue(response.isSuccess()); + Assert.assertEquals("a==>b==>b==>a==>e==>d", response.getSlot().getExecuteStepStr()); + } + + //主要测试有不同的配置类型后会不会报出既定的错误 + @Test(expected = MultipleParsersException.class) + public void testExplicitSubFlow2() { + LiteflowConfig config = LiteflowConfigGetter.get(); + config.setRuleSource("subflow/flow-main.xml,subflow/flow-sub1.xml,subflow/flow-sub2.yml"); + flowExecutor.init(); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/SubflowJsonTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/SubflowJsonTest.java new file mode 100644 index 000000000..91a2798a6 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/SubflowJsonTest.java @@ -0,0 +1,37 @@ +package com.yomahub.liteflow.test.subflow; + +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; +import com.yomahub.liteflow.entity.data.DefaultSlot; +import com.yomahub.liteflow.entity.data.LiteflowResponse; +import com.yomahub.liteflow.property.LiteflowConfig; +import com.yomahub.liteflow.test.BaseTest; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * 测试显示调用子流程(json) + * 单元测试 + * + * @author justin.xu + */ +public class SubflowJsonTest extends BaseTest { + + private static FlowExecutor flowExecutor; + + @BeforeClass + public static void init(){ + LiteflowConfig config = new LiteflowConfig(); + config.setRuleSource("subflow/flow.json"); + flowExecutor = FlowExecutorHolder.loadInstance(config); + } + + //是否按照流程定义配置执行 + @Test + public void testExplicitSubFlow() { + LiteflowResponse response = flowExecutor.execute2Resp("chain1", "it's a request"); + Assert.assertTrue(response.isSuccess()); + Assert.assertEquals("a==>b==>c==>b==>a==>e==>d", response.getSlot().getExecuteStepStr()); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/SubflowXMLTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/SubflowXMLTest.java new file mode 100644 index 000000000..f6da5dc56 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/SubflowXMLTest.java @@ -0,0 +1,37 @@ +package com.yomahub.liteflow.test.subflow; + +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; +import com.yomahub.liteflow.entity.data.DefaultSlot; +import com.yomahub.liteflow.entity.data.LiteflowResponse; +import com.yomahub.liteflow.property.LiteflowConfig; +import com.yomahub.liteflow.test.BaseTest; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * 测试显示调用子流程(xml) + * 单元测试 + * + * @author justin.xu + */ +public class SubflowXMLTest extends BaseTest { + + private static FlowExecutor flowExecutor; + + @BeforeClass + public static void init(){ + LiteflowConfig config = new LiteflowConfig(); + config.setRuleSource("subflow/flow.xml"); + flowExecutor = FlowExecutorHolder.loadInstance(config); + } + + //是否按照流程定义配置执行 + @Test + public void testExplicitSubFlow() { + LiteflowResponse response = flowExecutor.execute2Resp("chain1", "it's a request"); + Assert.assertTrue(response.isSuccess()); + Assert.assertEquals("a==>b==>c==>b==>a==>e==>d", response.getSlot().getExecuteStepStr()); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/SubflowYmlTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/SubflowYmlTest.java new file mode 100644 index 000000000..7f270d547 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/SubflowYmlTest.java @@ -0,0 +1,37 @@ +package com.yomahub.liteflow.test.subflow; + +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; +import com.yomahub.liteflow.entity.data.DefaultSlot; +import com.yomahub.liteflow.entity.data.LiteflowResponse; +import com.yomahub.liteflow.property.LiteflowConfig; +import com.yomahub.liteflow.test.BaseTest; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * 测试显示调用子流程(yml) + * 单元测试 + * + * @author justin.xu + */ +public class SubflowYmlTest extends BaseTest { + + private static FlowExecutor flowExecutor; + + @BeforeClass + public static void init(){ + LiteflowConfig config = new LiteflowConfig(); + config.setRuleSource("subflow/flow.yml"); + flowExecutor = FlowExecutorHolder.loadInstance(config); + } + + //是否按照流程定义配置执行 + @Test + public void testExplicitSubFlowYml() { + LiteflowResponse response = flowExecutor.execute2Resp("chain1", "it's a request"); + Assert.assertTrue(response.isSuccess()); + Assert.assertEquals("a==>b==>c==>b==>a==>e==>d", response.getSlot().getExecuteStepStr()); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp1/ACmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp1/ACmp.java new file mode 100644 index 000000000..fd299fae4 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp1/ACmp.java @@ -0,0 +1,11 @@ +package com.yomahub.liteflow.test.subflow.cmp1; + +import com.yomahub.liteflow.core.NodeComponent; + + +public class ACmp extends NodeComponent { + @Override + public void process() { + System.out.println("Acomp executed!"); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp1/BCmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp1/BCmp.java new file mode 100644 index 000000000..36613aedc --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp1/BCmp.java @@ -0,0 +1,10 @@ +package com.yomahub.liteflow.test.subflow.cmp1; + +import com.yomahub.liteflow.core.NodeComponent; + +public class BCmp extends NodeComponent { + @Override + public void process() { + System.out.println("Bcomp executed!"); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp1/CCmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp1/CCmp.java new file mode 100644 index 000000000..1a95b17c0 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp1/CCmp.java @@ -0,0 +1,10 @@ +package com.yomahub.liteflow.test.subflow.cmp1; + +import com.yomahub.liteflow.core.NodeComponent; + +public class CCmp extends NodeComponent { + @Override + public void process() throws Exception { + System.out.println("Ccomp executed!"); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp1/DCmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp1/DCmp.java new file mode 100644 index 000000000..0a954b4f5 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp1/DCmp.java @@ -0,0 +1,10 @@ +package com.yomahub.liteflow.test.subflow.cmp1; + +import com.yomahub.liteflow.core.NodeComponent; + +public class DCmp extends NodeComponent { + @Override + public void process() throws Exception { + System.out.println("Dcomp executed!"); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp1/ECmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp1/ECmp.java new file mode 100644 index 000000000..07789037f --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp1/ECmp.java @@ -0,0 +1,11 @@ +package com.yomahub.liteflow.test.subflow.cmp1; + +import com.yomahub.liteflow.core.NodeComponent; + +public class ECmp extends NodeComponent { + + @Override + public void process() throws Exception { + System.out.println("Ecomp executed!"); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp2/FCmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp2/FCmp.java new file mode 100644 index 000000000..616a1c24c --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp2/FCmp.java @@ -0,0 +1,15 @@ +package com.yomahub.liteflow.test.subflow.cmp2; + +import com.yomahub.liteflow.core.NodeComponent; +import static com.yomahub.liteflow.test.subflow.ImplicitSubFlowTest.RUN_TIME_SLOT; + + +public class FCmp extends NodeComponent { + @Override + public void process() throws Exception { + + RUN_TIME_SLOT.add(this.getSlot().getRequestId()); + + System.out.println("Fcomp executed!"); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp2/GCmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp2/GCmp.java new file mode 100644 index 000000000..c8a4a3b1b --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp2/GCmp.java @@ -0,0 +1,23 @@ +package com.yomahub.liteflow.test.subflow.cmp2; + +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; +import com.yomahub.liteflow.core.NodeComponent; +import com.yomahub.liteflow.entity.data.DefaultSlot; +import static com.yomahub.liteflow.test.subflow.ImplicitSubFlowTest.RUN_TIME_SLOT; + + +public class GCmp extends NodeComponent { + + @Override + public void process() throws Exception { + + RUN_TIME_SLOT.add(this.getSlot().getRequestId()); + + System.out.println("Gcmp executed!"); + + FlowExecutor flowExecutor = FlowExecutorHolder.loadInstance(); + + flowExecutor.invoke("chain4", "it's implicit subflow.", DefaultSlot.class, this.getSlotIndex()); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp2/HCmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp2/HCmp.java new file mode 100644 index 000000000..fd78c1068 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp2/HCmp.java @@ -0,0 +1,15 @@ +package com.yomahub.liteflow.test.subflow.cmp2; + +import com.yomahub.liteflow.core.NodeComponent; +import static com.yomahub.liteflow.test.subflow.ImplicitSubFlowTest.RUN_TIME_SLOT; + + +public class HCmp extends NodeComponent { + @Override + public void process() throws Exception { + + RUN_TIME_SLOT.add(this.getSlot().getRequestId()); + + System.out.println("Hcomp executed!"); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp2/MCmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp2/MCmp.java new file mode 100644 index 000000000..735a8e233 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/subflow/cmp2/MCmp.java @@ -0,0 +1,15 @@ +package com.yomahub.liteflow.test.subflow.cmp2; + +import com.yomahub.liteflow.core.NodeComponent; +import static com.yomahub.liteflow.test.subflow.ImplicitSubFlowTest.RUN_TIME_SLOT; + + +public class MCmp extends NodeComponent { + @Override + public void process() throws Exception { + + RUN_TIME_SLOT.add(this.getSlot().getRequestId()); + + System.out.println("Mcomp executed!"); + } +} diff --git a/liteflow-testcase-nospring/src/test/resources/resizeSlot/flow.xml b/liteflow-testcase-nospring/src/test/resources/resizeSlot/flow.xml new file mode 100644 index 000000000..f8a83742c --- /dev/null +++ b/liteflow-testcase-nospring/src/test/resources/resizeSlot/flow.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/liteflow-testcase-nospring/src/test/resources/subflow/flow-implicit.xml b/liteflow-testcase-nospring/src/test/resources/subflow/flow-implicit.xml new file mode 100644 index 000000000..aa42db5b0 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/resources/subflow/flow-implicit.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/liteflow-testcase-nospring/src/test/resources/subflow/flow-main.xml b/liteflow-testcase-nospring/src/test/resources/subflow/flow-main.xml new file mode 100644 index 000000000..42886c702 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/resources/subflow/flow-main.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/liteflow-testcase-nospring/src/test/resources/subflow/flow-sub1.xml b/liteflow-testcase-nospring/src/test/resources/subflow/flow-sub1.xml new file mode 100644 index 000000000..471dee3fe --- /dev/null +++ b/liteflow-testcase-nospring/src/test/resources/subflow/flow-sub1.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/liteflow-testcase-nospring/src/test/resources/subflow/flow-sub2.xml b/liteflow-testcase-nospring/src/test/resources/subflow/flow-sub2.xml new file mode 100644 index 000000000..63dd964bf --- /dev/null +++ b/liteflow-testcase-nospring/src/test/resources/subflow/flow-sub2.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/liteflow-testcase-nospring/src/test/resources/subflow/flow-sub2.yml b/liteflow-testcase-nospring/src/test/resources/subflow/flow-sub2.yml new file mode 100644 index 000000000..8ba43c102 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/resources/subflow/flow-sub2.yml @@ -0,0 +1,6 @@ +flow: + chain: + - name: chain3 + condition: + - type: then + value: 'e,d' \ No newline at end of file diff --git a/liteflow-testcase-nospring/src/test/resources/subflow/flow.json b/liteflow-testcase-nospring/src/test/resources/subflow/flow.json new file mode 100644 index 000000000..e11a9860a --- /dev/null +++ b/liteflow-testcase-nospring/src/test/resources/subflow/flow.json @@ -0,0 +1,73 @@ +{ + "flow": { + "nodes": { + "node": [ + { + "id": "a", + "class": "com.yomahub.liteflow.test.subflow.cmp1.ACmp" + }, + { + "id": "b", + "class": "com.yomahub.liteflow.test.subflow.cmp1.BCmp" + }, + { + "id": "c", + "class": "com.yomahub.liteflow.test.subflow.cmp1.CCmp" + }, + { + "id": "d", + "class": "com.yomahub.liteflow.test.subflow.cmp1.DCmp" + }, + { + "id": "e", + "class": "com.yomahub.liteflow.test.subflow.cmp1.ECmp" + }, + { + "id": "f", + "class": "com.yomahub.liteflow.test.subflow.cmp2.FCmp" + }, + { + "id": "g", + "class": "com.yomahub.liteflow.test.subflow.cmp2.GCmp" + }, + { + "id": "h", + "class": "com.yomahub.liteflow.test.subflow.cmp2.HCmp" + }, + { + "id": "M", + "class": "com.yomahub.liteflow.test.subflow.cmp2.MCmp" + } + ] + }, + "chain": [ + { + "name": "chain3", + "condition": [ + {"type": "then", "value": "e,d"} + ] + }, + { + "name": "chain2", + "condition": [ + {"type": "then", "value": "b,a"}, + {"type": "then", "value": "chain3"} + ] + }, + { + "name": "chain1", + "condition": [ + {"type": "then", "value": "a,b"}, + {"type": "then", "value": "c"}, + {"type": "then", "value": "chain2"} + ] + }, + { + "name": "c", + "condition": [ + {"type": "then", "value": "d,e"} + ] + } + ] + } +} \ No newline at end of file diff --git a/liteflow-testcase-nospring/src/test/resources/subflow/flow.xml b/liteflow-testcase-nospring/src/test/resources/subflow/flow.xml new file mode 100644 index 000000000..538ab30ed --- /dev/null +++ b/liteflow-testcase-nospring/src/test/resources/subflow/flow.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/liteflow-testcase-nospring/src/test/resources/subflow/flow.yml b/liteflow-testcase-nospring/src/test/resources/subflow/flow.yml new file mode 100644 index 000000000..5c20998ee --- /dev/null +++ b/liteflow-testcase-nospring/src/test/resources/subflow/flow.yml @@ -0,0 +1,44 @@ +flow: + nodes: + node: + - id: a + class: com.yomahub.liteflow.test.subflow.cmp1.ACmp + - id: b + class: com.yomahub.liteflow.test.subflow.cmp1.BCmp + - id: c + class: com.yomahub.liteflow.test.subflow.cmp1.CCmp + - id: d + class: com.yomahub.liteflow.test.subflow.cmp1.DCmp + - id: e + class: com.yomahub.liteflow.test.subflow.cmp1.ECmp + - id: f + class: com.yomahub.liteflow.test.subflow.cmp2.FCmp + - id: g + class: com.yomahub.liteflow.test.subflow.cmp2.GCmp + - id: h + class: com.yomahub.liteflow.test.subflow.cmp2.HCmp + - id: h + class: com.yomahub.liteflow.test.subflow.cmp2.MCmp + chain: + - name: chain3 + condition: + - type: then + value: 'e,d' + - name: chain1 + condition: + - type: then + value: 'a,b' + - type: then + value: 'c' + - type: then + value: 'chain2' + - name: c + condition: + - type: then + value: 'd,e' + - name: chain2 + condition: + - type: then + value: 'b,a' + - type: then + value: 'chain3' \ No newline at end of file