From 82348cb926f69f916beb01bf0dfe09b857c5bf00 Mon Sep 17 00:00:00 2001 From: rain <672378783@qq.com> Date: Fri, 26 Jan 2024 14:31:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9EL=E8=AF=AD=E5=8F=A5=E9=87=8C=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E9=87=8D=E8=AF=95=E6=AC=A1=E6=95=B0=E7=9A=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E8=BF=9B=E8=A1=8C=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../liteflow/annotation/LiteflowRetry.java | 1 + .../builder/el/LiteFlowChainELBuilder.java | 2 +- ...yTimesOperator.java => RetryOperator.java} | 13 ++-- .../liteflow/common/ChainConstant.java | 2 +- .../element/condition/RetryCondition.java | 19 +++++- .../RetryELDeclMultiSpringbootTest.java} | 26 +++++--- .../{retryTimes => retry}/cmp/CmpConfig.java | 15 +++-- .../resources/retry/application.properties | 1 + .../src/test/resources/retry/flow.el.xml | 51 ++++++++++++++++ .../retryTimes/application.properties | 1 - .../src/test/resources/retryTimes/flow.el.xml | 43 ------------- .../retry/RetryELDeclSpringbootTest.java} | 26 +++++--- .../test/{retryTimes => retry}/cmp/ACmp.java | 2 +- .../test/{retryTimes => retry}/cmp/BCmp.java | 2 +- .../liteflow/test/retry}/cmp/CCmp.java | 2 +- .../liteflow/test/retry}/cmp/DCmp.java | 2 +- .../test/{retryTimes => retry}/cmp/FCmp.java | 2 +- .../test/{retryTimes => retry}/cmp/ICmp.java | 2 +- .../yomahub/liteflow/test/retry/cmp/MCmp.java | 18 ++++++ .../test/{retryTimes => retry}/cmp/NCmp.java | 2 +- .../resources/retry/application.properties | 1 + .../src/test/resources/retry/flow.el.xml | 51 ++++++++++++++++ .../retryTimes/application.properties | 1 - .../src/test/resources/retryTimes/flow.el.xml | 43 ------------- .../RetryTest.java} | 21 +++++-- .../test/{retryTimes => retry}/cmp/ACmp.java | 2 +- .../test/{retryTimes => retry}/cmp/BCmp.java | 2 +- .../test/{retryTimes => retry}/cmp/CCmp.java | 2 +- .../test/{retryTimes => retry}/cmp/DCmp.java | 2 +- .../test/{retryTimes => retry}/cmp/FCmp.java | 2 +- .../test/{retryTimes => retry}/cmp/ICmp.java | 2 +- .../yomahub/liteflow/test/retry/cmp/MCmp.java | 16 +++++ .../test/{retryTimes => retry}/cmp/NCmp.java | 2 +- .../src/test/resources/retry/flow.el.xml | 61 +++++++++++++++++++ .../src/test/resources/retryTimes/flow.el.xml | 52 ---------------- .../RetrySpringbootTest.java} | 21 +++++-- .../test/{retryTimes => retry}/cmp/ACmp.java | 2 +- .../test/{retryTimes => retry}/cmp/BCmp.java | 2 +- .../test/{retryTimes => retry}/cmp/CCmp.java | 2 +- .../test/{retryTimes => retry}/cmp/DCmp.java | 2 +- .../test/{retryTimes => retry}/cmp/FCmp.java | 2 +- .../test/{retryTimes => retry}/cmp/ICmp.java | 2 +- .../yomahub/liteflow/test/retry/cmp/MCmp.java | 18 ++++++ .../test/{retryTimes => retry}/cmp/NCmp.java | 2 +- .../resources/retry/application.properties | 1 + .../src/test/resources/retry/flow.el.xml | 51 ++++++++++++++++ .../retryTimes/application.properties | 1 - .../src/test/resources/retryTimes/flow.el.xml | 43 ------------- .../test/retry/RetrySpringbootTest.java} | 25 ++++++-- .../test/{retryTimes => retry}/cmp/ACmp.java | 2 +- .../test/{retryTimes => retry}/cmp/BCmp.java | 3 +- .../liteflow/test/retry}/cmp/CCmp.java | 2 +- .../liteflow/test/retry}/cmp/DCmp.java | 2 +- .../test/{retryTimes => retry}/cmp/FCmp.java | 2 +- .../test/{retryTimes => retry}/cmp/ICmp.java | 2 +- .../yomahub/liteflow/test/retry/cmp/MCmp.java | 18 ++++++ .../test/{retryTimes => retry}/cmp/NCmp.java | 2 +- .../resources/retry/application.properties | 1 + .../src/test/resources/retry/flow.el.xml | 50 +++++++++++++++ .../retryTimes/application.properties | 1 - .../src/test/resources/retryTimes/flow.el.xml | 42 ------------- .../RetrySpringTest.java} | 21 +++++-- .../test/{retryTimes => retry}/cmp/ACmp.java | 2 +- .../test/{retryTimes => retry}/cmp/BCmp.java | 2 +- .../test/{retryTimes => retry}/cmp/CCmp.java | 2 +- .../test/{retryTimes => retry}/cmp/DCmp.java | 2 +- .../test/{retryTimes => retry}/cmp/FCmp.java | 2 +- .../test/{retryTimes => retry}/cmp/ICmp.java | 2 +- .../yomahub/liteflow/test/retry/cmp/MCmp.java | 18 ++++++ .../test/{retryTimes => retry}/cmp/NCmp.java | 2 +- .../{retryTimes => retry}/application.xml | 4 +- .../src/test/resources/retry/flow.el.xml | 51 ++++++++++++++++ .../src/test/resources/retryTimes/flow.el.xml | 43 ------------- 73 files changed, 592 insertions(+), 352 deletions(-) rename liteflow-core/src/main/java/com/yomahub/liteflow/builder/el/operator/{RetryTimesOperator.java => RetryOperator.java} (66%) rename liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/java/com/yomahub/liteflow/test/{retryTimes/RetryTimesELDeclMultiSpringbootTest.java => retry/RetryELDeclMultiSpringbootTest.java} (82%) rename liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/CmpConfig.java (86%) create mode 100644 liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/resources/retry/application.properties create mode 100644 liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/resources/retry/flow.el.xml delete mode 100644 liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/resources/retryTimes/application.properties delete mode 100644 liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/resources/retryTimes/flow.el.xml rename liteflow-testcase-el/{liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/RetryTimesSpringbootTest.java => liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/RetryELDeclSpringbootTest.java} (81%) rename liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/ACmp.java (84%) rename liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/BCmp.java (88%) rename liteflow-testcase-el/{liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes => liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry}/cmp/CCmp.java (89%) rename liteflow-testcase-el/{liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes => liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry}/cmp/DCmp.java (89%) rename liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/FCmp.java (89%) rename liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/ICmp.java (91%) create mode 100644 liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/MCmp.java rename liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/NCmp.java (89%) create mode 100644 liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/resources/retry/application.properties create mode 100644 liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/resources/retry/flow.el.xml delete mode 100644 liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/resources/retryTimes/application.properties delete mode 100644 liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/resources/retryTimes/flow.el.xml rename liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/{retryTimes/RetryTimesTest.java => retry/RetryTest.java} (84%) rename liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/ACmp.java (79%) rename liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/BCmp.java (85%) rename liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/CCmp.java (86%) rename liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/DCmp.java (87%) rename liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/FCmp.java (86%) rename liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/ICmp.java (90%) create mode 100644 liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/MCmp.java rename liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/NCmp.java (87%) create mode 100644 liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/retry/flow.el.xml delete mode 100644 liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/retryTimes/flow.el.xml rename liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/{retryTimes/RetryTimesSpringbootTest.java => retry/RetrySpringbootTest.java} (84%) rename liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/ACmp.java (83%) rename liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/BCmp.java (87%) rename liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/CCmp.java (88%) rename liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/DCmp.java (88%) rename liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/FCmp.java (88%) rename liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/ICmp.java (91%) create mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/MCmp.java rename liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/NCmp.java (89%) create mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/retry/application.properties create mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/retry/flow.el.xml delete mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/retryTimes/application.properties delete mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/retryTimes/flow.el.xml rename liteflow-testcase-el/{liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/RetryTimesELDeclSpringbootTest.java => liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/RetrySpringbootTest.java} (81%) rename liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/ACmp.java (84%) rename liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/BCmp.java (78%) rename liteflow-testcase-el/{liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes => liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry}/cmp/CCmp.java (89%) rename liteflow-testcase-el/{liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes => liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry}/cmp/DCmp.java (89%) rename liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/FCmp.java (89%) rename liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/ICmp.java (91%) create mode 100644 liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/MCmp.java rename liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/NCmp.java (89%) create mode 100644 liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/retry/application.properties create mode 100644 liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/retry/flow.el.xml delete mode 100644 liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/retryTimes/application.properties delete mode 100644 liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/retryTimes/flow.el.xml rename liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/{retryTimes/RetryTimesSpringTest.java => retry/RetrySpringTest.java} (84%) rename liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/ACmp.java (83%) rename liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/BCmp.java (87%) rename liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/CCmp.java (88%) rename liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/DCmp.java (88%) rename liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/FCmp.java (88%) rename liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/ICmp.java (91%) create mode 100644 liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/MCmp.java rename liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/{retryTimes => retry}/cmp/NCmp.java (89%) rename liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/{retryTimes => retry}/application.xml (91%) create mode 100644 liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/retry/flow.el.xml delete mode 100644 liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/retryTimes/flow.el.xml diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/annotation/LiteflowRetry.java b/liteflow-core/src/main/java/com/yomahub/liteflow/annotation/LiteflowRetry.java index 2af9f5dae..34ad6ac8f 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/annotation/LiteflowRetry.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/annotation/LiteflowRetry.java @@ -12,6 +12,7 @@ import java.lang.annotation.*; @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited +@Deprecated public @interface LiteflowRetry { @LFAliasFor("retry") diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/builder/el/LiteFlowChainELBuilder.java b/liteflow-core/src/main/java/com/yomahub/liteflow/builder/el/LiteFlowChainELBuilder.java index f749aee94..6de02fb00 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/builder/el/LiteFlowChainELBuilder.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/builder/el/LiteFlowChainELBuilder.java @@ -92,7 +92,7 @@ public class LiteFlowChainELBuilder { EXPRESS_RUNNER.addFunctionAndClassMethod(ChainConstant.MAX_WAIT_SECONDS, Object.class, new MaxWaitSecondsOperator()); EXPRESS_RUNNER.addFunctionAndClassMethod(ChainConstant.MAX_WAIT_MILLISECONDS, Object.class, new MaxWaitMillisecondsOperator()); EXPRESS_RUNNER.addFunctionAndClassMethod(ChainConstant.PARALLEL, Object.class, new ParallelOperator()); - EXPRESS_RUNNER.addFunctionAndClassMethod(ChainConstant.RETRY_TIMES, Object.class, new RetryTimesOperator()); + EXPRESS_RUNNER.addFunctionAndClassMethod(ChainConstant.RETRY, Object.class, new RetryOperator()); } public static LiteFlowChainELBuilder createChain() { diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/builder/el/operator/RetryTimesOperator.java b/liteflow-core/src/main/java/com/yomahub/liteflow/builder/el/operator/RetryOperator.java similarity index 66% rename from liteflow-core/src/main/java/com/yomahub/liteflow/builder/el/operator/RetryTimesOperator.java rename to liteflow-core/src/main/java/com/yomahub/liteflow/builder/el/operator/RetryOperator.java index 72ac3dded..2e8b5a4a1 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/builder/el/operator/RetryTimesOperator.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/builder/el/operator/RetryOperator.java @@ -2,12 +2,9 @@ package com.yomahub.liteflow.builder.el.operator; import com.yomahub.liteflow.builder.el.operator.base.BaseOperator; import com.yomahub.liteflow.builder.el.operator.base.OperatorHelper; -import com.yomahub.liteflow.core.NodeComponent; import com.yomahub.liteflow.flow.element.Condition; import com.yomahub.liteflow.flow.element.Executable; import com.yomahub.liteflow.flow.element.condition.RetryCondition; -import com.yomahub.liteflow.flow.element.condition.ThenCondition; -import com.yomahub.liteflow.flow.element.condition.WhileCondition; /** * @@ -15,7 +12,7 @@ import com.yomahub.liteflow.flow.element.condition.WhileCondition; * @since 2.11.5 * */ -public class RetryTimesOperator extends BaseOperator { +public class RetryOperator extends BaseOperator { @Override public Condition build(Object[] objects) throws Exception { OperatorHelper.checkObjectSizeGtTwo(objects); @@ -24,6 +21,14 @@ public class RetryTimesOperator extends BaseOperator { RetryCondition retryCondition = new RetryCondition(); retryCondition.addExecutable(executable); retryCondition.setRetryTimes(retryTimes); + if(objects.length > 2) { + Class[] forExceptions = new Class[objects.length - 2]; + for(int i = 2; i < objects.length; i ++) { + String className = OperatorHelper.convert(objects[i], String.class); + forExceptions[i - 2] = Class.forName(className); + } + retryCondition.setRetryForExceptions(forExceptions); + } return retryCondition; } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/common/ChainConstant.java b/liteflow-core/src/main/java/com/yomahub/liteflow/common/ChainConstant.java index 977a9371a..c90600165 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/common/ChainConstant.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/common/ChainConstant.java @@ -94,6 +94,6 @@ public interface ChainConstant { String EXTENDS = "extends"; - String RETRY_TIMES = "retryTimes"; + String RETRY = "retry"; } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/RetryCondition.java b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/RetryCondition.java index 6f4bbaf99..91c1d14f3 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/RetryCondition.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/RetryCondition.java @@ -3,7 +3,6 @@ package com.yomahub.liteflow.flow.element.condition; import cn.hutool.core.text.StrFormatter; import cn.hutool.core.util.ObjectUtil; import com.yomahub.liteflow.exception.ChainEndException; -import com.yomahub.liteflow.exception.ELParseException; import com.yomahub.liteflow.flow.element.Chain; import com.yomahub.liteflow.flow.element.Condition; import com.yomahub.liteflow.flow.element.Executable; @@ -12,12 +11,25 @@ import com.yomahub.liteflow.log.LFLog; import com.yomahub.liteflow.log.LFLoggerManager; import com.yomahub.liteflow.slot.DataBus; +import java.util.Arrays; +import java.util.List; + public class RetryCondition extends ThenCondition{ private final LFLog LOG = LFLoggerManager.getLogger(this.getClass()); private Integer retryTimes; + private Class[] retryForExceptions = new Class[] { Exception.class }; + + public Class[] getRetryForExceptions() { + return retryForExceptions; + } + + public void setRetryForExceptions(Class[] retryForExceptions) { + this.retryForExceptions = retryForExceptions; + } + public Integer getRetryTimes() { return retryTimes; } @@ -29,6 +41,7 @@ public class RetryCondition extends ThenCondition{ @Override public void executeCondition(Integer slotIndex) throws Exception { int retryTimes = this.getRetryTimes() < 0 ? 0 : this.getRetryTimes(); + List> forExceptions = Arrays.asList(this.getRetryForExceptions()); for (int i = 0; i <= retryTimes; i ++) { try { if(i == 0) { @@ -40,7 +53,9 @@ public class RetryCondition extends ThenCondition{ } catch (ChainEndException e) { throw e; } catch (Exception e) { - if(i >= retryTimes) { + // 判断抛出的异常是不是指定异常的子类 + boolean flag = forExceptions.stream().anyMatch(clazz -> clazz.isAssignableFrom(e.getClass())); + if(!flag || i >= retryTimes) { if(retryTimes > 0) { String retryFailMsg = StrFormatter.format("retry fail when executing the chain[{}] because {} occurs {}.", this.getCurrChainId(), this.getCurrentExecutableId(), e); diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/RetryTimesELDeclMultiSpringbootTest.java b/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/java/com/yomahub/liteflow/test/retry/RetryELDeclMultiSpringbootTest.java similarity index 82% rename from liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/RetryTimesELDeclMultiSpringbootTest.java rename to liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/java/com/yomahub/liteflow/test/retry/RetryELDeclMultiSpringbootTest.java index 2ed4fe38e..664816a7d 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/RetryTimesELDeclMultiSpringbootTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/java/com/yomahub/liteflow/test/retry/RetryELDeclMultiSpringbootTest.java @@ -1,9 +1,8 @@ -package com.yomahub.liteflow.test.retryTimes; +package com.yomahub.liteflow.test.retry; import com.yomahub.liteflow.core.FlowExecutor; import com.yomahub.liteflow.flow.LiteflowResponse; import com.yomahub.liteflow.test.BaseTest; -import com.yomahub.liteflow.test.rollback.RollbackELDeclMultiSpringbootTest; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -17,11 +16,11 @@ import javax.annotation.Resource; @ExtendWith(SpringExtension.class) -@TestPropertySource(value = "classpath:/retryTimes/application.properties") -@SpringBootTest(classes = RetryTimesELDeclMultiSpringbootTest.class) +@TestPropertySource(value = "classpath:/retry/application.properties") +@SpringBootTest(classes = RetryELDeclMultiSpringbootTest.class) @EnableAutoConfiguration -@ComponentScan({ "com.yomahub.liteflow.test.retryTimes.cmp" }) -public class RetryTimesELDeclMultiSpringbootTest extends BaseTest { +@ComponentScan({"com.yomahub.liteflow.test.retry.cmp"}) +public class RetryELDeclMultiSpringbootTest extends BaseTest { @Resource private FlowExecutor flowExecutor; @@ -46,7 +45,6 @@ public class RetryTimesELDeclMultiSpringbootTest extends BaseTest { public void testNode() throws Exception { LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); Assertions.assertTrue(response.isSuccess()); - Assertions.assertEquals("a==>b==>b==>b==>b", response.getExecuteStepStr()); } // FOR测试 @@ -105,4 +103,18 @@ public class RetryTimesELDeclMultiSpringbootTest extends BaseTest { Assertions.assertEquals("a==>b", response.getExecuteStepStr()); } + // 指定异常重试测试1 + @Test + public void testException1() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("chain11", "arg"); + Assertions.assertTrue(response.isSuccess()); + } + + // 指定异常重试测试2 + @Test + public void testException2() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("chain12", "arg"); + Assertions.assertFalse(response.isSuccess()); + } + } diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/CmpConfig.java b/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/CmpConfig.java similarity index 86% rename from liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/CmpConfig.java rename to liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/CmpConfig.java index da8c2cb99..996ace9ee 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/CmpConfig.java +++ b/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/CmpConfig.java @@ -1,13 +1,12 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import cn.hutool.core.collection.ListUtil; import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.annotation.LiteflowMethod; -import com.yomahub.liteflow.annotation.LiteflowRetry; import com.yomahub.liteflow.core.NodeComponent; import com.yomahub.liteflow.enums.LiteFlowMethodEnum; import com.yomahub.liteflow.enums.NodeTypeEnum; -import com.yomahub.liteflow.slot.DefaultContext; +import com.yomahub.liteflow.exception.ELParseException; import java.util.Iterator; import java.util.List; @@ -21,7 +20,7 @@ public class CmpConfig { int flagf = 0; int flagi = 0; int flagn = 0; - int flagw = 0; + int flagm = 0; @LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "a") public void processA(NodeComponent bindCmp) { @@ -70,6 +69,14 @@ public class CmpConfig { } } + @LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "m") + public void processM(NodeComponent bindCmp) { + flagm ++; + System.out.println("MCmp executed!"); + if(flagm < 4) throw new ELParseException("MCmp error!"); + else flagm = 0; + } + @LiteflowMethod(value = LiteFlowMethodEnum.PROCESS_WHILE, nodeId = "n", nodeType = NodeTypeEnum.WHILE) public boolean processN(NodeComponent bindCmp) { flagn ++; diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/resources/retry/application.properties b/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/resources/retry/application.properties new file mode 100644 index 000000000..4323c74b3 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/resources/retry/application.properties @@ -0,0 +1 @@ +liteflow.rule-source=retry/flow.el.xml \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/resources/retry/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/resources/retry/flow.el.xml new file mode 100644 index 000000000..c567d84d5 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/resources/retry/flow.el.xml @@ -0,0 +1,51 @@ + + + + THEN( a, b ).retry(3); + + + + WHEN( a, b ).retry(3); + + + + THEN( a, b.retry(3) ); + + + + FOR(c).DO(a).retry(3); + + + + SWITCH(d).TO(a).retry(3); + + + + IF(f, a).retry(3); + + + + WHILE(n).DO(a).retry(3); + + + + ITERATOR(i).DO(a).retry(3); + + + + THEN( a, b ).retry(1); + + + + THEN( a, FINALLY(b, a).retry(3) ); + + + + THEN( a, m ).retry(3, "com.yomahub.liteflow.exception.ELParseException", "com.yomahub.liteflow.exception.FlowSystemException"); + + + + THEN( a, m ).retry(3, "com.yomahub.liteflow.exception.AndOrConditionException"); + + + \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/resources/retryTimes/application.properties b/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/resources/retryTimes/application.properties deleted file mode 100644 index ecdb08bea..000000000 --- a/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/resources/retryTimes/application.properties +++ /dev/null @@ -1 +0,0 @@ -liteflow.rule-source=retryTimes/flow.el.xml \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/resources/retryTimes/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/resources/retryTimes/flow.el.xml deleted file mode 100644 index 775e7a742..000000000 --- a/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/resources/retryTimes/flow.el.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - THEN( a, b ).retryTimes(3); - - - - WHEN( a, b ).retryTimes(3); - - - - THEN( a, b.retryTimes(3) ); - - - - FOR(c).DO(a).retryTimes(3); - - - - SWITCH(d).TO(a).retryTimes(3); - - - - IF(f, a).retryTimes(3); - - - - WHILE(n).DO(a).retryTimes(3); - - - - ITERATOR(i).DO(a).retryTimes(3); - - - - THEN( a, b ).retryTimes(1); - - - - THEN( a, FINALLY(b, a).retryTimes(3) ); - - - \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/RetryTimesSpringbootTest.java b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/RetryELDeclSpringbootTest.java similarity index 81% rename from liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/RetryTimesSpringbootTest.java rename to liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/RetryELDeclSpringbootTest.java index 24d30a669..486aaddf6 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/RetryTimesSpringbootTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/RetryELDeclSpringbootTest.java @@ -1,8 +1,7 @@ -package com.yomahub.liteflow.test.retryTimes; +package com.yomahub.liteflow.test.retry; 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.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -14,11 +13,11 @@ import org.springframework.test.context.TestPropertySource; import javax.annotation.Resource; -@TestPropertySource(value = "classpath:/retryTimes/application.properties") -@SpringBootTest(classes = RetryTimesSpringbootTest.class) +@TestPropertySource(value = "classpath:/retry/application.properties") +@SpringBootTest(classes = RetryELDeclSpringbootTest.class) @EnableAutoConfiguration -@ComponentScan({ "com.yomahub.liteflow.test.retryTimes.cmp" }) -public class RetryTimesSpringbootTest extends BaseTest { +@ComponentScan({"com.yomahub.liteflow.test.retry.cmp"}) +public class RetryELDeclSpringbootTest extends BaseTest { @Resource private FlowExecutor flowExecutor; @@ -43,7 +42,6 @@ public class RetryTimesSpringbootTest extends BaseTest { public void testNode() throws Exception { LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); Assertions.assertTrue(response.isSuccess()); - Assertions.assertEquals("a==>b==>b==>b==>b", response.getExecuteStepStr()); } // FOR测试 @@ -102,4 +100,18 @@ public class RetryTimesSpringbootTest extends BaseTest { Assertions.assertEquals("a==>b", response.getExecuteStepStr()); } + // 指定异常重试测试1 + @Test + public void testException1() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("chain11", "arg"); + Assertions.assertTrue(response.isSuccess()); + } + + // 指定异常重试测试2 + @Test + public void testException2() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("chain12", "arg"); + Assertions.assertFalse(response.isSuccess()); + } + } diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ACmp.java b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/ACmp.java similarity index 84% rename from liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ACmp.java rename to liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/ACmp.java index 46e99dc1f..98bcc2379 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ACmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/ACmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.core.NodeComponent; diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/BCmp.java b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/BCmp.java similarity index 88% rename from liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/BCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/BCmp.java index 5a02501b3..991f5e68a 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/BCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/BCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.core.NodeComponent; diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/CCmp.java b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/CCmp.java similarity index 89% rename from liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/CCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/CCmp.java index f6a1014ee..ecf7f1a25 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/CCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/CCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.core.NodeForComponent; diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/DCmp.java b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/DCmp.java similarity index 89% rename from liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/DCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/DCmp.java index 319c98cd5..34e9bb5b7 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/DCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/DCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.core.NodeSwitchComponent; diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/FCmp.java b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/FCmp.java similarity index 89% rename from liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/FCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/FCmp.java index f9764757e..1bc95f542 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/FCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/FCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.core.NodeIfComponent; diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ICmp.java b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/ICmp.java similarity index 91% rename from liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ICmp.java rename to liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/ICmp.java index 3341869d8..9ccd8457e 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ICmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/ICmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import cn.hutool.core.collection.ListUtil; diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/MCmp.java b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/MCmp.java new file mode 100644 index 000000000..0498cee17 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/MCmp.java @@ -0,0 +1,18 @@ +package com.yomahub.liteflow.test.retry.cmp; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import com.yomahub.liteflow.exception.ELParseException; + +@LiteflowComponent("m") +public class MCmp extends NodeComponent { + int flag = 0; + + @Override + public void process() throws Exception { + flag ++; + System.out.println("MCmp executed!"); + if(flag < 4) throw new ELParseException("MCmp error!"); + else flag = 0; + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/NCmp.java b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/NCmp.java similarity index 89% rename from liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/NCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/NCmp.java index d4e371647..ac0434c95 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/NCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/NCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.core.NodeWhileComponent; diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/resources/retry/application.properties b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/resources/retry/application.properties new file mode 100644 index 000000000..4323c74b3 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/resources/retry/application.properties @@ -0,0 +1 @@ +liteflow.rule-source=retry/flow.el.xml \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/resources/retry/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/resources/retry/flow.el.xml new file mode 100644 index 000000000..c567d84d5 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/resources/retry/flow.el.xml @@ -0,0 +1,51 @@ + + + + THEN( a, b ).retry(3); + + + + WHEN( a, b ).retry(3); + + + + THEN( a, b.retry(3) ); + + + + FOR(c).DO(a).retry(3); + + + + SWITCH(d).TO(a).retry(3); + + + + IF(f, a).retry(3); + + + + WHILE(n).DO(a).retry(3); + + + + ITERATOR(i).DO(a).retry(3); + + + + THEN( a, b ).retry(1); + + + + THEN( a, FINALLY(b, a).retry(3) ); + + + + THEN( a, m ).retry(3, "com.yomahub.liteflow.exception.ELParseException", "com.yomahub.liteflow.exception.FlowSystemException"); + + + + THEN( a, m ).retry(3, "com.yomahub.liteflow.exception.AndOrConditionException"); + + + \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/resources/retryTimes/application.properties b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/resources/retryTimes/application.properties deleted file mode 100644 index ecdb08bea..000000000 --- a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/resources/retryTimes/application.properties +++ /dev/null @@ -1 +0,0 @@ -liteflow.rule-source=retryTimes/flow.el.xml \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/resources/retryTimes/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/resources/retryTimes/flow.el.xml deleted file mode 100644 index 775e7a742..000000000 --- a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/resources/retryTimes/flow.el.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - THEN( a, b ).retryTimes(3); - - - - WHEN( a, b ).retryTimes(3); - - - - THEN( a, b.retryTimes(3) ); - - - - FOR(c).DO(a).retryTimes(3); - - - - SWITCH(d).TO(a).retryTimes(3); - - - - IF(f, a).retryTimes(3); - - - - WHILE(n).DO(a).retryTimes(3); - - - - ITERATOR(i).DO(a).retryTimes(3); - - - - THEN( a, b ).retryTimes(1); - - - - THEN( a, FINALLY(b, a).retryTimes(3) ); - - - \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/RetryTimesTest.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/RetryTest.java similarity index 84% rename from liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/RetryTimesTest.java rename to liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/RetryTest.java index b3dec4514..19cde5ca8 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/RetryTimesTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/RetryTest.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes; +package com.yomahub.liteflow.test.retry; import com.yomahub.liteflow.core.FlowExecutor; @@ -10,14 +10,14 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -public class RetryTimesTest extends BaseTest { +public class RetryTest extends BaseTest { private static FlowExecutor flowExecutor; @BeforeAll public static void init() { LiteflowConfig config = new LiteflowConfig(); - config.setRuleSource("retryTimes/flow.el.xml"); + config.setRuleSource("retry/flow.el.xml"); flowExecutor = FlowExecutorHolder.loadInstance(config); } @@ -41,7 +41,6 @@ public class RetryTimesTest extends BaseTest { public void testNode() throws Exception { LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); Assertions.assertTrue(response.isSuccess()); - Assertions.assertEquals("a==>b==>b==>b==>b", response.getExecuteStepStr()); } // FOR测试 @@ -100,4 +99,18 @@ public class RetryTimesTest extends BaseTest { Assertions.assertEquals("a==>b", response.getExecuteStepStr()); } + // 指定异常重试测试1 + @Test + public void testException1() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("chain11", "arg"); + Assertions.assertTrue(response.isSuccess()); + } + + // 指定异常重试测试2 + @Test + public void testException2() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("chain12", "arg"); + Assertions.assertFalse(response.isSuccess()); + } + } diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ACmp.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/ACmp.java similarity index 79% rename from liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ACmp.java rename to liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/ACmp.java index 23ed69a7a..689fe29f6 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ACmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/ACmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.core.NodeComponent; diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/BCmp.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/BCmp.java similarity index 85% rename from liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/BCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/BCmp.java index d52cfdb2d..1c5ecbf14 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/BCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/BCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.core.NodeComponent; diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/CCmp.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/CCmp.java similarity index 86% rename from liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/CCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/CCmp.java index 9a39cb349..cad5acb41 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/CCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/CCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.core.NodeForComponent; diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/DCmp.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/DCmp.java similarity index 87% rename from liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/DCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/DCmp.java index e88942178..b845c6008 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/DCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/DCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.core.NodeSwitchComponent; diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/FCmp.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/FCmp.java similarity index 86% rename from liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/FCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/FCmp.java index bd5601bbb..6135b9444 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/FCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/FCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.core.NodeIfComponent; diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ICmp.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/ICmp.java similarity index 90% rename from liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ICmp.java rename to liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/ICmp.java index 058bb3c4e..8fbc1c767 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ICmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/ICmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import cn.hutool.core.collection.ListUtil; diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/MCmp.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/MCmp.java new file mode 100644 index 000000000..9dd76d1bd --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/MCmp.java @@ -0,0 +1,16 @@ +package com.yomahub.liteflow.test.retry.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import com.yomahub.liteflow.exception.ELParseException; + +public class MCmp extends NodeComponent { + int flag = 0; + + @Override + public void process() throws Exception { + flag ++; + System.out.println("MCmp executed!"); + if(flag < 4) throw new ELParseException("MCmp error!"); + else flag = 0; + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/NCmp.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/NCmp.java similarity index 87% rename from liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/NCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/NCmp.java index 68409ab83..709dce3a0 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/NCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/retry/cmp/NCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.core.NodeWhileComponent; diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/retry/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/retry/flow.el.xml new file mode 100644 index 000000000..175044312 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/retry/flow.el.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + THEN( a, b ).retry(3); + + + + WHEN( a, b ).retry(3); + + + + THEN( a, b.retry(3) ); + + + + FOR(c).DO(a).retry(3); + + + + SWITCH(d).TO(a).retry(3); + + + + IF(f, a).retry(3); + + + + WHILE(n).DO(a).retry(3); + + + + ITERATOR(i).DO(a).retry(3); + + + + THEN( a, b ).retry(1); + + + + THEN( a, FINALLY(b, a).retry(3) ); + + + + THEN( a, m ).retry(3, "com.yomahub.liteflow.exception.ELParseException", "com.yomahub.liteflow.exception.FlowSystemException"); + + + + THEN( a, m ).retry(3, "com.yomahub.liteflow.exception.AndOrConditionException"); + + + \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/retryTimes/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/retryTimes/flow.el.xml deleted file mode 100644 index 685f6ef27..000000000 --- a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/retryTimes/flow.el.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - THEN( a, b ).retryTimes(3); - - - - WHEN( a, b ).retryTimes(3); - - - - THEN( a, b.retryTimes(3) ); - - - - FOR(c).DO(a).retryTimes(3); - - - - SWITCH(d).TO(a).retryTimes(3); - - - - IF(f, a).retryTimes(3); - - - - WHILE(n).DO(a).retryTimes(3); - - - - ITERATOR(i).DO(a).retryTimes(3); - - - - THEN( a, b ).retryTimes(1); - - - - THEN( a, FINALLY(b, a).retryTimes(3) ); - - - \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/RetryTimesSpringbootTest.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/RetrySpringbootTest.java similarity index 84% rename from liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/RetryTimesSpringbootTest.java rename to liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/RetrySpringbootTest.java index 79b92c2b3..ed5371230 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/RetryTimesSpringbootTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/RetrySpringbootTest.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes; +package com.yomahub.liteflow.test.retry; import com.yomahub.liteflow.core.FlowExecutor; @@ -12,8 +12,8 @@ import org.noear.solon.test.SolonJUnit5Extension; import org.noear.solon.test.annotation.TestPropertySource; @ExtendWith(SolonJUnit5Extension.class) -@TestPropertySource("classpath:/retryTimes/application.properties") -public class RetryTimesSpringbootTest extends BaseTest { +@TestPropertySource("classpath:/retry/application.properties") +public class RetrySpringbootTest extends BaseTest { @Inject private FlowExecutor flowExecutor; @@ -38,7 +38,6 @@ public class RetryTimesSpringbootTest extends BaseTest { public void testNode() throws Exception { LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); Assertions.assertTrue(response.isSuccess()); - Assertions.assertEquals("a==>b==>b==>b==>b", response.getExecuteStepStr()); } // FOR测试 @@ -97,4 +96,18 @@ public class RetryTimesSpringbootTest extends BaseTest { Assertions.assertEquals("a==>b", response.getExecuteStepStr()); } + // 指定异常重试测试1 + @Test + public void testException1() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("chain11", "arg"); + Assertions.assertTrue(response.isSuccess()); + } + + // 指定异常重试测试2 + @Test + public void testException2() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("chain12", "arg"); + Assertions.assertFalse(response.isSuccess()); + } + } diff --git a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ACmp.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/ACmp.java similarity index 83% rename from liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ACmp.java rename to liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/ACmp.java index 9c5531a86..795d8247e 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ACmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/ACmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.core.NodeComponent; import org.noear.solon.annotation.Component; diff --git a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/BCmp.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/BCmp.java similarity index 87% rename from liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/BCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/BCmp.java index b4890b4ef..0eb4b1573 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/BCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/BCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.core.NodeComponent; import org.noear.solon.annotation.Component; diff --git a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/CCmp.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/CCmp.java similarity index 88% rename from liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/CCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/CCmp.java index 069acb496..9d135e74d 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/CCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/CCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.core.NodeForComponent; import org.noear.solon.annotation.Component; diff --git a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/DCmp.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/DCmp.java similarity index 88% rename from liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/DCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/DCmp.java index ccbd72a3e..7848456db 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/DCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/DCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.core.NodeSwitchComponent; import org.noear.solon.annotation.Component; diff --git a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/FCmp.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/FCmp.java similarity index 88% rename from liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/FCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/FCmp.java index 5d13709bb..54df152d5 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/FCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/FCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.core.NodeIfComponent; import org.noear.solon.annotation.Component; diff --git a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ICmp.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/ICmp.java similarity index 91% rename from liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ICmp.java rename to liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/ICmp.java index 922ace500..a711d5b4f 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ICmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/ICmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import cn.hutool.core.collection.ListUtil; diff --git a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/MCmp.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/MCmp.java new file mode 100644 index 000000000..37e1d9f35 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/MCmp.java @@ -0,0 +1,18 @@ +package com.yomahub.liteflow.test.retry.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import com.yomahub.liteflow.exception.ELParseException; +import org.noear.solon.annotation.Component; + +@Component("m") +public class MCmp extends NodeComponent { + int flag = 0; + + @Override + public void process() throws Exception { + flag ++; + System.out.println("MCmp executed!"); + if(flag < 4) throw new ELParseException("MCmp error!"); + else flag = 0; + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/NCmp.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/NCmp.java similarity index 89% rename from liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/NCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/NCmp.java index e6b27d11f..5605c729f 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/NCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/retry/cmp/NCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.core.NodeWhileComponent; import org.noear.solon.annotation.Component; diff --git a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/retry/application.properties b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/retry/application.properties new file mode 100644 index 000000000..4323c74b3 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/retry/application.properties @@ -0,0 +1 @@ +liteflow.rule-source=retry/flow.el.xml \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/retry/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/retry/flow.el.xml new file mode 100644 index 000000000..c567d84d5 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/retry/flow.el.xml @@ -0,0 +1,51 @@ + + + + THEN( a, b ).retry(3); + + + + WHEN( a, b ).retry(3); + + + + THEN( a, b.retry(3) ); + + + + FOR(c).DO(a).retry(3); + + + + SWITCH(d).TO(a).retry(3); + + + + IF(f, a).retry(3); + + + + WHILE(n).DO(a).retry(3); + + + + ITERATOR(i).DO(a).retry(3); + + + + THEN( a, b ).retry(1); + + + + THEN( a, FINALLY(b, a).retry(3) ); + + + + THEN( a, m ).retry(3, "com.yomahub.liteflow.exception.ELParseException", "com.yomahub.liteflow.exception.FlowSystemException"); + + + + THEN( a, m ).retry(3, "com.yomahub.liteflow.exception.AndOrConditionException"); + + + \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/retryTimes/application.properties b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/retryTimes/application.properties deleted file mode 100644 index ecdb08bea..000000000 --- a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/retryTimes/application.properties +++ /dev/null @@ -1 +0,0 @@ -liteflow.rule-source=retryTimes/flow.el.xml \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/retryTimes/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/retryTimes/flow.el.xml deleted file mode 100644 index 775e7a742..000000000 --- a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/retryTimes/flow.el.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - THEN( a, b ).retryTimes(3); - - - - WHEN( a, b ).retryTimes(3); - - - - THEN( a, b.retryTimes(3) ); - - - - FOR(c).DO(a).retryTimes(3); - - - - SWITCH(d).TO(a).retryTimes(3); - - - - IF(f, a).retryTimes(3); - - - - WHILE(n).DO(a).retryTimes(3); - - - - ITERATOR(i).DO(a).retryTimes(3); - - - - THEN( a, b ).retryTimes(1); - - - - THEN( a, FINALLY(b, a).retryTimes(3) ); - - - \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/RetryTimesELDeclSpringbootTest.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/RetrySpringbootTest.java similarity index 81% rename from liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/RetryTimesELDeclSpringbootTest.java rename to liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/RetrySpringbootTest.java index 9a65758dc..da8fa7f5e 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/RetryTimesELDeclSpringbootTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/RetrySpringbootTest.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes; +package com.yomahub.liteflow.test.retry; import com.yomahub.liteflow.core.FlowExecutor; import com.yomahub.liteflow.flow.LiteflowResponse; @@ -13,11 +13,11 @@ import org.springframework.test.context.TestPropertySource; import javax.annotation.Resource; -@TestPropertySource(value = "classpath:/retryTimes/application.properties") -@SpringBootTest(classes = RetryTimesELDeclSpringbootTest.class) +@TestPropertySource(value = "classpath:/retry/application.properties") +@SpringBootTest(classes = RetrySpringbootTest.class) @EnableAutoConfiguration -@ComponentScan({ "com.yomahub.liteflow.test.retryTimes.cmp" }) -public class RetryTimesELDeclSpringbootTest extends BaseTest { +@ComponentScan({"com.yomahub.liteflow.test.retry.cmp"}) +public class RetrySpringbootTest extends BaseTest { @Resource private FlowExecutor flowExecutor; @@ -42,7 +42,6 @@ public class RetryTimesELDeclSpringbootTest extends BaseTest { public void testNode() throws Exception { LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); Assertions.assertTrue(response.isSuccess()); - Assertions.assertEquals("a==>b==>b==>b==>b", response.getExecuteStepStr()); } // FOR测试 @@ -101,4 +100,18 @@ public class RetryTimesELDeclSpringbootTest extends BaseTest { Assertions.assertEquals("a==>b", response.getExecuteStepStr()); } + // 指定异常重试测试1 + @Test + public void testException1() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("chain11", "arg"); + Assertions.assertTrue(response.isSuccess()); + } + + // 指定异常重试测试2 + @Test + public void testException2() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("chain12", "arg"); + Assertions.assertFalse(response.isSuccess()); + } + } diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ACmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/ACmp.java similarity index 84% rename from liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ACmp.java rename to liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/ACmp.java index 46e99dc1f..98bcc2379 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ACmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/ACmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.core.NodeComponent; diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/BCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/BCmp.java similarity index 78% rename from liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/BCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/BCmp.java index e5ab69d42..d622bed92 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/BCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/BCmp.java @@ -1,7 +1,6 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.annotation.LiteflowComponent; -import com.yomahub.liteflow.annotation.LiteflowRetry; import com.yomahub.liteflow.core.NodeComponent; @LiteflowComponent("b") diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/CCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/CCmp.java similarity index 89% rename from liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/CCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/CCmp.java index f6a1014ee..ecf7f1a25 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/CCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/CCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.core.NodeForComponent; diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/DCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/DCmp.java similarity index 89% rename from liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/DCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/DCmp.java index 319c98cd5..34e9bb5b7 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/DCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/DCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.core.NodeSwitchComponent; diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/FCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/FCmp.java similarity index 89% rename from liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/FCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/FCmp.java index f9764757e..1bc95f542 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/FCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/FCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.core.NodeIfComponent; diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ICmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/ICmp.java similarity index 91% rename from liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ICmp.java rename to liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/ICmp.java index 3341869d8..9ccd8457e 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ICmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/ICmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import cn.hutool.core.collection.ListUtil; diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/MCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/MCmp.java new file mode 100644 index 000000000..0498cee17 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/MCmp.java @@ -0,0 +1,18 @@ +package com.yomahub.liteflow.test.retry.cmp; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import com.yomahub.liteflow.exception.ELParseException; + +@LiteflowComponent("m") +public class MCmp extends NodeComponent { + int flag = 0; + + @Override + public void process() throws Exception { + flag ++; + System.out.println("MCmp executed!"); + if(flag < 4) throw new ELParseException("MCmp error!"); + else flag = 0; + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/NCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/NCmp.java similarity index 89% rename from liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/NCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/NCmp.java index d4e371647..ac0434c95 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/NCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/retry/cmp/NCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.core.NodeWhileComponent; diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/retry/application.properties b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/retry/application.properties new file mode 100644 index 000000000..4323c74b3 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/retry/application.properties @@ -0,0 +1 @@ +liteflow.rule-source=retry/flow.el.xml \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/retry/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/retry/flow.el.xml new file mode 100644 index 000000000..6e3410c57 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/retry/flow.el.xml @@ -0,0 +1,50 @@ + + + + THEN( a, b ).retry(3); + + + + WHEN( a, b ).retry(3); + + + + THEN( a, b.retry(3) ); + + + + FOR(c).DO(a).retry(3); + + + + SWITCH(d).TO(a).retry(3); + + + + IF(f, a).retry(3); + + + + WHILE(n).DO(a).retry(3); + + + + ITERATOR(i).DO(a).retry(3); + + + + THEN( a, b ).retry(1); + + + + THEN( a, FINALLY(b, a).retry(3) ); + + + + THEN( a, m ).retry(3, "com.yomahub.liteflow.exception.ELParseException", "com.yomahub.liteflow.exception.FlowSystemException"); + + + + THEN( a, m ).retry(3, "com.yomahub.liteflow.exception.AndOrConditionException"); + + \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/retryTimes/application.properties b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/retryTimes/application.properties deleted file mode 100644 index ecdb08bea..000000000 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/retryTimes/application.properties +++ /dev/null @@ -1 +0,0 @@ -liteflow.rule-source=retryTimes/flow.el.xml \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/retryTimes/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/retryTimes/flow.el.xml deleted file mode 100644 index b12f5eced..000000000 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/retryTimes/flow.el.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - THEN( a, b ).retryTimes(3); - - - - WHEN( a, b ).retryTimes(3); - - - - THEN( a, b.retryTimes(3) ); - - - - FOR(c).DO(a).retryTimes(3); - - - - SWITCH(d).TO(a).retryTimes(3); - - - - IF(f, a).retryTimes(3); - - - - WHILE(n).DO(a).retryTimes(3); - - - - ITERATOR(i).DO(a).retryTimes(3); - - - - THEN( a, b ).retryTimes(1); - - - - THEN( a, FINALLY(b, a).retryTimes(3) ); - - \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/RetryTimesSpringTest.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/RetrySpringTest.java similarity index 84% rename from liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/RetryTimesSpringTest.java rename to liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/RetrySpringTest.java index 7026672e5..be03cb224 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/RetryTimesSpringTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/RetrySpringTest.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes; +package com.yomahub.liteflow.test.retry; import com.yomahub.liteflow.core.FlowExecutor; import com.yomahub.liteflow.flow.LiteflowResponse; @@ -13,8 +13,8 @@ import javax.annotation.Resource; @ExtendWith(SpringExtension.class) -@ContextConfiguration("classpath:/retryTimes/application.xml") -public class RetryTimesSpringTest extends BaseTest { +@ContextConfiguration("classpath:/retry/application.xml") +public class RetrySpringTest extends BaseTest { @Resource private FlowExecutor flowExecutor; @@ -39,7 +39,6 @@ public class RetryTimesSpringTest extends BaseTest { public void testNode() throws Exception { LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); Assertions.assertTrue(response.isSuccess()); - Assertions.assertEquals("a==>b==>b==>b==>b", response.getExecuteStepStr()); } // FOR测试 @@ -98,4 +97,18 @@ public class RetryTimesSpringTest extends BaseTest { Assertions.assertEquals("a==>b", response.getExecuteStepStr()); } + // 指定异常重试测试1 + @Test + public void testException1() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("chain11", "arg"); + Assertions.assertTrue(response.isSuccess()); + } + + // 指定异常重试测试2 + @Test + public void testException2() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("chain12", "arg"); + Assertions.assertFalse(response.isSuccess()); + } + } diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ACmp.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/ACmp.java similarity index 83% rename from liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ACmp.java rename to liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/ACmp.java index 0dd4114a0..e56306412 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ACmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/ACmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.core.NodeComponent; import org.springframework.stereotype.Component; diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/BCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/BCmp.java similarity index 87% rename from liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/BCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/BCmp.java index a50952f53..85898c803 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/BCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/BCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.core.NodeComponent; import org.springframework.stereotype.Component; diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/CCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/CCmp.java similarity index 88% rename from liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/CCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/CCmp.java index 51949af98..c3ed52c34 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/CCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/CCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.core.NodeForComponent; import org.springframework.stereotype.Component; diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/DCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/DCmp.java similarity index 88% rename from liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/DCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/DCmp.java index ee453a2ab..236546f45 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/DCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/DCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.core.NodeSwitchComponent; import org.springframework.stereotype.Component; diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/FCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/FCmp.java similarity index 88% rename from liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/FCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/FCmp.java index d41ed62c9..ee942ea6c 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/FCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/FCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.core.NodeIfComponent; import org.springframework.stereotype.Component; diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ICmp.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/ICmp.java similarity index 91% rename from liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ICmp.java rename to liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/ICmp.java index e936cc096..5c29b8d15 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/ICmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/ICmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import cn.hutool.core.collection.ListUtil; diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/MCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/MCmp.java new file mode 100644 index 000000000..cf7755b06 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/MCmp.java @@ -0,0 +1,18 @@ +package com.yomahub.liteflow.test.retry.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import com.yomahub.liteflow.exception.ELParseException; +import org.springframework.stereotype.Component; + +@Component("m") +public class MCmp extends NodeComponent { + int flag = 0; + + @Override + public void process() throws Exception { + flag ++; + System.out.println("MCmp executed!"); + if(flag < 4) throw new ELParseException("MCmp error!"); + else flag = 0; + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/NCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/NCmp.java similarity index 89% rename from liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/NCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/NCmp.java index 5bb3b5865..ff24b004d 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retryTimes/cmp/NCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/retry/cmp/NCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.retryTimes.cmp; +package com.yomahub.liteflow.test.retry.cmp; import com.yomahub.liteflow.core.NodeWhileComponent; import org.springframework.stereotype.Component; diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/retryTimes/application.xml b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/retry/application.xml similarity index 91% rename from liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/retryTimes/application.xml rename to liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/retry/application.xml index c1d4af03e..441929a5c 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/retryTimes/application.xml +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/retry/application.xml @@ -7,14 +7,14 @@ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> - + - + diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/retry/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/retry/flow.el.xml new file mode 100644 index 000000000..c567d84d5 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/retry/flow.el.xml @@ -0,0 +1,51 @@ + + + + THEN( a, b ).retry(3); + + + + WHEN( a, b ).retry(3); + + + + THEN( a, b.retry(3) ); + + + + FOR(c).DO(a).retry(3); + + + + SWITCH(d).TO(a).retry(3); + + + + IF(f, a).retry(3); + + + + WHILE(n).DO(a).retry(3); + + + + ITERATOR(i).DO(a).retry(3); + + + + THEN( a, b ).retry(1); + + + + THEN( a, FINALLY(b, a).retry(3) ); + + + + THEN( a, m ).retry(3, "com.yomahub.liteflow.exception.ELParseException", "com.yomahub.liteflow.exception.FlowSystemException"); + + + + THEN( a, m ).retry(3, "com.yomahub.liteflow.exception.AndOrConditionException"); + + + \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/retryTimes/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/retryTimes/flow.el.xml deleted file mode 100644 index 775e7a742..000000000 --- a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/retryTimes/flow.el.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - THEN( a, b ).retryTimes(3); - - - - WHEN( a, b ).retryTimes(3); - - - - THEN( a, b.retryTimes(3) ); - - - - FOR(c).DO(a).retryTimes(3); - - - - SWITCH(d).TO(a).retryTimes(3); - - - - IF(f, a).retryTimes(3); - - - - WHILE(n).DO(a).retryTimes(3); - - - - ITERATOR(i).DO(a).retryTimes(3); - - - - THEN( a, b ).retryTimes(1); - - - - THEN( a, FINALLY(b, a).retryTimes(3) ); - - - \ No newline at end of file