From 0af4b97d9f5685211b54c9158255c90723498551 Mon Sep 17 00:00:00 2001 From: bryan31 Date: Tue, 22 Feb 2022 14:33:56 +0800 Subject: [PATCH] =?UTF-8?q?feature=20#I4UPWG=20=E6=A8=A1=E5=9D=97=E6=9E=B6?= =?UTF-8?q?=E6=9E=84=E8=B0=83=E6=95=B4=EF=BC=8C=E6=94=AF=E6=8C=81=E9=9D=9E?= =?UTF-8?q?Spring=E7=9A=84=E9=A1=B9=E7=9B=AE=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../liteflow/builder/LiteFlowConditionBuilder.java | 4 ++-- .../yomahub/liteflow/core/ComponentInitializer.java | 4 ++-- .../java/com/yomahub/liteflow/core/FlowExecutor.java | 8 ++++---- .../com/yomahub/liteflow/core/NodeComponent.java | 10 +++++----- .../liteflow/entity/executor/NodeExecutorHelper.java | 4 ++-- .../main/java/com/yomahub/liteflow/flow/FlowBus.java | 4 ++-- .../com/yomahub/liteflow/parser/JsonFlowParser.java | 4 ++-- .../yomahub/liteflow/parser/LocalJsonFlowParser.java | 4 ++-- .../yomahub/liteflow/parser/LocalXmlFlowParser.java | 4 ++-- .../yomahub/liteflow/parser/LocalYmlFlowParser.java | 4 ++-- .../com/yomahub/liteflow/parser/XmlFlowParser.java | 4 ++-- .../liteflow/property/LiteflowConfigGetter.java | 4 ++-- .../liteflow/spi/factory/SpiFactoryCleaner.java | 12 ------------ .../CmpAroundAspectHolder.java} | 4 ++-- .../ContextAwareHolder.java} | 4 ++-- .../ContextCmpInitHolder.java} | 4 ++-- .../LiteflowComponentSupportHolder.java} | 4 ++-- .../PathContentParserHolder.java} | 5 ++--- .../liteflow/spi/holder/SpiFactoryCleaner.java | 12 ++++++++++++ .../liteflow/util/LiteFlowExecutorPoolShutdown.java | 4 ++-- .../java/com/yomahub/liteflow/test/BaseTest.java | 2 +- .../java/com/yomahub/liteflow/test/BaseTest.java | 2 +- .../java/com/yomahub/liteflow/test/BaseTest.java | 2 +- .../customWhenThreadPool/CustomThreadExecutor1.java | 4 ++-- .../customWhenThreadPool/CustomThreadExecutor2.java | 4 ++-- .../customWhenThreadPool/CustomThreadExecutor3.java | 4 ++-- .../java/com/yomahub/liteflow/test/BaseTest.java | 2 +- .../customWhenThreadPool/CustomThreadExecutor1.java | 4 ++-- .../customWhenThreadPool/CustomThreadExecutor2.java | 4 ++-- .../customWhenThreadPool/CustomThreadExecutor3.java | 4 ++-- 30 files changed, 69 insertions(+), 70 deletions(-) delete mode 100644 liteflow-core/src/main/java/com/yomahub/liteflow/spi/factory/SpiFactoryCleaner.java rename liteflow-core/src/main/java/com/yomahub/liteflow/spi/{factory/CmpAroundAspectFactory.java => holder/CmpAroundAspectHolder.java} (91%) rename liteflow-core/src/main/java/com/yomahub/liteflow/spi/{factory/ContextAwareFactory.java => holder/ContextAwareHolder.java} (91%) rename liteflow-core/src/main/java/com/yomahub/liteflow/spi/{factory/ContextCmpInitFactory.java => holder/ContextCmpInitHolder.java} (91%) rename liteflow-core/src/main/java/com/yomahub/liteflow/spi/{factory/LiteflowComponentSupportFactory.java => holder/LiteflowComponentSupportHolder.java} (91%) rename liteflow-core/src/main/java/com/yomahub/liteflow/spi/{factory/PathContentParserFactory.java => holder/PathContentParserHolder.java} (85%) create mode 100644 liteflow-core/src/main/java/com/yomahub/liteflow/spi/holder/SpiFactoryCleaner.java 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 f9f4aed2f..2782a95e3 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 @@ -11,7 +11,7 @@ import com.yomahub.liteflow.exception.ExecutableItemNotFoundException; import com.yomahub.liteflow.flow.FlowBus; import com.yomahub.liteflow.parser.RegexEntity; import com.yomahub.liteflow.parser.RegexNodeEntity; -import com.yomahub.liteflow.spi.factory.ContextAwareFactory; +import com.yomahub.liteflow.spi.holder.ContextAwareHolder; import java.util.ArrayList; @@ -88,7 +88,7 @@ public class LiteFlowConditionBuilder { this.condition.getNodeList().add(chain); } else { //元数据没有的话,从spring上下文再取一遍,这部分是为了防止标有@Lazy懒加载的组件 - NodeComponent nodeComponent = ContextAwareFactory.loadContextAware().getBean(item.getId()); + NodeComponent nodeComponent = ContextAwareHolder.loadContextAware().getBean(item.getId()); if (ObjectUtil.isNotNull(nodeComponent)){ FlowBus.addSpringScanNode(item.getId(), nodeComponent); return setValue(value); diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ComponentInitializer.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ComponentInitializer.java index 581855868..5fffb6b30 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/ComponentInitializer.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/ComponentInitializer.java @@ -8,7 +8,7 @@ import com.yomahub.liteflow.entity.executor.NodeExecutor; import com.yomahub.liteflow.enums.NodeTypeEnum; import com.yomahub.liteflow.property.LiteflowConfig; import com.yomahub.liteflow.property.LiteflowConfigGetter; -import com.yomahub.liteflow.spi.factory.LiteflowComponentSupportFactory; +import com.yomahub.liteflow.spi.holder.LiteflowComponentSupportHolder; /** * 组件初始化器 @@ -35,7 +35,7 @@ public class ComponentInitializer { //@LiteflowComponent标注只在spring体系下生效,这里用了spi机制取到相应环境下的实现类 nodeComponent.setName(desc); if (nodeComponent.getType().equals(NodeTypeEnum.COMMON) && StrUtil.isBlank(nodeComponent.getName())){ - String name = LiteflowComponentSupportFactory.loadLiteflowComponentSupport().getCmpName(nodeComponent); + String name = LiteflowComponentSupportHolder.loadLiteflowComponentSupport().getCmpName(nodeComponent); nodeComponent.setName(name); } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/FlowExecutor.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/FlowExecutor.java index 41192c7d4..538620a3c 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/FlowExecutor.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/FlowExecutor.java @@ -18,7 +18,7 @@ import com.yomahub.liteflow.enums.FlowParserTypeEnum; import com.yomahub.liteflow.exception.*; import com.yomahub.liteflow.parser.*; import com.yomahub.liteflow.property.LiteflowConfig; -import com.yomahub.liteflow.spi.factory.ContextAwareFactory; +import com.yomahub.liteflow.spi.holder.ContextAwareHolder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -175,11 +175,11 @@ public class FlowExecutor { Class c = Class.forName(path); switch (pattern) { case TYPE_XML: - return (XmlFlowParser) ContextAwareFactory.loadContextAware().registerBean(c); + return (XmlFlowParser) ContextAwareHolder.loadContextAware().registerBean(c); case TYPE_JSON: - return (JsonFlowParser) ContextAwareFactory.loadContextAware().registerBean(c); + return (JsonFlowParser) ContextAwareHolder.loadContextAware().registerBean(c); case TYPE_YML: - return (YmlFlowParser) ContextAwareFactory.loadContextAware().registerBean(c); + return (YmlFlowParser) ContextAwareHolder.loadContextAware().registerBean(c); default: } } else if (isZKConfig(path)) { diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java index b1b4dae59..0a18b494a 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java @@ -14,8 +14,8 @@ import com.alibaba.ttl.TransmittableThreadLocal; import com.yomahub.liteflow.entity.executor.NodeExecutor; import com.yomahub.liteflow.entity.executor.DefaultNodeExecutor; import com.yomahub.liteflow.enums.NodeTypeEnum; -import com.yomahub.liteflow.spi.factory.CmpAroundAspectFactory; -import com.yomahub.liteflow.spi.factory.ContextAwareFactory; +import com.yomahub.liteflow.spi.holder.CmpAroundAspectHolder; +import com.yomahub.liteflow.spi.holder.ContextAwareHolder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -69,7 +69,7 @@ public abstract class NodeComponent{ private final TransmittableThreadLocal isEndTL = new TransmittableThreadLocal<>(); public NodeComponent() { - monitorBus = ContextAwareFactory.loadContextAware().getBean(MonitorBus.class); + monitorBus = ContextAwareHolder.loadContextAware().getBean(MonitorBus.class); } public void execute() throws Exception{ @@ -82,9 +82,9 @@ public abstract class NodeComponent{ //全局切面只在spring体系下生效,这里用了spi机制取到相应环境下的实现类 //非spring环境下,全局切面为空实现 - CmpAroundAspectFactory.loadCmpAroundAspect().beforeProcess(this.getNodeId(), slot); + CmpAroundAspectHolder.loadCmpAroundAspect().beforeProcess(this.getNodeId(), slot); self.process(); - CmpAroundAspectFactory.loadCmpAroundAspect().afterProcess(this.getNodeId(), slot); + CmpAroundAspectHolder.loadCmpAroundAspect().afterProcess(this.getNodeId(), slot); stopWatch.stop(); diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/entity/executor/NodeExecutorHelper.java b/liteflow-core/src/main/java/com/yomahub/liteflow/entity/executor/NodeExecutorHelper.java index 2ce9552fb..84d0b630c 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/entity/executor/NodeExecutorHelper.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/entity/executor/NodeExecutorHelper.java @@ -2,7 +2,7 @@ package com.yomahub.liteflow.entity.executor; import cn.hutool.core.util.ObjectUtil; import com.google.common.collect.Maps; -import com.yomahub.liteflow.spi.factory.ContextAwareFactory; +import com.yomahub.liteflow.spi.holder.ContextAwareHolder; import java.util.Map; @@ -41,7 +41,7 @@ public class NodeExecutorHelper { // 此处无需使用同步锁进行同步-因为即使同时创建了两个实例,但是添加到缓存中的只会存在一个且不会存在并发问题-具体是由ConcurrentMap保证 if (ObjectUtil.isNull(nodeExecutor)) { // 获取重试执行器实例 - nodeExecutor = ContextAwareFactory.loadContextAware().registerBean(nodeExecutorClass); + nodeExecutor = ContextAwareHolder.loadContextAware().registerBean(nodeExecutorClass); // 缓存 nodeExecutorMap.put(nodeExecutorClass, nodeExecutor); } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/FlowBus.java b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/FlowBus.java index 1c3f18d39..cdc2c5b97 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/FlowBus.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/FlowBus.java @@ -28,7 +28,7 @@ import com.yomahub.liteflow.parser.LocalYmlFlowParser; import com.yomahub.liteflow.script.ScriptExecutor; import com.yomahub.liteflow.script.ScriptExecutorFactory; import com.yomahub.liteflow.script.exception.ScriptSpiException; -import com.yomahub.liteflow.spi.factory.ContextAwareFactory; +import com.yomahub.liteflow.spi.holder.ContextAwareHolder; import com.yomahub.liteflow.util.CopyOnWriteHashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -106,7 +106,7 @@ public class FlowBus { //如果是script类型的节点,因为class只有一个,所以也不能注册进spring上下文,注册的时候需要new Instance NodeComponent cmpInstance = null; if (!CollectionUtil.newArrayList(NodeTypeEnum.SCRIPT, NodeTypeEnum.COND_SCRIPT).contains(type)){ - cmpInstance = ContextAwareFactory.loadContextAware().registerOrGet(nodeId, cmpClazz); + cmpInstance = ContextAwareHolder.loadContextAware().registerOrGet(nodeId, cmpClazz); } if (ObjectUtil.isNull(cmpInstance)) { diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/parser/JsonFlowParser.java b/liteflow-core/src/main/java/com/yomahub/liteflow/parser/JsonFlowParser.java index 03be3d6b9..8a95c1c79 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/parser/JsonFlowParser.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/parser/JsonFlowParser.java @@ -16,7 +16,7 @@ import com.yomahub.liteflow.exception.EmptyConditionValueException; import com.yomahub.liteflow.exception.NodeTypeNotSupportException; import com.yomahub.liteflow.exception.NotSupportConditionException; import com.yomahub.liteflow.flow.FlowBus; -import com.yomahub.liteflow.spi.factory.ContextCmpInitFactory; +import com.yomahub.liteflow.spi.holder.ContextCmpInitHolder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.*; @@ -56,7 +56,7 @@ public abstract class JsonFlowParser implements FlowParser { //在相应的环境下进行节点的初始化工作 //在spring体系下会获得spring扫描后的节点,接入元数据 //在非spring体系下是一个空实现,等于不做此步骤 - ContextCmpInitFactory.loadContextCmpInit().initCmp(); + ContextCmpInitHolder.loadContextCmpInit().initCmp(); //先在元数据里放上chain //先放有一个好处,可以在parse的时候先映射到FlowBus的chainMap,然后再去解析 diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/parser/LocalJsonFlowParser.java b/liteflow-core/src/main/java/com/yomahub/liteflow/parser/LocalJsonFlowParser.java index 6a313eebd..100e530fd 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/parser/LocalJsonFlowParser.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/parser/LocalJsonFlowParser.java @@ -1,6 +1,6 @@ package com.yomahub.liteflow.parser; -import com.yomahub.liteflow.spi.factory.PathContentParserFactory; +import com.yomahub.liteflow.spi.holder.PathContentParserHolder; import java.util.List; @@ -12,7 +12,7 @@ public class LocalJsonFlowParser extends JsonFlowParser{ @Override public void parseMain(List pathList) throws Exception { - List contentList = PathContentParserFactory.loadContextAware().parseContent(pathList); + List contentList = PathContentParserHolder.loadContextAware().parseContent(pathList); parse(contentList); } } 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 f55a31ef7..cc886e597 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 @@ -7,7 +7,7 @@ */ package com.yomahub.liteflow.parser; -import com.yomahub.liteflow.spi.factory.PathContentParserFactory; +import com.yomahub.liteflow.spi.holder.PathContentParserHolder; import java.util.List; @@ -18,7 +18,7 @@ import java.util.List; public class LocalXmlFlowParser extends XmlFlowParser{ public void parseMain(List pathList) throws Exception { - List contentList = PathContentParserFactory.loadContextAware().parseContent(pathList); + List contentList = PathContentParserHolder.loadContextAware().parseContent(pathList); parse(contentList); } } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/parser/LocalYmlFlowParser.java b/liteflow-core/src/main/java/com/yomahub/liteflow/parser/LocalYmlFlowParser.java index ff0be7942..dc62c7e06 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/parser/LocalYmlFlowParser.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/parser/LocalYmlFlowParser.java @@ -1,6 +1,6 @@ package com.yomahub.liteflow.parser; -import com.yomahub.liteflow.spi.factory.PathContentParserFactory; +import com.yomahub.liteflow.spi.holder.PathContentParserHolder; import java.util.List; @@ -14,7 +14,7 @@ public class LocalYmlFlowParser extends YmlFlowParser { @Override public void parseMain(List pathList) throws Exception { - List contentList = PathContentParserFactory.loadContextAware().parseContent(pathList); + 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 a7a330bfc..0388374fd 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 @@ -11,7 +11,7 @@ import com.yomahub.liteflow.enums.ConditionTypeEnum; import com.yomahub.liteflow.enums.NodeTypeEnum; import com.yomahub.liteflow.exception.*; import com.yomahub.liteflow.flow.FlowBus; -import com.yomahub.liteflow.spi.factory.ContextCmpInitFactory; +import com.yomahub.liteflow.spi.holder.ContextCmpInitHolder; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; @@ -49,7 +49,7 @@ public abstract class XmlFlowParser implements FlowParser { //在相应的环境下进行节点的初始化工作 //在spring体系下会获得spring扫描后的节点,接入元数据 //在非spring体系下是一个空实现,等于不做此步骤 - ContextCmpInitFactory.loadContextCmpInit().initCmp(); + ContextCmpInitHolder.loadContextCmpInit().initCmp(); //先在元数据里放上chain //先放有一个好处,可以在parse的时候先映射到FlowBus的chainMap,然后再去解析 diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/property/LiteflowConfigGetter.java b/liteflow-core/src/main/java/com/yomahub/liteflow/property/LiteflowConfigGetter.java index 6ef347d55..ef2ab3748 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/property/LiteflowConfigGetter.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/property/LiteflowConfigGetter.java @@ -1,7 +1,7 @@ package com.yomahub.liteflow.property; import cn.hutool.core.util.ObjectUtil; -import com.yomahub.liteflow.spi.factory.ContextAwareFactory; +import com.yomahub.liteflow.spi.holder.ContextAwareHolder; /** * liteflow的配置获取器 @@ -12,7 +12,7 @@ public class LiteflowConfigGetter { public static LiteflowConfig get(){ if (ObjectUtil.isNull(liteflowConfig)){ - liteflowConfig = ContextAwareFactory.loadContextAware().getBean(LiteflowConfig.class); + liteflowConfig = ContextAwareHolder.loadContextAware().getBean(LiteflowConfig.class); //这里liteflowConfig不可能为null //如果在springboot环境,由于自动装配,所以不可能为null //在spring环境,如果xml没配置,在FlowExecutor的init时候就已经报错了 diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/spi/factory/SpiFactoryCleaner.java b/liteflow-core/src/main/java/com/yomahub/liteflow/spi/factory/SpiFactoryCleaner.java deleted file mode 100644 index a8510df3c..000000000 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/spi/factory/SpiFactoryCleaner.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.yomahub.liteflow.spi.factory; - -public class SpiFactoryCleaner { - - public static void clean(){ - CmpAroundAspectFactory.clean(); - ContextAwareFactory.clean(); - ContextCmpInitFactory.clean(); - LiteflowComponentSupportFactory.clean(); - PathContentParserFactory.clean(); - } -} diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/spi/factory/CmpAroundAspectFactory.java b/liteflow-core/src/main/java/com/yomahub/liteflow/spi/holder/CmpAroundAspectHolder.java similarity index 91% rename from liteflow-core/src/main/java/com/yomahub/liteflow/spi/factory/CmpAroundAspectFactory.java rename to liteflow-core/src/main/java/com/yomahub/liteflow/spi/holder/CmpAroundAspectHolder.java index 6f4bbd284..47cb549cc 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/spi/factory/CmpAroundAspectFactory.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/spi/holder/CmpAroundAspectHolder.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.spi.factory; +package com.yomahub.liteflow.spi.holder; import cn.hutool.core.util.ObjectUtil; import com.yomahub.liteflow.spi.CmpAroundAspect; @@ -13,7 +13,7 @@ import java.util.ServiceLoader; * @author Bryan.Zhang * @since 2.6.11 */ -public class CmpAroundAspectFactory { +public class CmpAroundAspectHolder { private static CmpAroundAspect cmpAroundAspect; diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/spi/factory/ContextAwareFactory.java b/liteflow-core/src/main/java/com/yomahub/liteflow/spi/holder/ContextAwareHolder.java similarity index 91% rename from liteflow-core/src/main/java/com/yomahub/liteflow/spi/factory/ContextAwareFactory.java rename to liteflow-core/src/main/java/com/yomahub/liteflow/spi/holder/ContextAwareHolder.java index d2e332d5e..85258ebc2 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/spi/factory/ContextAwareFactory.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/spi/holder/ContextAwareHolder.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.spi.factory; +package com.yomahub.liteflow.spi.holder; import cn.hutool.core.util.ObjectUtil; import com.yomahub.liteflow.spi.ContextAware; @@ -14,7 +14,7 @@ import java.util.ServiceLoader; * @author Bryan.Zhang * @since 2.6.11 */ -public class ContextAwareFactory { +public class ContextAwareHolder { private static ContextAware contextAware; diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/spi/factory/ContextCmpInitFactory.java b/liteflow-core/src/main/java/com/yomahub/liteflow/spi/holder/ContextCmpInitHolder.java similarity index 91% rename from liteflow-core/src/main/java/com/yomahub/liteflow/spi/factory/ContextCmpInitFactory.java rename to liteflow-core/src/main/java/com/yomahub/liteflow/spi/holder/ContextCmpInitHolder.java index 0779ba30f..ec10eab1d 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/spi/factory/ContextCmpInitFactory.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/spi/holder/ContextCmpInitHolder.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.spi.factory; +package com.yomahub.liteflow.spi.holder; import cn.hutool.core.util.ObjectUtil; import com.yomahub.liteflow.spi.ContextCmpInit; @@ -13,7 +13,7 @@ import java.util.ServiceLoader; * @author Bryan.Zhang * @since 2.6.11 */ -public class ContextCmpInitFactory { +public class ContextCmpInitHolder { private static ContextCmpInit contextCmpInit; diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/spi/factory/LiteflowComponentSupportFactory.java b/liteflow-core/src/main/java/com/yomahub/liteflow/spi/holder/LiteflowComponentSupportHolder.java similarity index 91% rename from liteflow-core/src/main/java/com/yomahub/liteflow/spi/factory/LiteflowComponentSupportFactory.java rename to liteflow-core/src/main/java/com/yomahub/liteflow/spi/holder/LiteflowComponentSupportHolder.java index 159ca7bda..7bcd4b735 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/spi/factory/LiteflowComponentSupportFactory.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/spi/holder/LiteflowComponentSupportHolder.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.spi.factory; +package com.yomahub.liteflow.spi.holder; import cn.hutool.core.util.ObjectUtil; import com.yomahub.liteflow.spi.LiteflowComponentSupport; @@ -12,7 +12,7 @@ import java.util.ServiceLoader; * @author Bryan.Zhang * @since 2.6.11 */ -public class LiteflowComponentSupportFactory { +public class LiteflowComponentSupportHolder { private static LiteflowComponentSupport liteflowComponentSupport; diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/spi/factory/PathContentParserFactory.java b/liteflow-core/src/main/java/com/yomahub/liteflow/spi/holder/PathContentParserHolder.java similarity index 85% rename from liteflow-core/src/main/java/com/yomahub/liteflow/spi/factory/PathContentParserFactory.java rename to liteflow-core/src/main/java/com/yomahub/liteflow/spi/holder/PathContentParserHolder.java index 707dbea5c..1b89d2dc1 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/spi/factory/PathContentParserFactory.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/spi/holder/PathContentParserHolder.java @@ -1,7 +1,6 @@ -package com.yomahub.liteflow.spi.factory; +package com.yomahub.liteflow.spi.holder; import cn.hutool.core.util.ObjectUtil; -import com.yomahub.liteflow.spi.ContextAware; import com.yomahub.liteflow.spi.PathContentParser; import java.util.ArrayList; @@ -9,7 +8,7 @@ import java.util.Comparator; import java.util.List; import java.util.ServiceLoader; -public class PathContentParserFactory { +public class PathContentParserHolder { private static PathContentParser pathContentParser; diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/spi/holder/SpiFactoryCleaner.java b/liteflow-core/src/main/java/com/yomahub/liteflow/spi/holder/SpiFactoryCleaner.java new file mode 100644 index 000000000..2ab921a3f --- /dev/null +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/spi/holder/SpiFactoryCleaner.java @@ -0,0 +1,12 @@ +package com.yomahub.liteflow.spi.holder; + +public class SpiFactoryCleaner { + + public static void clean(){ + CmpAroundAspectHolder.clean(); + ContextAwareHolder.clean(); + ContextCmpInitHolder.clean(); + LiteflowComponentSupportHolder.clean(); + PathContentParserHolder.clean(); + } +} diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/util/LiteFlowExecutorPoolShutdown.java b/liteflow-core/src/main/java/com/yomahub/liteflow/util/LiteFlowExecutorPoolShutdown.java index ddc3f6887..6174bfb80 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/util/LiteFlowExecutorPoolShutdown.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/util/LiteFlowExecutorPoolShutdown.java @@ -1,6 +1,6 @@ package com.yomahub.liteflow.util; -import com.yomahub.liteflow.spi.factory.ContextAwareFactory; +import com.yomahub.liteflow.spi.holder.ContextAwareHolder; import com.yomahub.liteflow.thread.ExecutorHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -19,7 +19,7 @@ public class LiteFlowExecutorPoolShutdown { @PreDestroy public void destroy() throws Exception { - ExecutorService executorService = ContextAwareFactory.loadContextAware().getBean("whenExecutors"); + ExecutorService executorService = ContextAwareHolder.loadContextAware().getBean("whenExecutors"); LOG.info("Start closing the liteflow-when-calls..."); ExecutorHelper.loadInstance().shutdownAwaitTermination(executorService); diff --git a/liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/BaseTest.java b/liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/BaseTest.java index 51a5a47c7..64886670f 100644 --- a/liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/BaseTest.java +++ b/liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/BaseTest.java @@ -2,7 +2,7 @@ package com.yomahub.liteflow.test; import com.yomahub.liteflow.flow.FlowBus; import com.yomahub.liteflow.property.LiteflowConfigGetter; -import com.yomahub.liteflow.spi.factory.SpiFactoryCleaner; +import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner; import com.yomahub.liteflow.spring.ComponentScanner; import com.yomahub.liteflow.thread.ExecutorHelper; import org.junit.AfterClass; diff --git a/liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/BaseTest.java b/liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/BaseTest.java index 51a5a47c7..64886670f 100644 --- a/liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/BaseTest.java +++ b/liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/BaseTest.java @@ -2,7 +2,7 @@ package com.yomahub.liteflow.test; import com.yomahub.liteflow.flow.FlowBus; import com.yomahub.liteflow.property.LiteflowConfigGetter; -import com.yomahub.liteflow.spi.factory.SpiFactoryCleaner; +import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner; import com.yomahub.liteflow.spring.ComponentScanner; import com.yomahub.liteflow.thread.ExecutorHelper; import org.junit.AfterClass; diff --git a/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java b/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java index 51a5a47c7..64886670f 100644 --- a/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java +++ b/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/BaseTest.java @@ -2,7 +2,7 @@ package com.yomahub.liteflow.test; import com.yomahub.liteflow.flow.FlowBus; import com.yomahub.liteflow.property.LiteflowConfigGetter; -import com.yomahub.liteflow.spi.factory.SpiFactoryCleaner; +import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner; import com.yomahub.liteflow.spring.ComponentScanner; import com.yomahub.liteflow.thread.ExecutorHelper; import org.junit.AfterClass; diff --git a/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor1.java b/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor1.java index 1ced39ce6..cc6b624c8 100644 --- a/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor1.java +++ b/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor1.java @@ -2,7 +2,7 @@ package com.yomahub.liteflow.test.customWhenThreadPool; import cn.hutool.core.util.ObjectUtil; import com.yomahub.liteflow.property.LiteflowConfig; -import com.yomahub.liteflow.spi.factory.ContextAwareFactory; +import com.yomahub.liteflow.spi.holder.ContextAwareHolder; import com.yomahub.liteflow.thread.ExecutorBuilder; import java.util.concurrent.*; @@ -11,7 +11,7 @@ public class CustomThreadExecutor1 implements ExecutorBuilder { @Override public ExecutorService buildExecutor() { - LiteflowConfig liteflowConfig = ContextAwareFactory.loadContextAware().getBean(LiteflowConfig.class); + LiteflowConfig liteflowConfig = ContextAwareHolder.loadContextAware().getBean(LiteflowConfig.class); //只有在非spring的场景下liteflowConfig才会为null if (ObjectUtil.isNull(liteflowConfig)) { liteflowConfig = new LiteflowConfig(); diff --git a/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor2.java b/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor2.java index f1c07fbe8..bb9184d18 100644 --- a/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor2.java +++ b/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor2.java @@ -2,7 +2,7 @@ package com.yomahub.liteflow.test.customWhenThreadPool; import cn.hutool.core.util.ObjectUtil; import com.yomahub.liteflow.property.LiteflowConfig; -import com.yomahub.liteflow.spi.factory.ContextAwareFactory; +import com.yomahub.liteflow.spi.holder.ContextAwareHolder; import com.yomahub.liteflow.thread.ExecutorBuilder; import java.util.concurrent.*; @@ -10,7 +10,7 @@ import java.util.concurrent.*; public class CustomThreadExecutor2 implements ExecutorBuilder { @Override public ExecutorService buildExecutor() { - LiteflowConfig liteflowConfig = ContextAwareFactory.loadContextAware().getBean(LiteflowConfig.class); + LiteflowConfig liteflowConfig = ContextAwareHolder.loadContextAware().getBean(LiteflowConfig.class); //只有在非spring的场景下liteflowConfig才会为null if (ObjectUtil.isNull(liteflowConfig)) { liteflowConfig = new LiteflowConfig(); diff --git a/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor3.java b/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor3.java index 55bfcf6f2..71aac9822 100644 --- a/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor3.java +++ b/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor3.java @@ -2,7 +2,7 @@ package com.yomahub.liteflow.test.customWhenThreadPool; import cn.hutool.core.util.ObjectUtil; import com.yomahub.liteflow.property.LiteflowConfig; -import com.yomahub.liteflow.spi.factory.ContextAwareFactory; +import com.yomahub.liteflow.spi.holder.ContextAwareHolder; import com.yomahub.liteflow.thread.ExecutorBuilder; import java.util.concurrent.ExecutorService; @@ -10,7 +10,7 @@ import java.util.concurrent.ExecutorService; public class CustomThreadExecutor3 implements ExecutorBuilder { @Override public ExecutorService buildExecutor() { - LiteflowConfig liteflowConfig = ContextAwareFactory.loadContextAware().getBean(LiteflowConfig.class); + LiteflowConfig liteflowConfig = ContextAwareHolder.loadContextAware().getBean(LiteflowConfig.class); //只有在非spring的场景下liteflowConfig才会为null if (ObjectUtil.isNull(liteflowConfig)) { liteflowConfig = new LiteflowConfig(); diff --git a/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/BaseTest.java b/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/BaseTest.java index 51a5a47c7..64886670f 100644 --- a/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/BaseTest.java +++ b/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/BaseTest.java @@ -2,7 +2,7 @@ package com.yomahub.liteflow.test; import com.yomahub.liteflow.flow.FlowBus; import com.yomahub.liteflow.property.LiteflowConfigGetter; -import com.yomahub.liteflow.spi.factory.SpiFactoryCleaner; +import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner; import com.yomahub.liteflow.spring.ComponentScanner; import com.yomahub.liteflow.thread.ExecutorHelper; import org.junit.AfterClass; diff --git a/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor1.java b/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor1.java index 4195ade94..eef8b3d36 100644 --- a/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor1.java +++ b/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor1.java @@ -2,7 +2,7 @@ package com.yomahub.liteflow.test.customWhenThreadPool; import cn.hutool.core.util.ObjectUtil; import com.yomahub.liteflow.property.LiteflowConfig; -import com.yomahub.liteflow.spi.factory.ContextAwareFactory; +import com.yomahub.liteflow.spi.holder.ContextAwareHolder; import com.yomahub.liteflow.thread.ExecutorBuilder; import java.util.concurrent.ExecutorService; @@ -11,7 +11,7 @@ public class CustomThreadExecutor1 implements ExecutorBuilder { @Override public ExecutorService buildExecutor() { - LiteflowConfig liteflowConfig = ContextAwareFactory.loadContextAware().getBean(LiteflowConfig.class); + LiteflowConfig liteflowConfig = ContextAwareHolder.loadContextAware().getBean(LiteflowConfig.class); //只有在非spring的场景下liteflowConfig才会为null if (ObjectUtil.isNull(liteflowConfig)) { liteflowConfig = new LiteflowConfig(); diff --git a/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor2.java b/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor2.java index 60638c3ca..a05de79e6 100644 --- a/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor2.java +++ b/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor2.java @@ -2,7 +2,7 @@ package com.yomahub.liteflow.test.customWhenThreadPool; import cn.hutool.core.util.ObjectUtil; import com.yomahub.liteflow.property.LiteflowConfig; -import com.yomahub.liteflow.spi.factory.ContextAwareFactory; +import com.yomahub.liteflow.spi.holder.ContextAwareHolder; import com.yomahub.liteflow.thread.ExecutorBuilder; import java.util.concurrent.ExecutorService; @@ -10,7 +10,7 @@ import java.util.concurrent.ExecutorService; public class CustomThreadExecutor2 implements ExecutorBuilder { @Override public ExecutorService buildExecutor() { - LiteflowConfig liteflowConfig = ContextAwareFactory.loadContextAware().getBean(LiteflowConfig.class); + LiteflowConfig liteflowConfig = ContextAwareHolder.loadContextAware().getBean(LiteflowConfig.class); //只有在非spring的场景下liteflowConfig才会为null if (ObjectUtil.isNull(liteflowConfig)) { liteflowConfig = new LiteflowConfig(); diff --git a/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor3.java b/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor3.java index 55bfcf6f2..71aac9822 100644 --- a/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor3.java +++ b/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/customWhenThreadPool/CustomThreadExecutor3.java @@ -2,7 +2,7 @@ package com.yomahub.liteflow.test.customWhenThreadPool; import cn.hutool.core.util.ObjectUtil; import com.yomahub.liteflow.property.LiteflowConfig; -import com.yomahub.liteflow.spi.factory.ContextAwareFactory; +import com.yomahub.liteflow.spi.holder.ContextAwareHolder; import com.yomahub.liteflow.thread.ExecutorBuilder; import java.util.concurrent.ExecutorService; @@ -10,7 +10,7 @@ import java.util.concurrent.ExecutorService; public class CustomThreadExecutor3 implements ExecutorBuilder { @Override public ExecutorService buildExecutor() { - LiteflowConfig liteflowConfig = ContextAwareFactory.loadContextAware().getBean(LiteflowConfig.class); + LiteflowConfig liteflowConfig = ContextAwareHolder.loadContextAware().getBean(LiteflowConfig.class); //只有在非spring的场景下liteflowConfig才会为null if (ObjectUtil.isNull(liteflowConfig)) { liteflowConfig = new LiteflowConfig();