diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/builder/LiteFlowChainBuilder.java b/liteflow-core/src/main/java/com/yomahub/liteflow/builder/LiteFlowChainBuilder.java index 81d4d2cf7..18fc46f28 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/builder/LiteFlowChainBuilder.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/builder/LiteFlowChainBuilder.java @@ -102,7 +102,7 @@ public class LiteFlowChainBuilder { } else if (condition.getConditionType().equals(ConditionTypeEnum.TYPE_THEN)) { if (this.conditionList.size() >= 1 && CollectionUtil.getLast(this.conditionList) instanceof ThenCondition) { - CollectionUtil.getLast(this.conditionList).getNodeList().addAll(condition.getNodeList()); + CollectionUtil.getLast(this.conditionList).getExecutableList().addAll(condition.getExecutableList()); } else { this.conditionList.add(condition); } @@ -110,7 +110,7 @@ public class LiteFlowChainBuilder { if (this.conditionList.size() >= 1 && CollectionUtil.getLast(this.conditionList) instanceof WhenCondition && CollectionUtil.getLast(this.conditionList).getGroup().equals(condition.getGroup())) { - CollectionUtil.getLast(this.conditionList).getNodeList().addAll(condition.getNodeList()); + CollectionUtil.getLast(this.conditionList).getExecutableList().addAll(condition.getExecutableList()); } else { this.conditionList.add(condition); } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/builder/LiteFlowConditionBuilder.java b/liteflow-core/src/main/java/com/yomahub/liteflow/builder/LiteFlowConditionBuilder.java index ae92a68f6..59aab9eee 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/builder/LiteFlowConditionBuilder.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/builder/LiteFlowConditionBuilder.java @@ -109,16 +109,16 @@ public class LiteFlowConditionBuilder { if (FlowBus.containNode(executableEntity.getId())) { Node node = FlowBus.copyNode(executableEntity.getId()); node.setTag(executableEntity.getTag()); - this.condition.getNodeList().add(node); + this.condition.getExecutableList().add(node); // 构建条件节点-通过是否包含条件节点列表-解析条件节点会含有realItem,也就是括号里的node buildCondNode(node, executableEntity.getNodeCondComponents()); } else if (hasChain(executableEntity.getId())) { Chain chain = FlowBus.getChain(executableEntity.getId()); - this.condition.getNodeList().add(chain); + this.condition.getExecutableList().add(chain); } else { //元数据没有的话,从spring上下文再取一遍 //这部分有2个目的 - //一是为了防止标有@Lazy懒加载的组件,二是spring负责扫描,而用代码的形式加载chain这种情况。 + //一是为了防止标有@Lazy懒加载的组件,二是spring负责扫描,而用动态代码的形式加载组件这种情况。 NodeComponent nodeComponent = ContextAwareHolder.loadContextAware().getBean(executableEntity.getId()); if (ObjectUtil.isNotNull(nodeComponent)){ FlowBus.addSpringScanNode(executableEntity.getId(), nodeComponent); diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/exception/ParserCannotFindException.java b/liteflow-core/src/main/java/com/yomahub/liteflow/exception/ParserCannotFindException.java new file mode 100644 index 000000000..3e451192c --- /dev/null +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/exception/ParserCannotFindException.java @@ -0,0 +1,22 @@ +package com.yomahub.liteflow.exception; + +public class ParserCannotFindException extends RuntimeException { + + private static final long serialVersionUID = 1L; + + /** 异常信息 */ + private String message; + + public ParserCannotFindException(String message) { + this.message = message; + } + + @Override + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/Condition.java b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/Condition.java index 95fdf12ff..7f1cfd3ed 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/Condition.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/Condition.java @@ -7,10 +7,8 @@ */ package com.yomahub.liteflow.flow.element.condition; -import cn.hutool.core.collection.CollUtil; import com.yomahub.liteflow.common.LocalDefaultFlowConstant; import com.yomahub.liteflow.enums.ExecuteTypeEnum; -import com.yomahub.liteflow.exception.FlowSystemException; import com.yomahub.liteflow.flow.element.Executable; import com.yomahub.liteflow.enums.ConditionTypeEnum; @@ -18,12 +16,13 @@ import java.util.ArrayList; import java.util.List; /** - * 里面包含了when或者then + * Condition的抽象类 * @author Bryan.Zhang */ public abstract class Condition implements Executable{ - private List nodeList = new ArrayList<>(); + //可执行元素的集合 + private List executableList = new ArrayList<>(); //只在when类型下有效,以区分当when调用链调用失败时是否继续往下执行 默认false不继续执行 private boolean errorResume = false; @@ -47,12 +46,12 @@ public abstract class Condition implements Executable{ return this.getExecuteType().name(); } - public List getNodeList() { - return nodeList; + public List getExecutableList() { + return executableList; } - public void setNodeList(List nodeList) { - this.nodeList = nodeList; + public void setExecutableList(List executableList) { + this.executableList = executableList; } public boolean isErrorResume() { diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/FinallyCondition.java b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/FinallyCondition.java index 0aff46229..08f62cda7 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/FinallyCondition.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/FinallyCondition.java @@ -19,7 +19,7 @@ public class FinallyCondition extends Condition { @Override public void execute(Integer slotIndex) throws Exception { - for(Executable executableItem : this.getNodeList()){ + for(Executable executableItem : this.getExecutableList()){ executableItem.execute(slotIndex); } } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/PreCondition.java b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/PreCondition.java index 0579445b3..b672791ed 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/PreCondition.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/PreCondition.java @@ -19,7 +19,7 @@ public class PreCondition extends Condition { @Override public void execute(Integer slotIndex) throws Exception { - for(Executable executableItem : this.getNodeList()){ + for(Executable executableItem : this.getExecutableList()){ executableItem.execute(slotIndex); } } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/ThenCondition.java b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/ThenCondition.java index bf8e1b77d..dda6fdab7 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/ThenCondition.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/ThenCondition.java @@ -22,7 +22,7 @@ public class ThenCondition extends Condition { @Override public void execute(Integer slotIndex) throws Exception { - for (Executable executableItem : this.getNodeList()) { + for (Executable executableItem : this.getExecutableList()) { executableItem.execute(slotIndex); } } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/WhenCondition.java b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/WhenCondition.java index 7a9eff81a..45a7fd6b5 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/WhenCondition.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/condition/WhenCondition.java @@ -65,7 +65,7 @@ public class WhenCondition extends Condition { //1.根据condition.getNodeList()的集合进行流处理,用map进行把executable对象转换成List> //2.在转的过程中,套入CompletableFutureTimeout方法进行超时判断,如果超时则用WhenFutureObj.timeOut返回超时的对象 //3.第2个参数是主要的本体CompletableFuture,传入了ParallelSupplier和线程池对象 - List> completableFutureList = this.getNodeList().stream().filter(executable -> { + List> completableFutureList = this.getExecutableList().stream().filter(executable -> { try { return executable.isAccess(slotIndex); }catch (Exception e){ diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/parser/BaseFlowParser.java b/liteflow-core/src/main/java/com/yomahub/liteflow/parser/BaseFlowParser.java index 064c643f3..fd28019ac 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/parser/BaseFlowParser.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/parser/BaseFlowParser.java @@ -55,8 +55,7 @@ public abstract class BaseFlowParser implements FlowParser { * @param chainPropBean 构建 chain 的中间属性 * @param chainBuilder chainBuilder */ - public void buildChain(ChainPropBean chainPropBean - , LiteFlowChainBuilder chainBuilder) { + public void buildChain(ChainPropBean chainPropBean, LiteFlowChainBuilder chainBuilder) { String condValueStr = chainPropBean.getCondValueStr(); String group = chainPropBean.getGroup(); String errorResume = chainPropBean.getErrorResume(); diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/parser/LocalXmlFlowParser.java b/liteflow-core/src/main/java/com/yomahub/liteflow/parser/LocalXmlFlowParser.java index cc886e597..d6ecc28ec 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/parser/LocalXmlFlowParser.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/parser/LocalXmlFlowParser.java @@ -17,6 +17,7 @@ import java.util.List; */ public class LocalXmlFlowParser extends XmlFlowParser{ + @Override public void parseMain(List pathList) throws Exception { List contentList = PathContentParserHolder.loadContextAware().parseContent(pathList); parse(contentList); diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/parser/XmlFlowParser.java b/liteflow-core/src/main/java/com/yomahub/liteflow/parser/XmlFlowParser.java index 0ce88c8fd..eeb608225 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/parser/XmlFlowParser.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/parser/XmlFlowParser.java @@ -15,12 +15,10 @@ import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - +import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; -import java.util.concurrent.CopyOnWriteArraySet; - import static com.yomahub.liteflow.common.ChainConstant.ANY; import static com.yomahub.liteflow.common.ChainConstant.CHAIN; import static com.yomahub.liteflow.common.ChainConstant.ERROR_RESUME; @@ -46,7 +44,7 @@ public abstract class XmlFlowParser extends BaseFlowParser { private final Logger LOG = LoggerFactory.getLogger(XmlFlowParser.class); - private final Set CHAIN_NAME_SET = new CopyOnWriteArraySet<>(); + private final Set CHAIN_NAME_SET = new HashSet<>(); public void parse(String content) throws Exception { parse(ListUtil.toList(content));