diff --git a/app-builder/jane/plugins/aipp-plugin/pom.xml b/app-builder/jane/plugins/aipp-plugin/pom.xml index 9251a0ea19..02143fe668 100644 --- a/app-builder/jane/plugins/aipp-plugin/pom.xml +++ b/app-builder/jane/plugins/aipp-plugin/pom.xml @@ -180,11 +180,6 @@ org.fitframework.extension fit-schedule - - org.fitframework.fel - tool-service - 3.5.0-M2.1 - modelengine.fit.jade.service store-service diff --git a/app-builder/jane/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/service/impl/AippFlowServiceImpl.java b/app-builder/jane/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/service/impl/AippFlowServiceImpl.java index ec71717c56..3573ed1682 100644 --- a/app-builder/jane/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/service/impl/AippFlowServiceImpl.java +++ b/app-builder/jane/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/service/impl/AippFlowServiceImpl.java @@ -70,13 +70,13 @@ import modelengine.fitframework.util.MapBuilder; import modelengine.fitframework.util.ObjectUtils; import modelengine.fitframework.util.StringUtils; -import modelengine.fel.tool.service.ToolService; import modelengine.jade.store.entity.transfer.AppData; import modelengine.jade.store.entity.transfer.AppPublishData; import modelengine.jade.store.entity.transfer.PluginData; import modelengine.jade.store.entity.transfer.PluginToolData; import modelengine.jade.store.service.AppService; import modelengine.jade.store.service.PluginService; +import modelengine.jade.store.service.ToolService; import modelengine.jade.store.service.support.DeployStatus; import java.time.LocalDateTime; diff --git a/app-builder/jane/plugins/aipp-plugin/src/test/java/modelengine/fit/jober/aipp/service/AippFlowServiceTest.java b/app-builder/jane/plugins/aipp-plugin/src/test/java/modelengine/fit/jober/aipp/service/AippFlowServiceTest.java index 42d61720f6..4e9128e4d8 100644 --- a/app-builder/jane/plugins/aipp-plugin/src/test/java/modelengine/fit/jober/aipp/service/AippFlowServiceTest.java +++ b/app-builder/jane/plugins/aipp-plugin/src/test/java/modelengine/fit/jober/aipp/service/AippFlowServiceTest.java @@ -58,9 +58,9 @@ import modelengine.fitframework.util.MapBuilder; import modelengine.fitframework.util.ObjectUtils; import modelengine.fitframework.util.StringUtils; -import modelengine.fel.tool.service.ToolService; import modelengine.jade.store.entity.transfer.PluginData; import modelengine.jade.store.service.AppService; +import modelengine.jade.store.service.ToolService; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; diff --git a/app-builder/plugins/aipp-document-extract-node/pom.xml b/app-builder/plugins/aipp-document-extract-node/pom.xml index c149dbd44b..419baafb37 100644 --- a/app-builder/plugins/aipp-document-extract-node/pom.xml +++ b/app-builder/plugins/aipp-document-extract-node/pom.xml @@ -19,9 +19,8 @@ aipp-service - org.fitframework.fel - tool-service - 3.5.0-M2.1 + modelengine.fit.jade.service + store-service modelengine.fit.jade.fel diff --git a/app-builder/plugins/aipp-document-extract-node/src/main/java/modelengine/fit/jade/aipp/document/extractor/TextExtractor.java b/app-builder/plugins/aipp-document-extract-node/src/main/java/modelengine/fit/jade/aipp/document/extractor/TextExtractor.java index 77446ef011..943b853c63 100644 --- a/app-builder/plugins/aipp-document-extract-node/src/main/java/modelengine/fit/jade/aipp/document/extractor/TextExtractor.java +++ b/app-builder/plugins/aipp-document-extract-node/src/main/java/modelengine/fit/jade/aipp/document/extractor/TextExtractor.java @@ -10,12 +10,12 @@ import modelengine.fel.tool.model.transfer.ToolData; import modelengine.fel.tool.service.ToolExecuteService; -import modelengine.fel.tool.service.ToolService; import modelengine.fit.jober.aipp.service.OperatorService.FileType; import modelengine.fitframework.annotation.Component; import modelengine.fitframework.util.CollectionUtils; import modelengine.fitframework.util.MapBuilder; import modelengine.jade.common.exception.ModelEngineException; +import modelengine.jade.store.service.ToolService; import java.util.List; import java.util.Map; diff --git a/app-builder/plugins/aipp-document-extract-node/src/test/java/modelengine/fit/jade/aipp/document/extractor/ExtractorTest.java b/app-builder/plugins/aipp-document-extract-node/src/test/java/modelengine/fit/jade/aipp/document/extractor/ExtractorTest.java index 78c96f6285..ecf9421b40 100644 --- a/app-builder/plugins/aipp-document-extract-node/src/test/java/modelengine/fit/jade/aipp/document/extractor/ExtractorTest.java +++ b/app-builder/plugins/aipp-document-extract-node/src/test/java/modelengine/fit/jade/aipp/document/extractor/ExtractorTest.java @@ -15,7 +15,7 @@ import modelengine.fel.tool.model.transfer.ToolData; import modelengine.fel.tool.service.ToolExecuteService; -import modelengine.fel.tool.service.ToolService; +import modelengine.jade.store.service.ToolService; import modelengine.jade.voice.service.VoiceService; import modelengine.fel.core.chat.ChatMessage; diff --git a/app-builder/plugins/tool-waterflow/pom.xml b/app-builder/plugins/tool-waterflow/pom.xml index d7f20bc3c9..ef474f3dbe 100644 --- a/app-builder/plugins/tool-waterflow/pom.xml +++ b/app-builder/plugins/tool-waterflow/pom.xml @@ -28,11 +28,6 @@ - - org.fitframework.fel - tool-service - 3.5.0-M2.1 - modelengine.fit.jade.service store-service diff --git a/app-builder/plugins/tool-waterflow/src/main/java/modelengine/jade/carver/tool/waterflow/WaterFlowToolProvider.java b/app-builder/plugins/tool-waterflow/src/main/java/modelengine/jade/carver/tool/waterflow/WaterFlowToolProvider.java index 3b91b88590..8211ea7d73 100644 --- a/app-builder/plugins/tool-waterflow/src/main/java/modelengine/jade/carver/tool/waterflow/WaterFlowToolProvider.java +++ b/app-builder/plugins/tool-waterflow/src/main/java/modelengine/jade/carver/tool/waterflow/WaterFlowToolProvider.java @@ -12,7 +12,6 @@ import modelengine.fel.core.tool.ToolInfo; import modelengine.fel.core.tool.ToolProvider; import modelengine.fel.tool.model.transfer.ToolData; -import modelengine.fel.tool.service.ToolService; import modelengine.fit.jade.tool.SyncToolCall; import modelengine.fit.jober.aipp.constants.AippConst; import modelengine.fitframework.annotation.Component; @@ -23,6 +22,7 @@ import modelengine.fitframework.util.StringUtils; import modelengine.fitframework.util.UuidUtils; import modelengine.jade.carver.tool.waterflow.invoker.ToolInvoker; +import modelengine.jade.store.service.ToolService; import java.util.List; import java.util.Map; diff --git a/app-builder/plugins/tool-waterflow/src/test/java/modelengine/jade/carver/tool/waterflow/WaterFlowToolProviderTest.java b/app-builder/plugins/tool-waterflow/src/test/java/modelengine/jade/carver/tool/waterflow/WaterFlowToolProviderTest.java index d6c469eb71..7b046036ef 100644 --- a/app-builder/plugins/tool-waterflow/src/test/java/modelengine/jade/carver/tool/waterflow/WaterFlowToolProviderTest.java +++ b/app-builder/plugins/tool-waterflow/src/test/java/modelengine/jade/carver/tool/waterflow/WaterFlowToolProviderTest.java @@ -11,9 +11,9 @@ import modelengine.fel.core.tool.ToolInfo; import modelengine.fel.tool.Tool; import modelengine.fel.tool.model.transfer.ToolData; -import modelengine.fel.tool.service.ToolService; import modelengine.fitframework.util.MapBuilder; import modelengine.jade.carver.tool.waterflow.invoker.ToolInvoker; +import modelengine.jade.store.service.ToolService; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; diff --git a/app-eval/plugins/eval-task/pom.xml b/app-eval/plugins/eval-task/pom.xml index 5ebc8fa113..4067780d0f 100644 --- a/app-eval/plugins/eval-task/pom.xml +++ b/app-eval/plugins/eval-task/pom.xml @@ -41,9 +41,8 @@ jade-common-service - org.fitframework.fel - tool-service - 3.5.0-M2.1 + modelengine.fit.jade.service + store-service modelengine.fit.jade.service diff --git a/app-eval/plugins/eval-task/src/main/java/modelengine/jade/app/engine/task/fitable/AlgorithmComponent.java b/app-eval/plugins/eval-task/src/main/java/modelengine/jade/app/engine/task/fitable/AlgorithmComponent.java index 1d2d4fa6e2..ae9103396d 100644 --- a/app-eval/plugins/eval-task/src/main/java/modelengine/jade/app/engine/task/fitable/AlgorithmComponent.java +++ b/app-eval/plugins/eval-task/src/main/java/modelengine/jade/app/engine/task/fitable/AlgorithmComponent.java @@ -13,7 +13,6 @@ import modelengine.fit.waterflow.spi.FlowableService; import modelengine.fel.tool.service.ToolExecuteService; -import modelengine.fel.tool.service.ToolService; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; @@ -30,6 +29,7 @@ import modelengine.jade.app.engine.task.exception.EvalTaskException; import modelengine.jade.app.engine.task.service.EvalAlgorithmService; import modelengine.jade.app.engine.task.service.EvalInstanceService; +import modelengine.jade.store.service.ToolService; import java.util.Collections; import java.util.List; diff --git a/app-eval/plugins/eval-task/src/test/java/modelengine/jade/app/engine/task/fitable/AlgorithmComponentTest.java b/app-eval/plugins/eval-task/src/test/java/modelengine/jade/app/engine/task/fitable/AlgorithmComponentTest.java index 479af32a1b..6c275e8b72 100644 --- a/app-eval/plugins/eval-task/src/test/java/modelengine/jade/app/engine/task/fitable/AlgorithmComponentTest.java +++ b/app-eval/plugins/eval-task/src/test/java/modelengine/jade/app/engine/task/fitable/AlgorithmComponentTest.java @@ -21,7 +21,6 @@ import modelengine.jade.app.engine.task.service.EvalInstanceService; import modelengine.fel.tool.model.transfer.ToolData; import modelengine.fel.tool.service.ToolExecuteService; -import modelengine.fel.tool.service.ToolService; import com.fasterxml.jackson.databind.ObjectMapper; @@ -29,6 +28,7 @@ import modelengine.fitframework.serialization.ObjectSerializer; import modelengine.fitframework.test.annotation.FitTestWithJunit; import modelengine.fitframework.util.ObjectUtils; +import modelengine.jade.store.service.ToolService; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; diff --git a/app-knowledge/plugins/knowledge-manager/pom.xml b/app-knowledge/plugins/knowledge-manager/pom.xml index 7aa238034a..1c292bb178 100644 --- a/app-knowledge/plugins/knowledge-manager/pom.xml +++ b/app-knowledge/plugins/knowledge-manager/pom.xml @@ -38,6 +38,10 @@ modelengine.fit.jade.service knowledge-service + + modelengine.fit.jade.service + store-service + diff --git a/app-knowledge/plugins/knowledge-manager/src/main/java/modelengine/jade/knowledge/controller/KnowledgeController.java b/app-knowledge/plugins/knowledge-manager/src/main/java/modelengine/jade/knowledge/controller/KnowledgeController.java index 326e7daa2d..a8cfca2a43 100644 --- a/app-knowledge/plugins/knowledge-manager/src/main/java/modelengine/jade/knowledge/controller/KnowledgeController.java +++ b/app-knowledge/plugins/knowledge-manager/src/main/java/modelengine/jade/knowledge/controller/KnowledgeController.java @@ -16,7 +16,6 @@ import modelengine.fit.jane.task.gateway.Authenticator; import modelengine.fitframework.annotation.Component; import modelengine.fitframework.validation.Validated; -import modelengine.fel.tool.service.ToolGroupService; import modelengine.jade.common.vo.PageVo; import modelengine.jade.knowledge.KnowledgeCenterService; import modelengine.jade.knowledge.KnowledgeI18nInfo; @@ -31,6 +30,7 @@ import modelengine.jade.knowledge.dto.KnowledgeDto; import modelengine.jade.knowledge.enums.IndexType; import modelengine.jade.knowledge.router.KnowledgeServiceRouter; +import modelengine.jade.store.service.ToolGroupService; import java.util.Arrays; import java.util.List; diff --git a/app-knowledge/plugins/knowledge-manager/src/test/java/modelengine/jade/knowledge/KnowledgeControllerTest.java b/app-knowledge/plugins/knowledge-manager/src/test/java/modelengine/jade/knowledge/KnowledgeControllerTest.java index 07092f48cc..bbf5b33a0f 100644 --- a/app-knowledge/plugins/knowledge-manager/src/test/java/modelengine/jade/knowledge/KnowledgeControllerTest.java +++ b/app-knowledge/plugins/knowledge-manager/src/test/java/modelengine/jade/knowledge/KnowledgeControllerTest.java @@ -18,7 +18,6 @@ import modelengine.fitframework.util.ObjectUtils; import modelengine.fitframework.util.TypeUtils; import modelengine.jade.authentication.AuthenticationService; -import modelengine.fel.tool.service.ToolGroupService; import modelengine.jade.common.filter.support.LoginFilter; import modelengine.jade.common.vo.PageVo; import modelengine.jade.knowledge.config.KnowledgeConfig; @@ -28,6 +27,7 @@ import modelengine.jade.knowledge.enums.IndexType; import modelengine.jade.knowledge.router.KnowledgeServiceRouter; import modelengine.jade.knowledge.support.FlatFilterConfig; +import modelengine.jade.store.service.ToolGroupService; import org.assertj.core.api.Assertions; import org.assertj.core.groups.Tuple; diff --git a/carver/plugins/tool-execution/pom.xml b/carver/plugins/tool-execution/pom.xml index 2022b81f16..bd24c06239 100644 --- a/carver/plugins/tool-execution/pom.xml +++ b/carver/plugins/tool-execution/pom.xml @@ -29,9 +29,8 @@ ${fit.version} - org.fitframework.fel - tool-service - 3.5.0-M2.1 + modelengine.fit.jade.service + store-service diff --git a/carver/plugins/tool-execution/src/main/java/modelengine/jade/carver/tool/execution/support/DefaultToolExecuteService.java b/carver/plugins/tool-execution/src/main/java/modelengine/jade/carver/tool/execution/support/DefaultToolExecuteService.java index 83cbeab9b9..d6164c957e 100644 --- a/carver/plugins/tool-execution/src/main/java/modelengine/jade/carver/tool/execution/support/DefaultToolExecuteService.java +++ b/carver/plugins/tool-execution/src/main/java/modelengine/jade/carver/tool/execution/support/DefaultToolExecuteService.java @@ -14,14 +14,14 @@ import modelengine.fel.tool.ToolFactoryRepository; import modelengine.fel.tool.model.transfer.DefinitionData; import modelengine.fel.tool.model.transfer.ToolData; -import modelengine.fel.tool.service.DefinitionService; import modelengine.fel.tool.service.ToolExecuteService; -import modelengine.fel.tool.service.ToolService; import modelengine.fitframework.annotation.Component; import modelengine.fitframework.annotation.Fit; import modelengine.fitframework.annotation.Fitable; import modelengine.fitframework.serialization.ObjectSerializer; import modelengine.fitframework.util.StringUtils; +import modelengine.jade.store.service.DefinitionService; +import modelengine.jade.store.service.ToolService; import java.util.Map; import java.util.Optional; diff --git a/carver/plugins/tool-execution/src/test/java/modelengine/jade/carver/tool/execution/support/DefaultToolExecuteServiceTest.java b/carver/plugins/tool-execution/src/test/java/modelengine/jade/carver/tool/execution/support/DefaultToolExecuteServiceTest.java index 87920552bf..aa697d9de7 100644 --- a/carver/plugins/tool-execution/src/test/java/modelengine/jade/carver/tool/execution/support/DefaultToolExecuteServiceTest.java +++ b/carver/plugins/tool-execution/src/test/java/modelengine/jade/carver/tool/execution/support/DefaultToolExecuteServiceTest.java @@ -17,10 +17,10 @@ import modelengine.fel.tool.ToolFactoryRepository; import modelengine.fel.tool.model.transfer.DefinitionData; import modelengine.fel.tool.model.transfer.ToolData; -import modelengine.fel.tool.service.DefinitionService; -import modelengine.fel.tool.service.ToolService; import modelengine.fit.serialization.json.jackson.JacksonObjectSerializer; import modelengine.fitframework.util.MapBuilder; +import modelengine.jade.store.service.DefinitionService; +import modelengine.jade.store.service.ToolService; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; diff --git a/carver/plugins/tool-repository-postgresql/pom.xml b/carver/plugins/tool-repository-postgresql/pom.xml index e0cd48094a..d0eb877bfe 100644 --- a/carver/plugins/tool-repository-postgresql/pom.xml +++ b/carver/plugins/tool-repository-postgresql/pom.xml @@ -45,9 +45,8 @@ 1.0.0-SNAPSHOT - org.fitframework.fel - tool-service - 3.5.0-M2.1 + modelengine.fit.jade.service + store-service @@ -110,7 +109,7 @@ ${fit.version} user - 3 + 1 diff --git a/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/repository/ToolRepository.java b/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/repository/ToolRepositoryInner.java similarity index 99% rename from carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/repository/ToolRepository.java rename to carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/repository/ToolRepositoryInner.java index 07472bf8ff..1ba49e0d17 100644 --- a/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/repository/ToolRepository.java +++ b/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/repository/ToolRepositoryInner.java @@ -18,7 +18,7 @@ * @author 王攀博 * @since 2024-04-27 */ -public interface ToolRepository { +public interface ToolRepositoryInner { /** * 添加工具。 * diff --git a/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/repository/support/DefaultToolRepository.java b/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/repository/support/DefaultToolRepository.java index fb46f20ff5..7a9edd1019 100644 --- a/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/repository/support/DefaultToolRepository.java +++ b/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/repository/support/DefaultToolRepository.java @@ -1,163 +1,132 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) 2025 Huawei Technologies Co., Ltd. All rights reserved. - * This file is a part of the ModelEngine Project. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ +/* + * Copyright (c) 2025 Huawei Technologies Co., Ltd. All rights reserved. + * This file is a part of the ModelEngine Project. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ package modelengine.jade.carver.tool.repository.pgsql.repository.support; +import static modelengine.fel.tool.info.schema.PluginSchema.TYPE; +import static modelengine.fel.tool.info.schema.ToolsSchema.PROPERTIES; +import static modelengine.fel.tool.info.schema.ToolsSchema.REQUIRED; import static modelengine.fitframework.inspection.Validation.notNull; +import modelengine.fel.core.tool.ToolInfo; import modelengine.fel.tool.Tool; -import modelengine.fel.tool.model.entity.ToolIdentifier; +import modelengine.fel.tool.ToolInfoEntity; +import modelengine.fel.tool.info.entity.ParameterEntity; +import modelengine.fel.tool.info.entity.SchemaEntity; +import modelengine.fel.tool.info.entity.ToolEntity; +import modelengine.fel.tool.info.schema.PluginSchema; +import modelengine.fel.tool.info.schema.ToolsSchema; +import modelengine.fel.tool.service.ToolRepository; import modelengine.fitframework.annotation.Component; -import modelengine.fitframework.annotation.Fit; -import modelengine.fitframework.log.Logger; +import modelengine.fitframework.annotation.Fitable; import modelengine.fitframework.serialization.ObjectSerializer; -import modelengine.fitframework.transaction.Transactional; -import modelengine.jade.carver.tool.repository.pgsql.mapper.ToolMapper; -import modelengine.jade.carver.tool.repository.pgsql.model.entity.ToolDo; -import modelengine.jade.carver.tool.repository.pgsql.repository.ToolRepository; +import modelengine.fitframework.util.ObjectUtils; +import modelengine.fitframework.util.StringUtils; +import modelengine.jade.carver.tool.repository.pgsql.repository.ToolRepositoryInner; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; /** - * 存入数据库的工具的实体类。 + * 提供工具的存储服务默认实现 * - * @author 李金绪 - * @since 2024/5/11 + * @author 邬涨财 + * @since 2025-05-12 */ @Component public class DefaultToolRepository implements ToolRepository { - private static final Logger log = Logger.get(DefaultToolRepository.class); - - private final ObjectSerializer serializer; - private final ToolMapper toolMapper; + private final ToolRepositoryInner toolRepositoryInner; /** * 通过 mapper 接口来初始化 {@link DefaultToolRepository} 的实例。 * - * @param serializer 表示序列化对象的 {@link ObjectSerializer}。 - * @param toolMapper 标识操作工具的 mapper 接口的 {@link ToolMapper}。 + * @param toolRepositoryInner 表示序列化对象的 {@link ObjectSerializer}。 */ - public DefaultToolRepository(@Fit(alias = "json") ObjectSerializer serializer, ToolMapper toolMapper) { - this.serializer = notNull(serializer, "The serializer cannot be null."); - this.toolMapper = notNull(toolMapper, "The tool mapper cannot be null."); - } - - @Override - @Transactional - public void addTool(Tool.Info info) { - ToolDo toolDo = ToolDo.info2Do(info.definitionGroupName(), info.groupName(), info, this.serializer); - this.toolMapper.addTool(toolDo); - } - - @Override - @Transactional - public void addTools(List infos) { - List toolDoList = infos.stream() - .map(info -> ToolDo.info2Do(info.definitionGroupName(), info.groupName(), info, this.serializer)) - .collect(Collectors.toList()); - this.toolMapper.addTools(toolDoList); - } - - @Override - @Transactional - public void addTools(String definitionGroupName, String groupName, List infos) { - List toolDoList = infos.stream() - .map(info -> ToolDo.info2Do(definitionGroupName, groupName, info, this.serializer)) - .collect(Collectors.toList()); - this.toolMapper.addTools(toolDoList); - } - - @Override - @Transactional - public void deleteTool(String uniqueName) { - this.toolMapper.deleteTool(uniqueName); - } - - @Override - @Transactional - public void deleteTools(List uniqueNames) { - this.toolMapper.deleteTools(uniqueNames); - } - - @Override - @Transactional - public void deleteTools(String definitionGroupName) { - this.toolMapper.deleteToolsByDefinitionGroupName(definitionGroupName); - } - - @Override - @Transactional - public void deleteTools(String definitionGroupName, String groupName) { - this.toolMapper.deleteToolsByGroupName(definitionGroupName, groupName); - } - - @Override - @Transactional - public String deleteToolByVersion(String uniqueName, String version) { - this.toolMapper.deleteToolByVersion(uniqueName, version); - return uniqueName; + public DefaultToolRepository(ToolRepositoryInner toolRepositoryInner) { + this.toolRepositoryInner = notNull(toolRepositoryInner, "The inner tool repository cannot be null."); } @Override - @Transactional - public void setLatest(String uniqueName, String version) { - this.toolMapper.setLatest(uniqueName, version); - } - - @Override - @Transactional - public void setNotLatest(String toolUniqueName) { - this.toolMapper.setNotLatest(toolUniqueName); - } - - @Override - public Optional getTool(String uniqueName) { - ToolDo toolDo = this.toolMapper.getToolByUniqueName(uniqueName); - if (toolDo != null) { - return Optional.of(ToolDo.do2Info(toolDo, this.serializer)); + @Fitable(id = "default") + public void addTool(ToolInfoEntity tool) { + ToolInfoEntity entity = this.getTool(tool.namespace(), tool.name()); + if (entity != null) { + return; } - return Optional.empty(); - } - - @Override - public List getTools(String definitionGroupName) { - return this.getToolInfos(this.toolMapper.getToolsByDefinitionGroupName(definitionGroupName)); - } - - private List getToolInfos(List toolDos) { - return toolDos.stream().map(toolDo -> ToolDo.do2Info(toolDo, this.serializer)).collect(Collectors.toList()); - } - - @Override - public List getTools(String definitionGroupName, String groupName) { - return this.getToolInfos(this.toolMapper.getToolsByGroupName(definitionGroupName, groupName)); - } - - @Override - public Optional getToolByVersion(String toolUniqueName, String version) { - ToolDo toolDo = this.toolMapper.getToolByVersion(toolUniqueName, version); - return Optional.ofNullable(toolDo).map(tool -> ToolDo.do2Info(tool, this.serializer)); - } - - @Override - public List getAllToolVersions(String toolUniqueName) { - List toolDos = this.toolMapper.getAllToolVersions(toolUniqueName); - return toolDos.stream().map(toolDo -> ToolDo.do2Info(toolDo, this.serializer)).collect(Collectors.toList()); - } - - @Override - public int getAllToolVersionsCount(String toolUniqueName) { - return this.toolMapper.getAllToolVersionsCount(toolUniqueName); - } - - @Override - public List getToolsByIdentifier(List toolIdentifiers) { - List toolDos = this.toolMapper.getToolsByIdentifier(toolIdentifiers); - return toolDos.stream().map(toolDo -> ToolDo.do2Info(toolDo, this.serializer)).collect(Collectors.toList()); + Tool.Info info = this.tool2Info(tool); + this.toolRepositoryInner.addTool(info); + } + + private Tool.Info tool2Info(ToolInfoEntity tool) { + return Tool.Info.custom() + .definitionGroupName(tool.definitionGroupName()) + .groupName(tool.namespace()) + .name(tool.name()) + .definitionName(tool.definitionName()) + .schema(tool.schema()) + .runnables(tool.runnables()) + .extensions(tool.extensions()) + .uniqueName(tool.uniqueName()) + .version(tool.version()) + .isLatest(tool.isLatest()) + .namespace(tool.namespace()) + .description(tool.description()) + .parameters(tool.parameters()) + .defaultParameterValues(tool.defaultParameterValues()) + .returnConverter(tool.returnConverter()) + .build(); + } + + @Override + @Fitable(id = "default") + public void deleteTool(String namespace, String toolName) { + String uniqueName = ToolInfo.identify(namespace, toolName); + this.toolRepositoryInner.deleteTool(uniqueName); + } + + @Override + @Fitable(id = "default") + public ToolInfoEntity getTool(String namespace, String toolName) { + String uniqueName = ToolInfo.identify(namespace, toolName); + Optional infoOptional = this.toolRepositoryInner.getTool(uniqueName); + return infoOptional.map(this::tool2Info).orElse(null); + } + + private ToolInfoEntity tool2Info(Tool.Info info) { + ToolEntity infoEntity = new ToolEntity(); + infoEntity.setNamespace(info.namespace()); + SchemaEntity schemaEntity = new SchemaEntity(); + schemaEntity.setName(ObjectUtils.cast(info.schema().get(ToolsSchema.NAME))); + schemaEntity.setDescription(ObjectUtils.cast(info.schema().get(PluginSchema.DESCRIPTION))); + schemaEntity.setParameters(this.getParameters(info)); + schemaEntity.setOrder(ObjectUtils.cast(info.schema().get(ToolsSchema.ORDER))); + schemaEntity.setRet(ObjectUtils.cast(info.schema().get(ToolsSchema.RETURN))); + schemaEntity.setParameterExtensions(ObjectUtils.cast(info.schema().get(ToolsSchema.PARAMETER_EXTENSIONS))); + infoEntity.setSchema(schemaEntity); + infoEntity.setRunnables(info.runnables()); + infoEntity.setExtensions(info.extensions()); + infoEntity.setDefinitionName(ObjectUtils.cast(info.definitionName())); + return new ToolInfoEntity(infoEntity); + } + + private ParameterEntity getParameters(Tool.Info info) { + Map paramsMap = ObjectUtils.cast(info.schema().get(ToolsSchema.PARAMETERS)); + ParameterEntity parameterEntity = new ParameterEntity(); + parameterEntity.setType(ObjectUtils.cast(paramsMap.get(TYPE))); + parameterEntity.setProperties(ObjectUtils.cast(paramsMap.get(PROPERTIES))); + parameterEntity.setRequired(ObjectUtils.cast(paramsMap.get(REQUIRED))); + return parameterEntity; + } + + @Override + @Fitable(id = "default") + public List listTool(String namespace) { + List infos = this.toolRepositoryInner.getTools(StringUtils.EMPTY, namespace); + return infos.stream().map(this::tool2Info).collect(Collectors.toList()); } } diff --git a/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/repository/support/DefaultToolRepositoryInner.java b/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/repository/support/DefaultToolRepositoryInner.java new file mode 100644 index 0000000000..0d77a29bcb --- /dev/null +++ b/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/repository/support/DefaultToolRepositoryInner.java @@ -0,0 +1,163 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) 2025 Huawei Technologies Co., Ltd. All rights reserved. + * This file is a part of the ModelEngine Project. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +package modelengine.jade.carver.tool.repository.pgsql.repository.support; + +import static modelengine.fitframework.inspection.Validation.notNull; + +import modelengine.fel.tool.Tool; +import modelengine.fel.tool.model.entity.ToolIdentifier; +import modelengine.fitframework.annotation.Component; +import modelengine.fitframework.annotation.Fit; +import modelengine.fitframework.log.Logger; +import modelengine.fitframework.serialization.ObjectSerializer; +import modelengine.fitframework.transaction.Transactional; +import modelengine.jade.carver.tool.repository.pgsql.mapper.ToolMapper; +import modelengine.jade.carver.tool.repository.pgsql.model.entity.ToolDo; +import modelengine.jade.carver.tool.repository.pgsql.repository.ToolRepositoryInner; + +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +/** + * 存入数据库的工具的实体类。 + * + * @author 李金绪 + * @since 2024-05-11 + */ +@Component +public class DefaultToolRepositoryInner implements ToolRepositoryInner { + private static final Logger log = Logger.get(DefaultToolRepositoryInner.class); + + private final ObjectSerializer serializer; + private final ToolMapper toolMapper; + + /** + * 通过 mapper 接口来初始化 {@link DefaultToolRepositoryInner} 的实例。 + * + * @param serializer 表示序列化对象的 {@link ObjectSerializer}。 + * @param toolMapper 标识操作工具的 mapper 接口的 {@link ToolMapper}。 + */ + public DefaultToolRepositoryInner(@Fit(alias = "json") ObjectSerializer serializer, ToolMapper toolMapper) { + this.serializer = notNull(serializer, "The serializer cannot be null."); + this.toolMapper = notNull(toolMapper, "The tool mapper cannot be null."); + } + + @Override + @Transactional + public void addTool(Tool.Info info) { + ToolDo toolDo = ToolDo.info2Do(info.definitionGroupName(), info.groupName(), info, this.serializer); + this.toolMapper.addTool(toolDo); + } + + @Override + @Transactional + public void addTools(List infos) { + List toolDoList = infos.stream() + .map(info -> ToolDo.info2Do(info.definitionGroupName(), info.groupName(), info, this.serializer)) + .collect(Collectors.toList()); + this.toolMapper.addTools(toolDoList); + } + + @Override + @Transactional + public void addTools(String definitionGroupName, String groupName, List infos) { + List toolDoList = infos.stream() + .map(info -> ToolDo.info2Do(definitionGroupName, groupName, info, this.serializer)) + .collect(Collectors.toList()); + this.toolMapper.addTools(toolDoList); + } + + @Override + @Transactional + public void deleteTool(String uniqueName) { + this.toolMapper.deleteTool(uniqueName); + } + + @Override + @Transactional + public void deleteTools(List uniqueNames) { + this.toolMapper.deleteTools(uniqueNames); + } + + @Override + @Transactional + public void deleteTools(String definitionGroupName) { + this.toolMapper.deleteToolsByDefinitionGroupName(definitionGroupName); + } + + @Override + @Transactional + public void deleteTools(String definitionGroupName, String groupName) { + this.toolMapper.deleteToolsByGroupName(definitionGroupName, groupName); + } + + @Override + @Transactional + public String deleteToolByVersion(String uniqueName, String version) { + this.toolMapper.deleteToolByVersion(uniqueName, version); + return uniqueName; + } + + @Override + @Transactional + public void setLatest(String uniqueName, String version) { + this.toolMapper.setLatest(uniqueName, version); + } + + @Override + @Transactional + public void setNotLatest(String toolUniqueName) { + this.toolMapper.setNotLatest(toolUniqueName); + } + + @Override + public Optional getTool(String uniqueName) { + ToolDo toolDo = this.toolMapper.getToolByUniqueName(uniqueName); + if (toolDo != null) { + return Optional.of(ToolDo.do2Info(toolDo, this.serializer)); + } + return Optional.empty(); + } + + @Override + public List getTools(String definitionGroupName) { + return this.getToolInfos(this.toolMapper.getToolsByDefinitionGroupName(definitionGroupName)); + } + + private List getToolInfos(List toolDos) { + return toolDos.stream().map(toolDo -> ToolDo.do2Info(toolDo, this.serializer)).collect(Collectors.toList()); + } + + @Override + public List getTools(String definitionGroupName, String groupName) { + return this.getToolInfos(this.toolMapper.getToolsByGroupName(definitionGroupName, groupName)); + } + + @Override + public Optional getToolByVersion(String toolUniqueName, String version) { + ToolDo toolDo = this.toolMapper.getToolByVersion(toolUniqueName, version); + return Optional.ofNullable(toolDo).map(tool -> ToolDo.do2Info(tool, this.serializer)); + } + + @Override + public List getAllToolVersions(String toolUniqueName) { + List toolDos = this.toolMapper.getAllToolVersions(toolUniqueName); + return toolDos.stream().map(toolDo -> ToolDo.do2Info(toolDo, this.serializer)).collect(Collectors.toList()); + } + + @Override + public int getAllToolVersionsCount(String toolUniqueName) { + return this.toolMapper.getAllToolVersionsCount(toolUniqueName); + } + + @Override + public List getToolsByIdentifier(List toolIdentifiers) { + List toolDos = this.toolMapper.getToolsByIdentifier(toolIdentifiers); + return toolDos.stream().map(toolDo -> ToolDo.do2Info(toolDo, this.serializer)).collect(Collectors.toList()); + } +} diff --git a/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultDefinitionGroupService.java b/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultDefinitionGroupService.java index 4bf545f67c..07136735ca 100644 --- a/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultDefinitionGroupService.java +++ b/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultDefinitionGroupService.java @@ -10,13 +10,13 @@ import modelengine.fel.tool.model.transfer.DefinitionData; import modelengine.fel.tool.model.transfer.DefinitionGroupData; -import modelengine.fel.tool.service.DefinitionGroupService; -import modelengine.fel.tool.service.DefinitionService; import modelengine.fitframework.annotation.Component; import modelengine.fitframework.annotation.Fitable; import modelengine.fitframework.transaction.Transactional; import modelengine.fitframework.util.StringUtils; import modelengine.jade.carver.tool.repository.pgsql.repository.DefinitionGroupRepository; +import modelengine.jade.store.service.DefinitionGroupService; +import modelengine.jade.store.service.DefinitionService; import java.util.List; import java.util.Optional; diff --git a/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultDefinitionService.java b/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultDefinitionService.java index 9967ab14cf..a98571bf61 100644 --- a/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultDefinitionService.java +++ b/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultDefinitionService.java @@ -10,11 +10,11 @@ import modelengine.fel.tool.Tool; import modelengine.fel.tool.model.transfer.DefinitionData; -import modelengine.fel.tool.service.DefinitionService; import modelengine.fitframework.annotation.Component; import modelengine.fitframework.annotation.Fitable; import modelengine.fitframework.transaction.Transactional; import modelengine.jade.carver.tool.repository.pgsql.repository.DefinitionRepository; +import modelengine.jade.store.service.DefinitionService; import java.util.List; import java.util.stream.Collectors; diff --git a/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultToolGroupService.java b/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultToolGroupService.java index 665a2d8d2f..21df660eb3 100644 --- a/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultToolGroupService.java +++ b/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultToolGroupService.java @@ -10,13 +10,13 @@ import modelengine.fel.tool.model.transfer.ToolData; import modelengine.fel.tool.model.transfer.ToolGroupData; -import modelengine.fel.tool.service.ToolGroupService; -import modelengine.fel.tool.service.ToolService; import modelengine.fitframework.annotation.Component; import modelengine.fitframework.annotation.Fitable; import modelengine.fitframework.transaction.Transactional; import modelengine.fitframework.util.StringUtils; import modelengine.jade.carver.tool.repository.pgsql.repository.ToolGroupRepository; +import modelengine.jade.store.service.ToolGroupService; +import modelengine.jade.store.service.ToolService; import java.util.List; import java.util.Objects; diff --git a/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultToolService.java b/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultToolService.java index 727d31a8b0..3d9fa81760 100644 --- a/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultToolService.java +++ b/carver/plugins/tool-repository-postgresql/src/main/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultToolService.java @@ -12,14 +12,14 @@ import modelengine.fel.tool.model.ListResult; import modelengine.fel.tool.model.entity.ToolIdentifier; import modelengine.fel.tool.model.transfer.ToolData; -import modelengine.fel.tool.service.DefinitionService; -import modelengine.fel.tool.service.ToolService; import modelengine.fitframework.annotation.Component; import modelengine.fitframework.annotation.Fitable; import modelengine.fitframework.exception.FitException; import modelengine.fitframework.log.Logger; import modelengine.fitframework.transaction.Transactional; -import modelengine.jade.carver.tool.repository.pgsql.repository.ToolRepository; +import modelengine.jade.carver.tool.repository.pgsql.repository.ToolRepositoryInner; +import modelengine.jade.store.service.DefinitionService; +import modelengine.jade.store.service.ToolService; import java.util.List; import java.util.Optional; @@ -36,16 +36,16 @@ public class DefaultToolService implements ToolService { private static final Logger log = Logger.get(DefaultToolService.class); private static final String FITABLE_ID = "tool-repository-pgsql"; - private final ToolRepository toolRepo; + private final ToolRepositoryInner toolRepo; private final DefinitionService definitionService; /** * 通过持久层接口来初始化 {@link DefaultToolService} 的实例。 * - * @param toolRepo 表示持久层实例的 {@link ToolRepository}。 + * @param toolRepo 表示持久层实例的 {@link ToolRepositoryInner}。 * @param definitionService 表示定义服务的 {@link DefinitionService}。 */ - public DefaultToolService(ToolRepository toolRepo, DefinitionService definitionService) { + public DefaultToolService(ToolRepositoryInner toolRepo, DefinitionService definitionService) { this.toolRepo = toolRepo; this.definitionService = definitionService; } diff --git a/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/integration/DefinitionGroupIntegrationTest.java b/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/integration/DefinitionGroupIntegrationTest.java index 5c06414437..cc172b489d 100644 --- a/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/integration/DefinitionGroupIntegrationTest.java +++ b/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/integration/DefinitionGroupIntegrationTest.java @@ -10,13 +10,13 @@ import static org.assertj.core.api.Assertions.assertThat; import modelengine.fel.tool.model.transfer.DefinitionGroupData; -import modelengine.fel.tool.service.DefinitionGroupService; import modelengine.fitframework.annotation.Fit; import modelengine.fitframework.test.annotation.IntegrationTest; import modelengine.fitframework.test.annotation.Spy; import modelengine.fitframework.test.annotation.Sql; import modelengine.jade.carver.tool.repository.pgsql.mapper.DefinitionMapper; import modelengine.jade.carver.tool.repository.pgsql.model.entity.DefinitionDo; +import modelengine.jade.store.service.DefinitionGroupService; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/integration/DefinitionIntegrationTest.java b/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/integration/DefinitionIntegrationTest.java index f5c4db33f4..4a399e738d 100644 --- a/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/integration/DefinitionIntegrationTest.java +++ b/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/integration/DefinitionIntegrationTest.java @@ -9,7 +9,6 @@ import static org.assertj.core.api.Assertions.assertThat; import modelengine.fel.tool.model.transfer.DefinitionData; -import modelengine.fel.tool.service.DefinitionService; import modelengine.fitframework.annotation.Fit; import modelengine.fitframework.test.annotation.IntegrationTest; import modelengine.fitframework.test.annotation.Spy; @@ -17,6 +16,7 @@ import modelengine.jade.carver.tool.repository.pgsql.ToolDataBuilder; import modelengine.jade.carver.tool.repository.pgsql.mapper.DefinitionMapper; import modelengine.jade.carver.tool.repository.pgsql.model.entity.DefinitionDo; +import modelengine.jade.store.service.DefinitionService; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/integration/ToolGroupIntegrationTest.java b/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/integration/ToolGroupIntegrationTest.java index 7a50ef806c..5e75c1104a 100644 --- a/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/integration/ToolGroupIntegrationTest.java +++ b/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/integration/ToolGroupIntegrationTest.java @@ -12,8 +12,6 @@ import modelengine.fel.tool.model.transfer.DefinitionData; import modelengine.fel.tool.model.transfer.ToolGroupData; -import modelengine.fel.tool.service.DefinitionService; -import modelengine.fel.tool.service.ToolGroupService; import modelengine.fitframework.annotation.Fit; import modelengine.fitframework.serialization.ObjectSerializer; import modelengine.fitframework.test.annotation.IntegrationTest; @@ -24,6 +22,8 @@ import modelengine.jade.carver.tool.repository.pgsql.mapper.ToolMapper; import modelengine.jade.carver.tool.repository.pgsql.model.entity.DefinitionDo; import modelengine.jade.carver.tool.repository.pgsql.model.entity.ToolDo; +import modelengine.jade.store.service.DefinitionService; +import modelengine.jade.store.service.ToolGroupService; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/integration/ToolIntegrationTest.java b/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/integration/ToolIntegrationTest.java index 9e1a392517..23aed96504 100644 --- a/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/integration/ToolIntegrationTest.java +++ b/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/integration/ToolIntegrationTest.java @@ -15,8 +15,6 @@ import modelengine.fel.tool.model.entity.ToolIdentifier; import modelengine.fel.tool.model.transfer.DefinitionData; import modelengine.fel.tool.model.transfer.ToolData; -import modelengine.fel.tool.service.DefinitionService; -import modelengine.fel.tool.service.ToolService; import modelengine.fitframework.annotation.Fit; import modelengine.fitframework.serialization.ObjectSerializer; import modelengine.fitframework.test.annotation.IntegrationTest; @@ -27,6 +25,8 @@ import modelengine.jade.carver.tool.repository.pgsql.mapper.ToolMapper; import modelengine.jade.carver.tool.repository.pgsql.model.entity.DefinitionDo; import modelengine.jade.carver.tool.repository.pgsql.model.entity.ToolDo; +import modelengine.jade.store.service.DefinitionService; +import modelengine.jade.store.service.ToolService; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultDefinitionGroupServiceTest.java b/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultDefinitionGroupServiceTest.java index ccbedbc8b6..c9d8f095dc 100644 --- a/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultDefinitionGroupServiceTest.java +++ b/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultDefinitionGroupServiceTest.java @@ -12,9 +12,9 @@ import static org.mockito.Mockito.verify; import modelengine.fel.tool.model.transfer.DefinitionGroupData; -import modelengine.fel.tool.service.DefinitionService; import modelengine.fitframework.util.StringUtils; import modelengine.jade.carver.tool.repository.pgsql.repository.DefinitionGroupRepository; +import modelengine.jade.store.service.DefinitionService; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; diff --git a/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultToolGroupServiceTest.java b/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultToolGroupServiceTest.java index 3f6d619278..951a11003d 100644 --- a/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultToolGroupServiceTest.java +++ b/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultToolGroupServiceTest.java @@ -12,9 +12,9 @@ import static org.mockito.Mockito.verify; import modelengine.fel.tool.model.transfer.ToolGroupData; -import modelengine.fel.tool.service.ToolService; import modelengine.fitframework.util.StringUtils; import modelengine.jade.carver.tool.repository.pgsql.repository.ToolGroupRepository; +import modelengine.jade.store.service.ToolService; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; diff --git a/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultToolServiceTest.java b/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultToolServiceTest.java index 1c1221cb2b..b79b0e6605 100644 --- a/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultToolServiceTest.java +++ b/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/service/DefaultToolServiceTest.java @@ -15,7 +15,7 @@ import modelengine.fit.serialization.json.jackson.JacksonObjectSerializer; import modelengine.fitframework.serialization.ObjectSerializer; import modelengine.jade.carver.tool.repository.pgsql.model.entity.ToolDo; -import modelengine.jade.carver.tool.repository.pgsql.repository.ToolRepository; +import modelengine.jade.carver.tool.repository.pgsql.repository.ToolRepositoryInner; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; @@ -46,7 +46,7 @@ public class DefaultToolServiceTest { private DefaultToolService toolService; @Mock - private ToolRepository toolRepository; + private ToolRepositoryInner toolRepositoryInner; @BeforeEach void setUp() { @@ -89,7 +89,7 @@ private ToolDo mockToolDo() { void shouldSuccessWhenAddTool() { ToolData toolData = mockToolData(); this.toolService.addTools(Collections.singletonList(toolData)); - verify(toolRepository).addTools(Mockito.anyList()); + verify(toolRepositoryInner).addTools(Mockito.anyList()); } @Test @@ -97,7 +97,7 @@ void shouldSuccessWhenAddTool() { void shouldSuccessWhenDeleteTool() { List uniqueNames = new ArrayList<>(); this.toolService.deleteTools(uniqueNames); - verify(toolRepository).deleteTools(uniqueNames); + verify(toolRepositoryInner).deleteTools(uniqueNames); } @Test @@ -105,7 +105,7 @@ void shouldSuccessWhenDeleteTool() { void shouldSuccessWhenGetTool() { String uniqueName = "testUniqueName"; ToolDo toolDo = mockToolDo(); - Mockito.when(this.toolRepository.getTool(uniqueName)) + Mockito.when(this.toolRepositoryInner.getTool(uniqueName)) .thenReturn(Optional.of(ToolDo.do2Info(toolDo, this.serializer))); ToolData toolData = this.toolService.getTool(uniqueName); assertThat(toolData.getUniqueName()).isEqualTo(uniqueName); @@ -117,7 +117,7 @@ void shouldSuccessWhenGetToolByVersion() { String uniqueName = "testUniqueName"; String version = "version"; ToolDo toolDo = mockToolDo(); - Mockito.when(this.toolRepository.getToolByVersion(uniqueName, version)) + Mockito.when(this.toolRepositoryInner.getToolByVersion(uniqueName, version)) .thenReturn(Optional.of(ToolDo.do2Info(toolDo, this.serializer))); assertThat(this.toolService.getToolByVersion(uniqueName, version).getVersion()).isEqualTo(version); } @@ -129,12 +129,12 @@ void shouldSuccessWhenUpgradeTool() { String version = "version"; ToolDo toolDo = mockToolDo(); ToolData toolData = this.mockToolData(); - Mockito.when(this.toolRepository.getTool(toolData.getUniqueName())) + Mockito.when(this.toolRepositoryInner.getTool(toolData.getUniqueName())) .thenReturn(Optional.of(ToolDo.do2Info(toolDo, this.serializer))); - doNothing().when(this.toolRepository).setNotLatest(toolData.getUniqueName()); - Mockito.when(this.toolRepository.getToolByVersion(toolData.getUniqueName(), toolData.getVersion())) + doNothing().when(this.toolRepositoryInner).setNotLatest(toolData.getUniqueName()); + Mockito.when(this.toolRepositoryInner.getToolByVersion(toolData.getUniqueName(), toolData.getVersion())) .thenReturn(Optional.of(ToolDo.do2Info(toolDo, this.serializer))); - doNothing().when(this.toolRepository).addTool(any()); + doNothing().when(this.toolRepositoryInner).addTool(any()); assertThat(this.toolService.upgradeTool(toolData)).isEqualTo(toolData.getUniqueName()); } } diff --git a/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/support/DefaultToolRepositoryTest.java b/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/support/DefaultToolRepositoryInnerTest.java similarity index 90% rename from carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/support/DefaultToolRepositoryTest.java rename to carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/support/DefaultToolRepositoryInnerTest.java index a1e7962df6..a24d77c389 100644 --- a/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/support/DefaultToolRepositoryTest.java +++ b/carver/plugins/tool-repository-postgresql/src/test/java/modelengine/jade/carver/tool/repository/pgsql/support/DefaultToolRepositoryInnerTest.java @@ -9,7 +9,7 @@ import static org.mockito.Mockito.verify; import modelengine.fel.tool.Tool; -import modelengine.jade.carver.tool.repository.pgsql.repository.support.DefaultToolRepository; +import modelengine.jade.carver.tool.repository.pgsql.repository.support.DefaultToolRepositoryInner; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; @@ -22,15 +22,15 @@ import java.util.List; /** - * 表示 {@link DefaultToolRepository} 的单元测试。 + * 表示 {@link DefaultToolRepositoryInner} 的单元测试。 * * @author 鲁为 * @since 2024-08-08 */ @DisplayName("测试 DefaultToolRepository") -public class DefaultToolRepositoryTest { +public class DefaultToolRepositoryInnerTest { @Mock - private DefaultToolRepository toolRepository; + private DefaultToolRepositoryInner toolRepository; @BeforeEach void setUp() { diff --git a/store/plugins/store-repository-postgresql/src/main/java/modelengine/jade/store/repository/pgsql/controller/ToolController.java b/store/plugins/store-repository-postgresql/src/main/java/modelengine/jade/store/repository/pgsql/controller/ToolController.java index 5a71c9897f..9d930cc22d 100644 --- a/store/plugins/store-repository-postgresql/src/main/java/modelengine/jade/store/repository/pgsql/controller/ToolController.java +++ b/store/plugins/store-repository-postgresql/src/main/java/modelengine/jade/store/repository/pgsql/controller/ToolController.java @@ -14,7 +14,7 @@ import modelengine.fel.tool.model.ListResult; import modelengine.fel.tool.model.transfer.DefinitionGroupData; -import modelengine.fel.tool.service.ToolService; +import modelengine.jade.store.service.ToolService; import modelengine.fit.http.annotation.GetMapping; import modelengine.fit.http.annotation.PathVariable; import modelengine.fit.http.annotation.RequestMapping; diff --git a/store/plugins/store-repository-postgresql/src/main/java/modelengine/jade/store/repository/pgsql/service/DefaultAppService.java b/store/plugins/store-repository-postgresql/src/main/java/modelengine/jade/store/repository/pgsql/service/DefaultAppService.java index 5700a334bb..4ab29fc48e 100644 --- a/store/plugins/store-repository-postgresql/src/main/java/modelengine/jade/store/repository/pgsql/service/DefaultAppService.java +++ b/store/plugins/store-repository-postgresql/src/main/java/modelengine/jade/store/repository/pgsql/service/DefaultAppService.java @@ -12,9 +12,6 @@ import modelengine.fel.tool.ToolSchema; import modelengine.fel.tool.model.transfer.ToolData; -import modelengine.fel.tool.service.DefinitionGroupService; -import modelengine.fel.tool.service.ToolGroupService; -import modelengine.fel.tool.service.ToolService; import modelengine.fitframework.annotation.Component; import modelengine.fitframework.annotation.Fitable; import modelengine.fitframework.exception.FitException; @@ -30,7 +27,10 @@ import modelengine.jade.store.repository.pgsql.entity.AppDo; import modelengine.jade.store.repository.pgsql.repository.AppRepository; import modelengine.jade.store.service.AppService; +import modelengine.jade.store.service.DefinitionGroupService; import modelengine.jade.store.service.TagService; +import modelengine.jade.store.service.ToolGroupService; +import modelengine.jade.store.service.ToolService; import java.util.ArrayList; import java.util.Collections; diff --git a/store/plugins/store-repository-postgresql/src/main/java/modelengine/jade/store/repository/pgsql/service/DefaultPluginService.java b/store/plugins/store-repository-postgresql/src/main/java/modelengine/jade/store/repository/pgsql/service/DefaultPluginService.java index 856e4d32d7..fd7c8ab137 100644 --- a/store/plugins/store-repository-postgresql/src/main/java/modelengine/jade/store/repository/pgsql/service/DefaultPluginService.java +++ b/store/plugins/store-repository-postgresql/src/main/java/modelengine/jade/store/repository/pgsql/service/DefaultPluginService.java @@ -10,8 +10,6 @@ import static modelengine.jade.store.repository.pgsql.entity.PluginDo.convertToPluginData; import modelengine.fel.tool.model.transfer.DefinitionGroupData; -import modelengine.fel.tool.service.DefinitionGroupService; -import modelengine.fel.tool.service.ToolGroupService; import modelengine.fitframework.annotation.Component; import modelengine.fitframework.annotation.Fit; import modelengine.fitframework.annotation.Fitable; @@ -27,8 +25,10 @@ import modelengine.jade.store.entity.transfer.PluginToolData; import modelengine.jade.store.repository.pgsql.entity.PluginDo; import modelengine.jade.store.repository.pgsql.repository.PluginRepository; +import modelengine.jade.store.service.DefinitionGroupService; import modelengine.jade.store.service.PluginService; import modelengine.jade.store.service.PluginToolService; +import modelengine.jade.store.service.ToolGroupService; import modelengine.jade.store.service.support.DeployStatus; import java.util.List; diff --git a/store/plugins/store-repository-postgresql/src/main/java/modelengine/jade/store/repository/pgsql/service/DefaultPluginToolService.java b/store/plugins/store-repository-postgresql/src/main/java/modelengine/jade/store/repository/pgsql/service/DefaultPluginToolService.java index 372e4f5517..a3a238cd35 100644 --- a/store/plugins/store-repository-postgresql/src/main/java/modelengine/jade/store/repository/pgsql/service/DefaultPluginToolService.java +++ b/store/plugins/store-repository-postgresql/src/main/java/modelengine/jade/store/repository/pgsql/service/DefaultPluginToolService.java @@ -9,9 +9,6 @@ import static modelengine.fitframework.inspection.Validation.notNull; import modelengine.fel.tool.model.transfer.ToolData; -import modelengine.fel.tool.service.DefinitionGroupService; -import modelengine.fel.tool.service.ToolGroupService; -import modelengine.fel.tool.service.ToolService; import modelengine.fitframework.annotation.Component; import modelengine.fitframework.annotation.Fitable; import modelengine.fitframework.exception.FitException; @@ -24,8 +21,11 @@ import modelengine.jade.store.entity.transfer.PluginToolData; import modelengine.jade.store.repository.pgsql.entity.PluginToolDo; import modelengine.jade.store.repository.pgsql.repository.PluginToolRepository; +import modelengine.jade.store.service.DefinitionGroupService; import modelengine.jade.store.service.PluginToolService; import modelengine.jade.store.service.TagService; +import modelengine.jade.store.service.ToolGroupService; +import modelengine.jade.store.service.ToolService; import java.util.ArrayList; import java.util.Collections; diff --git a/store/plugins/store-repository-postgresql/src/main/java/modelengine/jade/store/repository/pgsql/service/DefaultStoreToolService.java b/store/plugins/store-repository-postgresql/src/main/java/modelengine/jade/store/repository/pgsql/service/DefaultStoreToolService.java index 5d3db4c0f5..bfbcd39337 100644 --- a/store/plugins/store-repository-postgresql/src/main/java/modelengine/jade/store/repository/pgsql/service/DefaultStoreToolService.java +++ b/store/plugins/store-repository-postgresql/src/main/java/modelengine/jade/store/repository/pgsql/service/DefaultStoreToolService.java @@ -13,8 +13,6 @@ import modelengine.fel.tool.model.entity.ToolIdentifier; import modelengine.fel.tool.model.transfer.DefinitionGroupData; import modelengine.fel.tool.model.transfer.ToolData; -import modelengine.fel.tool.service.DefinitionGroupService; -import modelengine.fel.tool.service.ToolService; import modelengine.fitframework.annotation.Component; import modelengine.fitframework.annotation.Fitable; import modelengine.fitframework.util.CollectionUtils; @@ -22,8 +20,10 @@ import modelengine.jade.store.entity.query.ToolQuery; import modelengine.jade.store.entity.transfer.StoreToolData; import modelengine.jade.store.repository.pgsql.repository.StoreToolRepository; +import modelengine.jade.store.service.DefinitionGroupService; import modelengine.jade.store.service.StoreToolService; import modelengine.jade.store.service.TagService; +import modelengine.jade.store.service.ToolService; import java.util.Collections; import java.util.HashSet; diff --git a/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/integration/AppIntegrationTest.java b/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/integration/AppIntegrationTest.java index d2b9ce68e0..261cb657e9 100644 --- a/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/integration/AppIntegrationTest.java +++ b/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/integration/AppIntegrationTest.java @@ -17,14 +17,14 @@ import modelengine.fitframework.test.annotation.Mock; import modelengine.fitframework.test.annotation.Spy; import modelengine.fitframework.test.annotation.Sql; -import modelengine.fel.tool.service.DefinitionGroupService; -import modelengine.fel.tool.service.ToolGroupService; -import modelengine.fel.tool.service.ToolService; import modelengine.jade.carver.ListResult; import modelengine.jade.store.entity.query.AppQuery; import modelengine.jade.store.entity.transfer.AppPublishData; import modelengine.jade.store.repository.pgsql.mapper.AppMapper; import modelengine.jade.store.service.AppService; +import modelengine.jade.store.service.DefinitionGroupService; +import modelengine.jade.store.service.ToolGroupService; +import modelengine.jade.store.service.ToolService; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/integration/PluginIntegrationTest.java b/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/integration/PluginIntegrationTest.java index b2ad0e0d80..6134a9c99a 100644 --- a/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/integration/PluginIntegrationTest.java +++ b/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/integration/PluginIntegrationTest.java @@ -18,13 +18,13 @@ import modelengine.fitframework.test.annotation.Sql; import modelengine.fitframework.util.StringUtils; import modelengine.fel.tool.model.transfer.ToolData; -import modelengine.fel.tool.service.DefinitionGroupService; -import modelengine.fel.tool.service.ToolGroupService; -import modelengine.fel.tool.service.ToolService; import modelengine.jade.store.entity.query.PluginQuery; import modelengine.jade.store.entity.transfer.PluginData; import modelengine.jade.store.entity.transfer.PluginToolData; +import modelengine.jade.store.service.DefinitionGroupService; import modelengine.jade.store.service.PluginService; +import modelengine.jade.store.service.ToolGroupService; +import modelengine.jade.store.service.ToolService; import modelengine.jade.store.service.support.DeployStatus; import org.junit.jupiter.api.DisplayName; diff --git a/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/integration/PluginToolIntegrationTest.java b/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/integration/PluginToolIntegrationTest.java index 03cd7bea22..485baffef8 100644 --- a/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/integration/PluginToolIntegrationTest.java +++ b/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/integration/PluginToolIntegrationTest.java @@ -17,12 +17,12 @@ import modelengine.fitframework.test.annotation.Mock; import modelengine.fitframework.test.annotation.Sql; import modelengine.fitframework.util.StringUtils; -import modelengine.fel.tool.service.DefinitionGroupService; -import modelengine.fel.tool.service.ToolGroupService; -import modelengine.fel.tool.service.ToolService; import modelengine.jade.store.entity.query.PluginToolQuery; import modelengine.jade.store.entity.transfer.PluginToolData; +import modelengine.jade.store.service.DefinitionGroupService; import modelengine.jade.store.service.PluginToolService; +import modelengine.jade.store.service.ToolGroupService; +import modelengine.jade.store.service.ToolService; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/integration/ToolIntegrationTest.java b/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/integration/ToolIntegrationTest.java index 2df17f408b..3eec55bbdd 100644 --- a/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/integration/ToolIntegrationTest.java +++ b/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/integration/ToolIntegrationTest.java @@ -15,15 +15,15 @@ import modelengine.fel.tool.model.ListResult; import modelengine.fel.tool.model.transfer.DefinitionGroupData; import modelengine.fel.tool.model.transfer.ToolData; -import modelengine.fel.tool.service.DefinitionGroupService; -import modelengine.fel.tool.service.ToolService; import modelengine.fitframework.annotation.Fit; import modelengine.fitframework.test.annotation.IntegrationTest; import modelengine.fitframework.test.annotation.Mock; import modelengine.fitframework.test.annotation.Sql; import modelengine.jade.store.entity.query.ToolQuery; import modelengine.jade.store.entity.transfer.StoreToolData; +import modelengine.jade.store.service.DefinitionGroupService; import modelengine.jade.store.service.StoreToolService; +import modelengine.jade.store.service.ToolService; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; diff --git a/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/service/DefaultPluginServiceTest.java b/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/service/DefaultPluginServiceTest.java index dba6fd72d0..dfcb12c3e4 100644 --- a/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/service/DefaultPluginServiceTest.java +++ b/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/service/DefaultPluginServiceTest.java @@ -12,14 +12,14 @@ import modelengine.fit.serialization.json.jackson.JacksonObjectSerializer; import modelengine.fitframework.serialization.ObjectSerializer; -import modelengine.fel.tool.service.DefinitionGroupService; -import modelengine.fel.tool.service.ToolGroupService; import modelengine.jade.store.entity.query.PluginQuery; import modelengine.jade.store.entity.transfer.PluginData; import modelengine.jade.store.entity.transfer.PluginToolData; import modelengine.jade.store.repository.pgsql.entity.PluginDo; import modelengine.jade.store.repository.pgsql.repository.PluginRepository; +import modelengine.jade.store.service.DefinitionGroupService; import modelengine.jade.store.service.PluginToolService; +import modelengine.jade.store.service.ToolGroupService; import modelengine.jade.store.service.support.DeployStatus; import org.junit.jupiter.api.BeforeEach; diff --git a/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/service/DefaultPluginToolServiceTest.java b/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/service/DefaultPluginToolServiceTest.java index 8aa47bee09..b78d4c9915 100644 --- a/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/service/DefaultPluginToolServiceTest.java +++ b/store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/service/DefaultPluginToolServiceTest.java @@ -10,14 +10,14 @@ import static org.mockito.Mockito.mock; import modelengine.fel.tool.model.transfer.ToolData; -import modelengine.fel.tool.service.DefinitionGroupService; -import modelengine.fel.tool.service.ToolGroupService; -import modelengine.fel.tool.service.ToolService; import modelengine.jade.store.entity.query.PluginToolQuery; import modelengine.jade.store.entity.transfer.PluginToolData; import modelengine.jade.store.repository.pgsql.entity.PluginToolDo; import modelengine.jade.store.repository.pgsql.repository.PluginToolRepository; +import modelengine.jade.store.service.DefinitionGroupService; import modelengine.jade.store.service.TagService; +import modelengine.jade.store.service.ToolGroupService; +import modelengine.jade.store.service.ToolService; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; diff --git a/store/plugins/store-tool-uploader/src/main/java/modelengine/jade/store/tool/upload/service/impl/PluginUploadServiceImpl.java b/store/plugins/store-tool-uploader/src/main/java/modelengine/jade/store/tool/upload/service/impl/PluginUploadServiceImpl.java index c44b547bed..d174a6aaec 100644 --- a/store/plugins/store-tool-uploader/src/main/java/modelengine/jade/store/tool/upload/service/impl/PluginUploadServiceImpl.java +++ b/store/plugins/store-tool-uploader/src/main/java/modelengine/jade/store/tool/upload/service/impl/PluginUploadServiceImpl.java @@ -46,8 +46,6 @@ import modelengine.fel.tool.info.entity.ToolJsonEntity; import modelengine.fel.tool.model.transfer.DefinitionGroupData; import modelengine.fel.tool.model.transfer.ToolGroupData; -import modelengine.fel.tool.service.DefinitionGroupService; -import modelengine.fel.tool.service.ToolGroupService; import modelengine.fit.http.entity.NamedEntity; import modelengine.fitframework.annotation.Component; import modelengine.fitframework.annotation.Fit; @@ -58,7 +56,9 @@ import modelengine.jade.common.exception.ModelEngineException; import modelengine.jade.store.code.PluginRetCode; import modelengine.jade.store.entity.transfer.PluginData; +import modelengine.jade.store.service.DefinitionGroupService; import modelengine.jade.store.service.PluginService; +import modelengine.jade.store.service.ToolGroupService; import modelengine.jade.store.service.support.DeployStatus; import modelengine.jade.store.tool.upload.config.PluginUploadConstraintConfig; import modelengine.jade.store.tool.upload.service.PluginUploadService; diff --git a/store/plugins/store-tool-uploader/src/main/java/modelengine/jade/store/tool/upload/support/BasicValidator.java b/store/plugins/store-tool-uploader/src/main/java/modelengine/jade/store/tool/upload/support/BasicValidator.java index 0c32128c54..9dfd84bcc3 100644 --- a/store/plugins/store-tool-uploader/src/main/java/modelengine/jade/store/tool/upload/support/BasicValidator.java +++ b/store/plugins/store-tool-uploader/src/main/java/modelengine/jade/store/tool/upload/support/BasicValidator.java @@ -27,8 +27,6 @@ import modelengine.fel.tool.model.transfer.DefinitionGroupData; import modelengine.fel.tool.model.transfer.ToolData; import modelengine.fel.tool.model.transfer.ToolGroupData; -import modelengine.fel.tool.service.DefinitionGroupService; -import modelengine.fel.tool.service.ToolGroupService; import modelengine.fitframework.serialization.ObjectSerializer; import modelengine.fitframework.util.CollectionUtils; import modelengine.fitframework.util.SecurityUtils; @@ -38,7 +36,9 @@ import modelengine.jade.store.code.PluginRetCode; import modelengine.jade.store.entity.query.PluginQuery; import modelengine.jade.store.entity.transfer.PluginData; +import modelengine.jade.store.service.DefinitionGroupService; import modelengine.jade.store.service.PluginService; +import modelengine.jade.store.service.ToolGroupService; import modelengine.jade.store.tool.upload.config.PluginUploadConstraintConfig; import java.io.File; diff --git a/store/plugins/store-tool-uploader/src/test/java/modelengine/jade/store/tool/upload/service/PluginUploadServiceImplTest.java b/store/plugins/store-tool-uploader/src/test/java/modelengine/jade/store/tool/upload/service/PluginUploadServiceImplTest.java index ce22819ef8..0bc4264444 100644 --- a/store/plugins/store-tool-uploader/src/test/java/modelengine/jade/store/tool/upload/service/PluginUploadServiceImplTest.java +++ b/store/plugins/store-tool-uploader/src/test/java/modelengine/jade/store/tool/upload/service/PluginUploadServiceImplTest.java @@ -27,12 +27,12 @@ import modelengine.fitframework.util.FileUtils; import modelengine.fel.tool.model.transfer.DefinitionGroupData; import modelengine.fel.tool.model.transfer.ToolGroupData; -import modelengine.fel.tool.service.DefinitionGroupService; -import modelengine.fel.tool.service.ToolGroupService; import modelengine.jade.common.exception.ModelEngineException; import modelengine.jade.store.entity.transfer.PluginData; import modelengine.jade.store.entity.transfer.PluginToolData; +import modelengine.jade.store.service.DefinitionGroupService; import modelengine.jade.store.service.PluginService; +import modelengine.jade.store.service.ToolGroupService; import modelengine.jade.store.service.support.DeployStatus; import modelengine.jade.store.tool.upload.config.PluginUploadConstraintConfig; import modelengine.jade.store.tool.upload.service.impl.PluginUploadServiceImpl; diff --git a/store/plugins/store-tool-uploader/src/test/java/modelengine/jade/store/tool/upload/support/BasicValidatorTest.java b/store/plugins/store-tool-uploader/src/test/java/modelengine/jade/store/tool/upload/support/BasicValidatorTest.java index 5b37912dab..b4375db894 100644 --- a/store/plugins/store-tool-uploader/src/test/java/modelengine/jade/store/tool/upload/support/BasicValidatorTest.java +++ b/store/plugins/store-tool-uploader/src/test/java/modelengine/jade/store/tool/upload/support/BasicValidatorTest.java @@ -28,8 +28,6 @@ import modelengine.fel.tool.info.entity.ToolJsonEntity; import modelengine.fel.tool.model.transfer.DefinitionGroupData; import modelengine.fel.tool.model.transfer.ToolGroupData; -import modelengine.fel.tool.service.DefinitionGroupService; -import modelengine.fel.tool.service.ToolGroupService; import modelengine.fit.serialization.json.jackson.JacksonObjectSerializer; import modelengine.fitframework.serialization.ObjectSerializer; import modelengine.fitframework.util.StringUtils; @@ -37,7 +35,9 @@ import modelengine.jade.common.exception.ModelEngineException; import modelengine.jade.store.entity.query.PluginQuery; import modelengine.jade.store.entity.transfer.PluginData; +import modelengine.jade.store.service.DefinitionGroupService; import modelengine.jade.store.service.PluginService; +import modelengine.jade.store.service.ToolGroupService; import modelengine.jade.store.tool.upload.config.PluginUploadConstraintConfig; import modelengine.jade.store.tool.upload.support.processor.DefinitionProcessor; import modelengine.jade.store.tool.upload.support.processor.ToolProcessor; diff --git a/store/services/store-service/src/main/java/modelengine/jade/store/service/DefinitionGroupService.java b/store/services/store-service/src/main/java/modelengine/jade/store/service/DefinitionGroupService.java new file mode 100644 index 0000000000..aac1327b4e --- /dev/null +++ b/store/services/store-service/src/main/java/modelengine/jade/store/service/DefinitionGroupService.java @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2025 Huawei Technologies Co., Ltd. All rights reserved. + * This file is a part of the ModelEngine Project. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +package modelengine.jade.store.service; + +import modelengine.fel.tool.model.transfer.DefinitionGroupData; +import modelengine.fitframework.annotation.Genericable; + +import java.util.List; +import java.util.Set; + +/** + * 提供定义组的服务。 + * + * @author 王攀博 + * @since 2024-10-25 + */ +public interface DefinitionGroupService { + /** + * 添加定义组。 + * + * @param definitionGroup 表示待增加的定义组信息的 {@link DefinitionGroupData}。 + * @return 表示添加后的定义的唯一标识的 {@link String}。 + */ + @Genericable(id = "modelengine.jade.carver.definition.add.group") + String add(DefinitionGroupData definitionGroup); + + /** + * 添加定义组列表。 + * + * @param definitionGroups 表示待注册的定义组信息的 {@link List}{@code <}{@link DefinitionGroupData}{@code >}。 + */ + @Genericable(id = "modelengine.jade.carver.definition.add.groups") + void add(List definitionGroups); + + /** + * 删除定义。 + * + * @param definitionGroupName 表示待删除定义组名称的 {@link String}。 + * @return 表示删除定义组的名称或失败提示的 {@link String}。 + */ + @Genericable(id = "modelengine.jade.carver.definition.delete.group") + String delete(String definitionGroupName); + + /** + * 删除定义列表。 + * + * @param definitionGroupNames 表示待删除定义组名称列表的 {@link List}{@code <}{@link String}{@code >}。 + */ + @Genericable(id = "modelengine.jade.carver.definition.delete.groups") + void delete(List definitionGroupNames); + + /** + * 基于定义的名称查询某个工具。 + * + * @param name 表示定义组的名称的 {@link String}。 + * @return 表示定义组数据的 {@link DefinitionGroupData}。 + */ + @Genericable(id = "modelengine.jade.carver.definition.get.group") + DefinitionGroupData get(String name); + + /** + * 查找数据库中第一个匹配的定义名,用于判断重复。 + * + * @param defGroupNames 表示指定的定义组名的 {@link String}{@code <}{@link String}{@code >}。 + * @return 表示第一个匹配的定义组名的 {@link String}。 + */ + @Genericable(id = "modelengine.jade.carver.definition.find.first.exist.group") + String findFirstExistDefGroup(Set defGroupNames); + + /** + * 查找数据库中已存在的定义名集合,用于判断重复。 + * + * @param defGroupNames 表示指定的定义组名的 {@link String}{@code <}{@link String}{@code >}。 + * @return 表示第一个匹配的定义组名的 {@link List}{@code <}{@link String}{@code >}。 + */ + @Genericable(id = "modelengine.jade.carver.definition.find.exist.groups") + List findExistDefGroups(Set defGroupNames); + + /** + * 查找数据库中第一个匹配的 定义组-定义 组合,用于判断重复。 + * + * @param defGroupName 表示指定的定义组名的 {@link String}。 + * @param defNames 表示指定的定义名的 {@link Set}{@code <}{@link String}{@code >}。 + * @return 表示第一个匹配的定义组名+定义名的 {@link String}。 + */ + @Genericable(id = "modelengine.jade.carver.definition.exist.def.names.inGroup") + String findFirstExistDefNameInDefGroup(String defGroupName, Set defNames); +} diff --git a/store/services/store-service/src/main/java/modelengine/jade/store/service/DefinitionService.java b/store/services/store-service/src/main/java/modelengine/jade/store/service/DefinitionService.java new file mode 100644 index 0000000000..da49c75740 --- /dev/null +++ b/store/services/store-service/src/main/java/modelengine/jade/store/service/DefinitionService.java @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2025 Huawei Technologies Co., Ltd. All rights reserved. + * This file is a part of the ModelEngine Project. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +package modelengine.jade.store.service; + +import modelengine.fel.tool.model.transfer.DefinitionData; +import modelengine.fitframework.annotation.Genericable; + +import java.util.List; + +/** + * 提供工具定义的服务。 + * + * @author 王攀博 + * @since 2024-10-25 + */ +public interface DefinitionService { + /** + * 添加定义。 + * + * @param definition 表示待增加的定义信息的 {@link DefinitionData}。 + * @return 表示添加后的定义的唯一标识的 {@link String}。 + */ + @Genericable(id = "modelengine.jade.carver.definition.add") + String add(DefinitionData definition); + + /** + * 添加定义列表。 + * + * @param definitions 表示待注册的工具信息的 {@link List}{@code <}{@link DefinitionData}{@code >}。 + */ + @Genericable(id = "modelengine.jade.carver.definition.add.list") + void add(List definitions); + + /** + * 删除定义。 + * + * @param groupName 表示待删除的定义组名称的 {@link String}。 + * @param name 表示待删除定义名称的 {@link String}。 + * @return 表示删除定义的名称或失败提示的 {@link String}。 + */ + @Genericable(id = "modelengine.jade.carver.definition.delete") + String delete(String groupName, String name); + + /** + * 删除定义组下所有的定义。 + * + * @param groupName 表示待删除定义组名称的 {@link String}。 + */ + @Genericable(id = "modelengine.jade.carver.definition.delete.list") + void delete(String groupName); + + /** + * 基于定义的名称查询某个定义。 + * + * @param groupName 表示待删除的定义组名称的 {@link String}。 + * @param name 表示待删除定义名称的 {@link String}。 + * @return 表示定义数据的 {@link DefinitionData}。 + */ + @Genericable(id = "modelengine.jade.carver.definition.get") + DefinitionData get(String groupName, String name); + + /** + * 查询定义组下所有的工具。 + * + * @param groupName 表示待删除的定义组名称的 {@link String}。 + * @return 表示定义组下的定义列表的 {@link List}{@code <}{@link DefinitionData}{@code >}。 + */ + @Genericable(id = "modelengine.jade.carver.definition.get.byGroup") + List get(String groupName); +} \ No newline at end of file diff --git a/store/services/store-service/src/main/java/modelengine/jade/store/service/ToolGroupService.java b/store/services/store-service/src/main/java/modelengine/jade/store/service/ToolGroupService.java new file mode 100644 index 0000000000..f2eb4ebb94 --- /dev/null +++ b/store/services/store-service/src/main/java/modelengine/jade/store/service/ToolGroupService.java @@ -0,0 +1,95 @@ +/* + * Copyright (c) 2025 Huawei Technologies Co., Ltd. All rights reserved. + * This file is a part of the ModelEngine Project. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +package modelengine.jade.store.service; + +import modelengine.fel.tool.model.transfer.ToolGroupData; +import modelengine.fitframework.annotation.Genericable; + +import java.util.List; +import java.util.Set; + +/** + * 提工具组的服务。 + * + * @author 王攀博 + * @since 2024-10-25 + */ +public interface ToolGroupService { + /** + * 添加工具组。 + * + * @param toolGroup 表示待增加的工具组信息的 {@link ToolGroupData}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.add.group") + void add(ToolGroupData toolGroup); + + /** + * 添加工具组列表。 + * + * @param toolGroupDataList 表示待注册的工具组信息的 {@link List}{@code <}{@link ToolGroupData}{@code >}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.add.groups") + void add(List toolGroupDataList); + + /** + * 删除工具组。 + * + * @param definitionGroupName 表示待删除的定义组的名字的 {@link String}。 + * @param toolGroupName 表示待删除工具组名称的 {@link String}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.delete.group") + void delete(String definitionGroupName, String toolGroupName); + + /** + * 删除定义列表。 + * + * @param definitionGroupName 表示待删除的定义组的名字的 {@link String}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.delete.definition.group") + void deleteByDefinitionGroupName(String definitionGroupName); + + /** + * 基于工具组名称查询工具组。 + * + * @param definitionGroupName 表示定义组名称的 {@link String}。 + * @param toolGroupNames 表示工具组的名称列表的 {@link List}{@code <}{@link String}{@code >}。 + * @return 表示工具组数据的 {@link List}{@code <}{@link ToolGroupData}{@code >}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.get.groups") + List get(String definitionGroupName, List toolGroupNames); + + /** + * 查询定义组下所有工具组数据。 + * + * @param definitionGroupName 表示工具定义组的名称的 {@link String}。 + * @return 表示工具组数据的 {@link List}{@code <}{@link ToolGroupData}{@code >}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.get.definition.group") + List get(String definitionGroupName); + + /** + * 查找数据库中是否有任意一个指定的 实现组-实现 组合,用于判断重复。 + * + * @param defGroupName 表示指定的定义组名的 {@link String}。 + * @param toolGroupName 表示指定的实现组名的 {@link String}。 + * @param toolNames 表示指定的实现名的 {@link Set}{@code <}{@link String}{@code >}。 + * @return 表示是否存在的 {@code boolean}。 + */ + @Deprecated + @Genericable(id = "modelengine.jade.carver.tool.exist.tool.names.inGroup") + boolean isExistAnyToolInToolGroup(String defGroupName, String toolGroupName, Set toolNames); + + /** + * 查找数据库中第一个匹配的 定义组-实现组 组合,用于判断重复。 + * + * @param toolGroupName 表示指定的实现组名的 {@link String}。 + * @param defGroupName 表示指定的定义组名的 {@link String}。 + * @return 表示第一个匹配的定义组名-实现组名的 {@link String}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.exist.toolGroup.inDefGroup") + String findFirstExistToolGroupInDefGroup(String toolGroupName, String defGroupName); +} \ No newline at end of file diff --git a/store/services/store-service/src/main/java/modelengine/jade/store/service/ToolService.java b/store/services/store-service/src/main/java/modelengine/jade/store/service/ToolService.java new file mode 100644 index 0000000000..5296432d21 --- /dev/null +++ b/store/services/store-service/src/main/java/modelengine/jade/store/service/ToolService.java @@ -0,0 +1,158 @@ +/* + * Copyright (c) 2025 Huawei Technologies Co., Ltd. All rights reserved. + * This file is a part of the ModelEngine Project. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +package modelengine.jade.store.service; + +import modelengine.fel.tool.model.ListResult; +import modelengine.fel.tool.model.entity.ToolIdentifier; +import modelengine.fel.tool.model.transfer.ToolData; +import modelengine.fitframework.annotation.Genericable; + +import java.util.List; + +/** + * 提供工具的通用服务。 + * + * @author 鲁为 + * @since 2024-04-16 + */ +public interface ToolService { + /** + * 添加工具。 + * + * @param tool 表示待增加的工具信息的 {@link ToolData}。 + * @return 表示添加后的工具的唯一标识的 {@link String}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.addTool") + String addTool(ToolData tool); + + /** + * 注册工具列表。 + * + * @param toolDataList 表示待注册的工具信息的 {@link List}{@code <}{@link ToolData}{@code >}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.addTools") + void addTools(List toolDataList); + + /** + * 注册一个工具组下所有工具。 + * + * @param definitionGroupName 表示待注册工具定义组名的 {@link String}。 + * @param groupName 表示待注册的工具组名的 {@link String}。 + * @param toolDataList 表示待注册的工具信息的 {@link List}{@code <}{@link ToolData}{@code >}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.addGroupTools") + void addTools(String definitionGroupName, String groupName, List toolDataList); + + /** + * 删除工具。 + * + * @param toolUniqueName 表示待删除工具唯一标识的 {@link String}。 + * @return 表示删除工具的唯一标识名或失败提示的 {@link String}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.deleteTool") + String deleteTool(String toolUniqueName); + + /** + * 删除工具列表。 + * + * @param uniqueNames 表示待删除工具唯一标识列表的 {@link List}{@code <}{@link String}{@code >}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.deleteTools") + void deleteTools(List uniqueNames); + + /** + * 删除工具组下所有的工具。 + * + * @param definitionGroupName 表示待删除工具定义组名的 {@link String}。 + * @param groupName 表示待删除的工具组名的 {@link String}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.deleteTools.byToolGroup") + void deleteTools(String definitionGroupName, String groupName); + + /** + * 删除工具组下所有的工具。 + * + * @param definitionGroupName 表示待删除工具定义组名的 {@link String}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.deleteTools.byDefinitionGroup") + void deleteToolsByDefinitionGroupName(String definitionGroupName); + + /** + * 删除工具的某一个版本。 + * + * @param uniqueName 表示待删除工具的唯一标识的 {@link String}。 + * @param version 表示待删除工具的版本的 {@link String}。 + * @return 表示删除工具的唯一标识名或失败提示的 {@link String}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.deleteToolByVersion") + String deleteToolByVersion(String uniqueName, String version); + + /** + * 基于工具的唯一标识查询某个工具。 + * + * @param toolUniqueName 表示工具的唯一标识的 {@link String}。 + * @return 表示工具详细信息的 {@link ToolData}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.getTool.byUniqueName") + ToolData getTool(String toolUniqueName); + + /** + * 查询工具组下所有的工具。 + * + * @param definitionGroupName 表示待注册工具定义组名的 {@link String}。 + * @param groupName 表示工具组名的 {@link String}。 + * @return 表示工具详细信息的 {@link List}{@code <}{@link ToolData}{@code >}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.get.group.tools") + List getTools(String definitionGroupName, String groupName); + + /** + * 查询定义组下所有的工具。 + * + * @param definitionGroupName 表示待注册工具定义组名的 {@link String}。 + * @return 表示工具详细信息的 {@link List}{@code <}{@link ToolData}{@code >}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.get.definition.group.tools") + List getTools(String definitionGroupName); + + /** + * 查询工具的某一个版本。 + * + * @param toolUniqueName 表示工具的唯一标识的 {@link String}。 + * @param version 表示工具的版本的 {@link String}。 + * @return 表示工具详细信息的 {@link ToolData}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.getTool.byVersion") + ToolData getToolByVersion(String toolUniqueName, String version); + + /** + * 查询一个工具的所有版本。 + * + * @param toolUniqueName 表示工具的唯一标识的 {@link String}。 + * @return 表示工具版本列表的 {@link ListResult}{@code <}{@link ToolData}{@code >}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.getAllToolVersions") + ListResult getAllToolVersions(String toolUniqueName); + + /** + * 升级工具。 + * + * @param toolData 表示待升级的工具的 {@link ToolData}。 + * @return 表示工具唯一标识的 {@link String}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.upgradeTool") + String upgradeTool(ToolData toolData); + + /** + * 根据工具的唯一标识和版本查询工具。 + * + * @param toolIdentifiers 表示工具的唯一标识和版本的 {@link List}{@code <}{@link ToolIdentifier}{@code >}。 + * @return 表示工具列表的 {@link ListResult}{@code <}{@link ToolData}{@code >}。 + */ + @Genericable(id = "modelengine.jade.carver.tool.getTools.byUniqueNameAndVersion") + ListResult getToolsByIdentifier(List toolIdentifiers); +}