datai/docs/archive/changelog/2026-01-27-014-4-changelog.md

107 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 变更日志
## 元数据
- 需求编号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)
### 新增代码文件
- **Domain4 个)**
- `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` - 部署详情领域模型
- **DTO7 个)**
- `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
- **VO5 个)**
- `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` - 编译错误视图对象
- **Enum3 个)**
- `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` - 部署模式枚举
- **Exception2 个)**
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/exception/MetadataContainerException.java` - 元数据容器异常
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/exception/DeploymentException.java` - 部署异常
- **Manager2 个)**
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/manager/MetadataContainerManager.java` - 元数据容器管理器
- `datai-salesforce-tooling/src/main/java/com/datai/tooling/manager/DeploymentManager.java` - 部署管理器
- **Service4 个)**
- `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` - 部署服务实现
- **Controller2 个)**
- `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)