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);
+}