107 lines
6.4 KiB
Markdown
107 lines
6.4 KiB
Markdown
# 变更日志
|
||
|
||
## 元数据
|
||
- 需求编号:014-4
|
||
- 创建时间:2026-01-27
|
||
- 创建人:AI Assistant
|
||
- 版本号:v1.0.0
|
||
|
||
## 变更概述
|
||
实现基于 Salesforce Tooling API 的 MetadataContainer 机制的元数据容器与原子性部署功能,包括容器生命周期管理、成员管理、异步部署请求、状态轮询与结果解析等核心功能,支持将多个 Apex 类、触发器、Visualforce 页面等成员的修改打包,一次性原子部署,确保代码依赖的一致性。
|
||
|
||
## 变更内容
|
||
|
||
### 新增功能
|
||
- 实现元数据容器生命周期管理功能:
|
||
- 创建容器(支持容器名称冲突处理)
|
||
- 删除容器
|
||
- 查询容器
|
||
- 获取容器详情
|
||
|
||
- 实现容器成员管理功能:
|
||
- 添加成员到容器
|
||
- 支持多种元数据类型(ApexClassMember、ApexTriggerMember、ApexComponentMember、ApexPageMember)
|
||
|
||
- 实现异步部署请求功能:
|
||
- 创建部署请求
|
||
- 支持 CheckOnly 模式
|
||
- 支持测试执行
|
||
|
||
- 实现状态轮询与结果解析功能:
|
||
- 查询部署状态
|
||
- 轮询部署状态(支持超时和重试)
|
||
- 获取部署详情
|
||
- 解析编译错误
|
||
- 解析测试结果
|
||
|
||
### 新增文档
|
||
- [需求文档](../requirements/REQ-014-4.md)
|
||
- [设计文档](../design/2026-01-27-014-4-元数据容器与原子性部署-设计.md)
|
||
- [决策记录](../decisions/adr/2026-01-27-014-4-ADR-元数据容器与原子性部署技术选型.md)
|
||
- [提示词](../prompts/2026-01-27-014-4-prompt-元数据容器与原子性部署.md)
|
||
- [会话记录](../sessions/2026-01-27-014-4-session.md)
|
||
|
||
### 新增代码文件
|
||
- **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` - 创建容器请求 DTO
|
||
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/AddMemberRequest.java` - 添加成员请求 DTO
|
||
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/DeployContainerRequest.java` - 部署容器请求 DTO
|
||
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/CheckStatusRequest.java` - 检查状态请求 DTO
|
||
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/GetDeployDetailsRequest.java` - 获取部署详情请求 DTO
|
||
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/DeploymentResult.java` - 部署结果 DTO
|
||
- `datai-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 个单元测试)
|
||
|
||
## 相关文档
|
||
- [需求文档](../requirements/REQ-014-4.md)
|
||
- [设计文档](../design/2026-01-27-014-4-元数据容器与原子性部署-设计.md)
|
||
- [决策记录](../decisions/adr/2026-01-27-014-4-ADR-元数据容器与原子性部署技术选型.md)
|
||
- [提示词](../prompts/2026-01-27-014-4-prompt-元数据容器与原子性部署.md)
|
||
- [会话记录](../sessions/2026-01-27-014-4-session.md)
|