From f05cd6c54c7e2481136295818b683180c736cca0 Mon Sep 17 00:00:00 2001 From: clay Date: Sat, 5 Apr 2025 20:15:37 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=89=A7=E8=A1=8C=E5=99=A8runner?= =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E6=90=AD=E5=BB=BA=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/metis/domain/bo/ProcessBo.java | 2 +- .../metis/facade/ProcessDefinitionFacade.java | 4 +-- .../metis/flow/convert/BaseAppConvert.java | 7 ++-- .../flow/domain/{entity => bo}/BuildApp.java | 2 +- .../flow/domain/{entity => bo}/CreateApp.java | 2 +- .../flow/domain/{entity => bo}/Graph.java | 2 +- .../flow/domain/{entity => bo}/UpdateApp.java | 2 +- .../flow/domain/context/RunningContext.java | 19 ++++++++++ .../metis/flow/domain/context/SysContext.java | 19 ++++++++++ .../com/metis/flow/domain/entity/App.java | 3 +- .../metis/flow/domain/entity/base/Node.java | 18 +++++++--- .../flow/domain/entity/base/NodeData.java | 5 +-- .../com/metis/flow/domain/package-info.java | 1 - .../flow/domain/{ => query}/AppQuery.java | 2 +- .../flow/engine/AppEngineRunnerService.java | 4 +++ .../metis/flow/engine/AppEngineService.java | 6 ++-- .../engine/impl/AppEngineServiceImpl.java | 7 ++-- .../java/com/metis/flow/enums/NodeType.java | 6 ++-- .../com/metis/flow/runner/NodeRunner.java | 27 ++++++++++++++ .../metis/flow/runner/RunnerInitialize.java | 22 ++++++++++++ .../flow/runner/factory/RunnerFactory.java | 36 +++++++++++++++++++ .../metis/flow/runner/impl/EndNodeRunner.java | 25 +++++++++++++ .../flow/runner/impl/StartNodeRunner.java | 23 ++++++++++++ .../metis/flow/service/BaseAppService.java | 2 +- .../flow/service/impl/BaseAppServiceImpl.java | 2 +- .../metis/flow/validator/NodeValidator.java | 4 +-- .../flow/validator/ValidatorService.java | 2 +- .../factory/EdgeValidatorFactory.java | 12 +------ .../validator/impl/ValidatorServiceImpl.java | 4 +-- .../validator/impl/node/EndNodeValidator.java | 4 +-- .../impl/node/StartNodeValidator.java | 4 +-- 31 files changed, 231 insertions(+), 47 deletions(-) rename src/main/java/com/metis/flow/domain/{entity => bo}/BuildApp.java (93%) rename src/main/java/com/metis/flow/domain/{entity => bo}/CreateApp.java (93%) rename src/main/java/com/metis/flow/domain/{entity => bo}/Graph.java (93%) rename src/main/java/com/metis/flow/domain/{entity => bo}/UpdateApp.java (94%) create mode 100644 src/main/java/com/metis/flow/domain/context/RunningContext.java create mode 100644 src/main/java/com/metis/flow/domain/context/SysContext.java delete mode 100644 src/main/java/com/metis/flow/domain/package-info.java rename src/main/java/com/metis/flow/domain/{ => query}/AppQuery.java (82%) create mode 100644 src/main/java/com/metis/flow/engine/AppEngineRunnerService.java create mode 100644 src/main/java/com/metis/flow/runner/NodeRunner.java create mode 100644 src/main/java/com/metis/flow/runner/RunnerInitialize.java create mode 100644 src/main/java/com/metis/flow/runner/factory/RunnerFactory.java create mode 100644 src/main/java/com/metis/flow/runner/impl/EndNodeRunner.java create mode 100644 src/main/java/com/metis/flow/runner/impl/StartNodeRunner.java diff --git a/src/main/java/com/metis/domain/bo/ProcessBo.java b/src/main/java/com/metis/domain/bo/ProcessBo.java index 7e65629..325018e 100644 --- a/src/main/java/com/metis/domain/bo/ProcessBo.java +++ b/src/main/java/com/metis/domain/bo/ProcessBo.java @@ -1,7 +1,7 @@ package com.metis.domain.bo; import com.metis.enums.YesOrNoEnum; -import com.metis.flow.domain.entity.Graph; +import com.metis.flow.domain.bo.Graph; import lombok.Data; @Data diff --git a/src/main/java/com/metis/facade/ProcessDefinitionFacade.java b/src/main/java/com/metis/facade/ProcessDefinitionFacade.java index 89b3f7a..5272714 100644 --- a/src/main/java/com/metis/facade/ProcessDefinitionFacade.java +++ b/src/main/java/com/metis/facade/ProcessDefinitionFacade.java @@ -2,8 +2,8 @@ package com.metis.facade; import com.metis.domain.bo.ProcessBo; import com.metis.flow.domain.entity.App; -import com.metis.flow.domain.entity.CreateApp; -import com.metis.flow.domain.entity.UpdateApp; +import com.metis.flow.domain.bo.CreateApp; +import com.metis.flow.domain.bo.UpdateApp; import com.metis.flow.engine.AppEngineService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/metis/flow/convert/BaseAppConvert.java b/src/main/java/com/metis/flow/convert/BaseAppConvert.java index 1caf0cf..9564634 100644 --- a/src/main/java/com/metis/flow/convert/BaseAppConvert.java +++ b/src/main/java/com/metis/flow/convert/BaseAppConvert.java @@ -1,6 +1,9 @@ package com.metis.flow.convert; import com.metis.flow.domain.entity.*; +import com.metis.flow.domain.bo.BuildApp; +import com.metis.flow.domain.bo.CreateApp; +import com.metis.flow.domain.bo.UpdateApp; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.Mappings; @@ -29,8 +32,8 @@ public interface BaseAppConvert { * @return {@link App } */ @Mappings({ - @Mapping(target = "graph", expression = "java(com.alibaba.fastjson2.JSON.parseObject(baseApp.getGraphJson(), com.metis.flow.domain.entity.Graph.class))"), - @Mapping(target = "deploymentId", source = "id") + @Mapping(target = "graph", expression = "java(com.alibaba.fastjson2.JSON.parseObject(baseApp.getGraphJson(), com.metis.flow.domain.entity.bo.Graph.class))"), + @Mapping(target = "workflowId", source = "id") }) App toApp(BaseApp baseApp); diff --git a/src/main/java/com/metis/flow/domain/entity/BuildApp.java b/src/main/java/com/metis/flow/domain/bo/BuildApp.java similarity index 93% rename from src/main/java/com/metis/flow/domain/entity/BuildApp.java rename to src/main/java/com/metis/flow/domain/bo/BuildApp.java index 0df70b2..fd78ff5 100644 --- a/src/main/java/com/metis/flow/domain/entity/BuildApp.java +++ b/src/main/java/com/metis/flow/domain/bo/BuildApp.java @@ -1,4 +1,4 @@ -package com.metis.flow.domain.entity; +package com.metis.flow.domain.bo; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; diff --git a/src/main/java/com/metis/flow/domain/entity/CreateApp.java b/src/main/java/com/metis/flow/domain/bo/CreateApp.java similarity index 93% rename from src/main/java/com/metis/flow/domain/entity/CreateApp.java rename to src/main/java/com/metis/flow/domain/bo/CreateApp.java index 54bac7f..42f2a66 100644 --- a/src/main/java/com/metis/flow/domain/entity/CreateApp.java +++ b/src/main/java/com/metis/flow/domain/bo/CreateApp.java @@ -1,4 +1,4 @@ -package com.metis.flow.domain.entity; +package com.metis.flow.domain.bo; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; diff --git a/src/main/java/com/metis/flow/domain/entity/Graph.java b/src/main/java/com/metis/flow/domain/bo/Graph.java similarity index 93% rename from src/main/java/com/metis/flow/domain/entity/Graph.java rename to src/main/java/com/metis/flow/domain/bo/Graph.java index 3915236..626974c 100644 --- a/src/main/java/com/metis/flow/domain/entity/Graph.java +++ b/src/main/java/com/metis/flow/domain/bo/Graph.java @@ -1,4 +1,4 @@ -package com.metis.flow.domain.entity; +package com.metis.flow.domain.bo; import com.metis.flow.domain.entity.base.Edge; import com.metis.flow.domain.entity.base.Node; diff --git a/src/main/java/com/metis/flow/domain/entity/UpdateApp.java b/src/main/java/com/metis/flow/domain/bo/UpdateApp.java similarity index 94% rename from src/main/java/com/metis/flow/domain/entity/UpdateApp.java rename to src/main/java/com/metis/flow/domain/bo/UpdateApp.java index 8391e9b..a6a0050 100644 --- a/src/main/java/com/metis/flow/domain/entity/UpdateApp.java +++ b/src/main/java/com/metis/flow/domain/bo/UpdateApp.java @@ -1,4 +1,4 @@ -package com.metis.flow.domain.entity; +package com.metis.flow.domain.bo; import com.metis.enums.YesOrNoEnum; import jakarta.validation.Valid; diff --git a/src/main/java/com/metis/flow/domain/context/RunningContext.java b/src/main/java/com/metis/flow/domain/context/RunningContext.java new file mode 100644 index 0000000..891b196 --- /dev/null +++ b/src/main/java/com/metis/flow/domain/context/RunningContext.java @@ -0,0 +1,19 @@ +package com.metis.flow.domain.context; + +import com.alibaba.fastjson2.JSONObject; +import lombok.Data; + +@Data +public class RunningContext { + + /** + * 系统数据 + */ + private SysContext sys; + + /** + * 自定义数据 + */ + private JSONObject custom; + +} diff --git a/src/main/java/com/metis/flow/domain/context/SysContext.java b/src/main/java/com/metis/flow/domain/context/SysContext.java new file mode 100644 index 0000000..59be745 --- /dev/null +++ b/src/main/java/com/metis/flow/domain/context/SysContext.java @@ -0,0 +1,19 @@ +package com.metis.flow.domain.context; + +import lombok.Data; + +import java.util.List; + +@Data +public class SysContext { + + private List file; + + private Long appId; + + private Long userId; + + private Long workflowId; + + private Long instanceId; +} diff --git a/src/main/java/com/metis/flow/domain/entity/App.java b/src/main/java/com/metis/flow/domain/entity/App.java index 1d1d37c..5b97af1 100644 --- a/src/main/java/com/metis/flow/domain/entity/App.java +++ b/src/main/java/com/metis/flow/domain/entity/App.java @@ -2,6 +2,7 @@ package com.metis.flow.domain.entity; import com.metis.enums.YesOrNoEnum; +import com.metis.flow.domain.bo.Graph; import lombok.Data; import java.time.LocalDateTime; @@ -17,7 +18,7 @@ public class App { /** * 部署id */ - private Long deploymentId; + private Long workflowId; /** * 名称 diff --git a/src/main/java/com/metis/flow/domain/entity/base/Node.java b/src/main/java/com/metis/flow/domain/entity/base/Node.java index b753588..c5b0fd9 100644 --- a/src/main/java/com/metis/flow/domain/entity/base/Node.java +++ b/src/main/java/com/metis/flow/domain/entity/base/Node.java @@ -1,5 +1,7 @@ package com.metis.flow.domain.entity.base; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import com.fasterxml.jackson.annotation.JsonIgnore; import com.metis.flow.enums.NodeType; import jakarta.validation.Valid; @@ -8,9 +10,10 @@ import jakarta.validation.constraints.NotNull; import lombok.Data; import java.util.Map; +import java.util.stream.Collectors; @Data -public class Node { +public class Node { /** * id @@ -36,16 +39,23 @@ public class Node { */ @Valid @NotNull(message = "节点业务数据不能为空") - private NodeData data; + private NodeData data; @JsonIgnore public Map getHandleMap() { - if (data == null || data.getHandles() == null) { + if (CollUtil.isEmpty(data.getHandles())) { return Map.of(); } - return data.getHandles().stream().collect(java.util.stream.Collectors.toMap(Handle::getId, handle -> handle)); + return data.getHandles().stream().collect(Collectors.toMap(Handle::getId, handle -> handle)); } + @JsonIgnore + public T getConfig() { + if (ObjectUtil.isNull(data.getConfig())) { + return null; + } + return (T) data.getConfig().to(type.getConfigClass()); + } } diff --git a/src/main/java/com/metis/flow/domain/entity/base/NodeData.java b/src/main/java/com/metis/flow/domain/entity/base/NodeData.java index 5592325..5ae8089 100644 --- a/src/main/java/com/metis/flow/domain/entity/base/NodeData.java +++ b/src/main/java/com/metis/flow/domain/entity/base/NodeData.java @@ -1,5 +1,6 @@ package com.metis.flow.domain.entity.base; +import com.alibaba.fastjson2.JSONObject; import com.metis.flow.enums.PositionType; import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; @@ -9,7 +10,7 @@ import lombok.Data; import java.util.List; @Data -public class NodeData { +public class NodeData { /** * 标签 @@ -29,7 +30,7 @@ public class NodeData { /** * 配置 */ - private T config; + private JSONObject config; /** * 句柄列表 diff --git a/src/main/java/com/metis/flow/domain/package-info.java b/src/main/java/com/metis/flow/domain/package-info.java deleted file mode 100644 index 4b40eac..0000000 --- a/src/main/java/com/metis/flow/domain/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package com.metis.flow.domain; \ No newline at end of file diff --git a/src/main/java/com/metis/flow/domain/AppQuery.java b/src/main/java/com/metis/flow/domain/query/AppQuery.java similarity index 82% rename from src/main/java/com/metis/flow/domain/AppQuery.java rename to src/main/java/com/metis/flow/domain/query/AppQuery.java index 814715e..2cd0ebe 100644 --- a/src/main/java/com/metis/flow/domain/AppQuery.java +++ b/src/main/java/com/metis/flow/domain/query/AppQuery.java @@ -1,4 +1,4 @@ -package com.metis.flow.domain; +package com.metis.flow.domain.query; import lombok.Builder; import lombok.Data; diff --git a/src/main/java/com/metis/flow/engine/AppEngineRunnerService.java b/src/main/java/com/metis/flow/engine/AppEngineRunnerService.java new file mode 100644 index 0000000..2ee07ff --- /dev/null +++ b/src/main/java/com/metis/flow/engine/AppEngineRunnerService.java @@ -0,0 +1,4 @@ +package com.metis.flow.engine; + +public interface AppEngineRunnerService { +} diff --git a/src/main/java/com/metis/flow/engine/AppEngineService.java b/src/main/java/com/metis/flow/engine/AppEngineService.java index dfc4c27..d2fe8d9 100644 --- a/src/main/java/com/metis/flow/engine/AppEngineService.java +++ b/src/main/java/com/metis/flow/engine/AppEngineService.java @@ -1,9 +1,9 @@ package com.metis.flow.engine; -import com.metis.flow.domain.AppQuery; +import com.metis.flow.domain.query.AppQuery; import com.metis.flow.domain.entity.App; -import com.metis.flow.domain.entity.CreateApp; -import com.metis.flow.domain.entity.UpdateApp; +import com.metis.flow.domain.bo.CreateApp; +import com.metis.flow.domain.bo.UpdateApp; import java.util.List; diff --git a/src/main/java/com/metis/flow/engine/impl/AppEngineServiceImpl.java b/src/main/java/com/metis/flow/engine/impl/AppEngineServiceImpl.java index 66d6af5..7a5b117 100644 --- a/src/main/java/com/metis/flow/engine/impl/AppEngineServiceImpl.java +++ b/src/main/java/com/metis/flow/engine/impl/AppEngineServiceImpl.java @@ -6,7 +6,10 @@ import cn.hutool.core.util.ObjectUtil; import com.metis.enums.YesOrNoEnum; import com.metis.flow.constant.BaseConstant; import com.metis.flow.convert.BaseAppConvert; -import com.metis.flow.domain.AppQuery; +import com.metis.flow.domain.bo.BuildApp; +import com.metis.flow.domain.bo.CreateApp; +import com.metis.flow.domain.bo.UpdateApp; +import com.metis.flow.domain.query.AppQuery; import com.metis.flow.domain.entity.*; import com.metis.flow.engine.AppEngineService; import com.metis.flow.service.BaseAppService; @@ -109,7 +112,7 @@ public class AppEngineServiceImpl implements AppEngineService { private App creatApp(BaseApp baseApp, BuildApp buildApp) { App app = BaseAppConvert.INSTANCE.toApp(buildApp); app.setId(baseApp.getId()); - app.setDeploymentId(baseApp.getId()); + app.setWorkflowId(baseApp.getId()); app.setDefaultUse(baseApp.getDefaultUse()); return app; } diff --git a/src/main/java/com/metis/flow/enums/NodeType.java b/src/main/java/com/metis/flow/enums/NodeType.java index ed3195c..0c16ad4 100644 --- a/src/main/java/com/metis/flow/enums/NodeType.java +++ b/src/main/java/com/metis/flow/enums/NodeType.java @@ -11,8 +11,8 @@ import java.util.Arrays; @AllArgsConstructor public enum NodeType { - START(1, "start", "开始"), - END(2, "end", "结束"), + START(1, "start", "开始", Object.class), + END(2, "end", "结束", Object.class), ; @@ -24,6 +24,8 @@ public enum NodeType { private final String name; + private final Class configClass; + /** * 枚举序列化器(前端传code时自动转换为对应枚举) diff --git a/src/main/java/com/metis/flow/runner/NodeRunner.java b/src/main/java/com/metis/flow/runner/NodeRunner.java new file mode 100644 index 0000000..c9a8420 --- /dev/null +++ b/src/main/java/com/metis/flow/runner/NodeRunner.java @@ -0,0 +1,27 @@ +package com.metis.flow.runner; + +import com.metis.flow.domain.context.RunningContext; +import com.metis.flow.domain.entity.base.Node; +import com.metis.flow.enums.NodeType; + +public interface NodeRunner { + + + /** + * 运行 + * + * @param context 上下文 + * @param node 节点配置信息 + * @return {@link RunningContext } + */ + RunningContext run(RunningContext context, Node node); + + + /** + * 获取节点类型 + * + * @return {@link NodeType } + */ + NodeType getType(); + +} diff --git a/src/main/java/com/metis/flow/runner/RunnerInitialize.java b/src/main/java/com/metis/flow/runner/RunnerInitialize.java new file mode 100644 index 0000000..b2dafa0 --- /dev/null +++ b/src/main/java/com/metis/flow/runner/RunnerInitialize.java @@ -0,0 +1,22 @@ +package com.metis.flow.runner; + +import com.metis.flow.runner.factory.RunnerFactory; +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Service; + +import java.util.Map; + +@Service +public class RunnerInitialize implements ApplicationContextAware { + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + Map runnerMap = applicationContext.getBeansOfType(NodeRunner.class); + runnerMap.forEach((k, v) -> { + RunnerFactory.register(v); + }); + } + +} diff --git a/src/main/java/com/metis/flow/runner/factory/RunnerFactory.java b/src/main/java/com/metis/flow/runner/factory/RunnerFactory.java new file mode 100644 index 0000000..3a71a82 --- /dev/null +++ b/src/main/java/com/metis/flow/runner/factory/RunnerFactory.java @@ -0,0 +1,36 @@ +package com.metis.flow.runner.factory; + +import com.metis.flow.enums.NodeType; +import com.metis.flow.runner.NodeRunner; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +public class RunnerFactory { + + private static final Map MAP = new ConcurrentHashMap<>(8); + + + /** + * 注册 + * + * @param runner 跑步者 + */ + public static void register(NodeRunner runner) { + MAP.put(runner.getType(), runner); + } + + + /** + * 得到 + * + * @param type 类型 + * @return {@link NodeRunner } + */ + public static NodeRunner get(NodeType type) { + return MAP.get(type); + } + + + +} diff --git a/src/main/java/com/metis/flow/runner/impl/EndNodeRunner.java b/src/main/java/com/metis/flow/runner/impl/EndNodeRunner.java new file mode 100644 index 0000000..35191e1 --- /dev/null +++ b/src/main/java/com/metis/flow/runner/impl/EndNodeRunner.java @@ -0,0 +1,25 @@ +package com.metis.flow.runner.impl; + + +import com.metis.flow.domain.context.RunningContext; +import com.metis.flow.domain.entity.base.Node; +import com.metis.flow.enums.NodeType; +import com.metis.flow.runner.NodeRunner; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +public class EndNodeRunner implements NodeRunner { + + @Override + public RunningContext run(RunningContext context, Node node) { + return context; + } + + @Override + public NodeType getType() { + return NodeType.END; + } + +} diff --git a/src/main/java/com/metis/flow/runner/impl/StartNodeRunner.java b/src/main/java/com/metis/flow/runner/impl/StartNodeRunner.java new file mode 100644 index 0000000..f43a570 --- /dev/null +++ b/src/main/java/com/metis/flow/runner/impl/StartNodeRunner.java @@ -0,0 +1,23 @@ +package com.metis.flow.runner.impl; + +import com.metis.flow.domain.context.RunningContext; +import com.metis.flow.domain.entity.base.Node; +import com.metis.flow.enums.NodeType; +import com.metis.flow.runner.NodeRunner; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +public class StartNodeRunner implements NodeRunner { + + @Override + public RunningContext run(RunningContext context, Node node) { + return context; + } + + @Override + public NodeType getType() { + return NodeType.START; + } +} diff --git a/src/main/java/com/metis/flow/service/BaseAppService.java b/src/main/java/com/metis/flow/service/BaseAppService.java index 0357d25..2fa231b 100644 --- a/src/main/java/com/metis/flow/service/BaseAppService.java +++ b/src/main/java/com/metis/flow/service/BaseAppService.java @@ -1,7 +1,7 @@ package com.metis.flow.service; import com.metis.enums.YesOrNoEnum; -import com.metis.flow.domain.AppQuery; +import com.metis.flow.domain.query.AppQuery; import com.metis.flow.domain.entity.BaseApp; import com.baomidou.mybatisplus.extension.service.IService; diff --git a/src/main/java/com/metis/flow/service/impl/BaseAppServiceImpl.java b/src/main/java/com/metis/flow/service/impl/BaseAppServiceImpl.java index a568544..5cbe09a 100644 --- a/src/main/java/com/metis/flow/service/impl/BaseAppServiceImpl.java +++ b/src/main/java/com/metis/flow/service/impl/BaseAppServiceImpl.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.metis.enums.YesOrNoEnum; -import com.metis.flow.domain.AppQuery; +import com.metis.flow.domain.query.AppQuery; import com.metis.flow.domain.entity.BaseApp; import com.metis.flow.mapper.BaseAppMapper; import com.metis.flow.service.BaseAppService; diff --git a/src/main/java/com/metis/flow/validator/NodeValidator.java b/src/main/java/com/metis/flow/validator/NodeValidator.java index 1e4bb92..ecaa51f 100644 --- a/src/main/java/com/metis/flow/validator/NodeValidator.java +++ b/src/main/java/com/metis/flow/validator/NodeValidator.java @@ -3,7 +3,7 @@ package com.metis.flow.validator; import com.metis.flow.domain.entity.base.Node; import com.metis.flow.enums.NodeType; -public interface NodeValidator { +public interface NodeValidator { /** @@ -12,7 +12,7 @@ public interface NodeValidator { * @param node 节点 * @return {@link ValidatorResult } */ - ValidatorResult validate(Node node); + ValidatorResult validate(Node node); /** diff --git a/src/main/java/com/metis/flow/validator/ValidatorService.java b/src/main/java/com/metis/flow/validator/ValidatorService.java index 36350f3..ac5f11f 100644 --- a/src/main/java/com/metis/flow/validator/ValidatorService.java +++ b/src/main/java/com/metis/flow/validator/ValidatorService.java @@ -1,6 +1,6 @@ package com.metis.flow.validator; -import com.metis.flow.domain.entity.BuildApp; +import com.metis.flow.domain.bo.BuildApp; public interface ValidatorService { diff --git a/src/main/java/com/metis/flow/validator/factory/EdgeValidatorFactory.java b/src/main/java/com/metis/flow/validator/factory/EdgeValidatorFactory.java index 1324401..d3e357f 100644 --- a/src/main/java/com/metis/flow/validator/factory/EdgeValidatorFactory.java +++ b/src/main/java/com/metis/flow/validator/factory/EdgeValidatorFactory.java @@ -2,14 +2,11 @@ package com.metis.flow.validator.factory; import com.metis.flow.enums.EdgeType; import com.metis.flow.validator.EdgeValidator; -import org.springframework.beans.BeansException; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -public class EdgeValidatorFactory implements ApplicationContextAware { +public class EdgeValidatorFactory { private static final Map MAP = new ConcurrentHashMap<>(8); @@ -32,11 +29,4 @@ public class EdgeValidatorFactory implements ApplicationContextAware { return MAP.get(type); } - @Override - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - Map validatorMap = applicationContext.getBeansOfType(EdgeValidator.class); - validatorMap.forEach((k, v) -> { - register(v); - }); - } } diff --git a/src/main/java/com/metis/flow/validator/impl/ValidatorServiceImpl.java b/src/main/java/com/metis/flow/validator/impl/ValidatorServiceImpl.java index 3d5395b..ed2eed1 100644 --- a/src/main/java/com/metis/flow/validator/impl/ValidatorServiceImpl.java +++ b/src/main/java/com/metis/flow/validator/impl/ValidatorServiceImpl.java @@ -3,8 +3,8 @@ package com.metis.flow.validator.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; -import com.metis.flow.domain.entity.BuildApp; -import com.metis.flow.domain.entity.Graph; +import com.metis.flow.domain.bo.BuildApp; +import com.metis.flow.domain.bo.Graph; import com.metis.flow.domain.entity.base.Edge; import com.metis.flow.domain.entity.base.Node; import com.metis.flow.enums.EdgeType; diff --git a/src/main/java/com/metis/flow/validator/impl/node/EndNodeValidator.java b/src/main/java/com/metis/flow/validator/impl/node/EndNodeValidator.java index 1a3b501..caebef9 100644 --- a/src/main/java/com/metis/flow/validator/impl/node/EndNodeValidator.java +++ b/src/main/java/com/metis/flow/validator/impl/node/EndNodeValidator.java @@ -9,10 +9,10 @@ import org.springframework.stereotype.Service; @Slf4j @Service -public class EndNodeValidator implements NodeValidator { +public class EndNodeValidator implements NodeValidator { @Override - public ValidatorResult validate(Node node) { + public ValidatorResult validate(Node node) { return ValidatorResult.valid(); } diff --git a/src/main/java/com/metis/flow/validator/impl/node/StartNodeValidator.java b/src/main/java/com/metis/flow/validator/impl/node/StartNodeValidator.java index f5dba81..f32d657 100644 --- a/src/main/java/com/metis/flow/validator/impl/node/StartNodeValidator.java +++ b/src/main/java/com/metis/flow/validator/impl/node/StartNodeValidator.java @@ -9,10 +9,10 @@ import org.springframework.stereotype.Service; @Slf4j @Service -public class StartNodeValidator implements NodeValidator { +public class StartNodeValidator implements NodeValidator { @Override - public ValidatorResult validate(Node node) { + public ValidatorResult validate(Node node) { return ValidatorResult.valid(); }