6.4 KiB
6.4 KiB
变更日志
元数据
- 需求编号:014-4
- 创建时间:2026-01-27
- 创建人:AI Assistant
- 版本号:v1.0.0
变更概述
实现基于 Salesforce Tooling API 的 MetadataContainer 机制的元数据容器与原子性部署功能,包括容器生命周期管理、成员管理、异步部署请求、状态轮询与结果解析等核心功能,支持将多个 Apex 类、触发器、Visualforce 页面等成员的修改打包,一次性原子部署,确保代码依赖的一致性。
变更内容
新增功能
-
实现元数据容器生命周期管理功能:
- 创建容器(支持容器名称冲突处理)
- 删除容器
- 查询容器
- 获取容器详情
-
实现容器成员管理功能:
- 添加成员到容器
- 支持多种元数据类型(ApexClassMember、ApexTriggerMember、ApexComponentMember、ApexPageMember)
-
实现异步部署请求功能:
- 创建部署请求
- 支持 CheckOnly 模式
- 支持测试执行
-
实现状态轮询与结果解析功能:
- 查询部署状态
- 轮询部署状态(支持超时和重试)
- 获取部署详情
- 解析编译错误
- 解析测试结果
新增文档
新增代码文件
-
Domain(4 个):
datai-salesforce-tooling/src/main/java/com/datai/tooling/model/domain/MetadataContainer.java- 元数据容器领域模型datai-salesforce-tooling/src/main/java/com/datai/tooling/model/domain/ContainerMember.java- 容器成员领域模型datai-salesforce-tooling/src/main/java/com/datai/tooling/model/domain/ContainerAsyncRequest.java- 容器异步请求领域模型datai-salesforce-tooling/src/main/java/com/datai/tooling/model/domain/DeployDetails.java- 部署详情领域模型
-
DTO(7 个):
datai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/CreateContainerRequest.java- 创建容器请求 DTOdatai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/AddMemberRequest.java- 添加成员请求 DTOdatai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/DeployContainerRequest.java- 部署容器请求 DTOdatai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/CheckStatusRequest.java- 检查状态请求 DTOdatai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/GetDeployDetailsRequest.java- 获取部署详情请求 DTOdatai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/DeploymentResult.java- 部署结果 DTOdatai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/CompilationError.java- 编译错误 DTO
-
VO(5 个):
datai-salesforce-tooling/src/main/java/com/datai/tooling/model/vo/ContainerVo.java- 容器视图对象datai-salesforce-tooling/src/main/java/com/datai/tooling/model/vo/MemberVo.java- 成员视图对象datai-salesforce-tooling/src/main/java/com/datai/tooling/model/vo/DeploymentStatusVo.java- 部署状态视图对象datai-salesforce-tooling/src/main/java/com/datai/tooling/model/vo/DeployDetailsVo.java- 部署详情视图对象datai-salesforce-tooling/src/main/java/com/datai/tooling/model/vo/CompilationErrorVo.java- 编译错误视图对象
-
Enum(3 个):
datai-salesforce-tooling/src/main/java/com/datai/tooling/enums/MetadataType.java- 元数据类型枚举datai-salesforce-tooling/src/main/java/com/datai/tooling/enums/DeploymentState.java- 部署状态枚举datai-salesforce-tooling/src/main/java/com/datai/tooling/enums/DeploymentMode.java- 部署模式枚举
-
Exception(2 个):
datai-salesforce-tooling/src/main/java/com/datai/tooling/exception/MetadataContainerException.java- 元数据容器异常datai-salesforce-tooling/src/main/java/com/datai/tooling/exception/DeploymentException.java- 部署异常
-
Manager(2 个):
datai-salesforce-tooling/src/main/java/com/datai/tooling/manager/MetadataContainerManager.java- 元数据容器管理器datai-salesforce-tooling/src/main/java/com/datai/tooling/manager/DeploymentManager.java- 部署管理器
-
Service(4 个):
datai-salesforce-tooling/src/main/java/com/datai/tooling/service/IMetadataContainerService.java- 元数据容器服务接口datai-salesforce-tooling/src/main/java/com/datai/tooling/service/impl/MetadataContainerServiceImpl.java- 元数据容器服务实现datai-salesforce-tooling/src/main/java/com/datai/tooling/service/IDeploymentService.java- 部署服务接口datai-salesforce-tooling/src/main/java/com/datai/tooling/service/impl/DeploymentServiceImpl.java- 部署服务实现
-
Controller(2 个):
datai-salesforce-tooling/src/main/java/com/datai/tooling/controller/MetadataContainerController.java- 元数据容器控制器datai-salesforce-tooling/src/main/java/com/datai/tooling/controller/DeploymentController.java- 部署控制器
-
单元测试(4 个):
datai-salesforce-tooling/src/test/java/com/datai/tooling/manager/MetadataContainerManagerTest.java- 元数据容器管理器测试datai-salesforce-tooling/src/test/java/com/datai/tooling/manager/DeploymentManagerTest.java- 部署管理器测试datai-salesforce-tooling/src/test/java/com/datai/tooling/service/impl/MetadataContainerServiceImplTest.java- 元数据容器服务测试datai-salesforce-tooling/src/test/java/com/datai/tooling/service/impl/DeploymentServiceImplTest.java- 部署服务测试
影响范围
- 模块:
datai-salesforce-tooling - 功能:元数据容器与原子性部署
- 文件:31 个新文件(4 个 Domain、7 个 DTO、5 个 VO、3 个 Enum、2 个 Exception、2 个 Manager、4 个 Service、2 个 Controller、4 个单元测试)