- 增加 Salesforce CLI 和 Legacy Credential 登录支持 - 将错误码映射从数据库表改为枚举类(SalesforceErrorCode) - 增加会话管理表(datai_sf_login_session)和功能 - 增加登录历史导出 Excel 和分页查询功能 - 优化系统配置字段(login_url、grant_type、org_alias) - 更新业务场景、功能需求、数据模型、业务规则等章节 - 确保总需求文档与所有子需求保持一致
219 lines
6.6 KiB
Markdown
219 lines
6.6 KiB
Markdown
# Salesforce Common 模块依赖说明
|
||
|
||
## 概述
|
||
本文档详细说明 `datai-salesforce-common` 模块中所有依赖的用途和版本信息。
|
||
|
||
## Salesforce 核心 JAR 包(本地依赖)
|
||
|
||
### 1. partner.jar
|
||
- **Maven 坐标**: `com.force.api:partner:57.0.0`
|
||
- **类型**: 本地 JAR 包(system scope)
|
||
- **路径**: `src/main/resources/lib/partner.jar`
|
||
- **用途**: Salesforce Partner API
|
||
- 提供对 Salesforce 数据的访问接口
|
||
- 支持标准的 CRUD 操作
|
||
- 支持查询、搜索、批量操作
|
||
- 适用于大多数数据访问场景
|
||
|
||
### 2. metadata.jar
|
||
- **Maven 坐标**: `com.force.api:metadata:57.0.0`
|
||
- **类型**: 本地 JAR 包(system scope)
|
||
- **路径**: `src/main/resources/lib/metadata.jar`
|
||
- **用途**: Salesforce Metadata API
|
||
- 提供对 Salesforce 元数据的访问接口
|
||
- 支持自定义对象的创建、修改、删除
|
||
- 支持字段、页面、布局的元数据操作
|
||
- 适用于动态配置和部署场景
|
||
|
||
### 3. tooling.jar
|
||
- **Maven 坐标**: `com.force.api:tooling:57.0.0`
|
||
- **类型**: 本地 JAR 包(system scope)
|
||
- **路径**: `src/main/resources/lib/tooling.jar`
|
||
- **用途**: Salesforce Tooling API
|
||
- 提供对开发工具的访问接口
|
||
- 支持代码部署、测试、调试
|
||
- 支持开发者工具集成
|
||
- 适用于开发和管理场景
|
||
|
||
### 4. apex.jar
|
||
- **Maven 坐标**: `com.force.api:apex:57.0.0`
|
||
- **类型**: 本地 JAR 包(system scope)
|
||
- **路径**: `src/main/resources/lib/apex.jar`
|
||
- **用途**: Salesforce Apex API
|
||
- 提供 Apex 代码的执行接口
|
||
- 支持异步执行、批处理
|
||
- 支持调用 Apex 类和方法
|
||
- 适用于业务逻辑执行场景
|
||
|
||
## 传输层依赖
|
||
|
||
### 5. force-wsc
|
||
- **Maven 坐标**: `com.force.api:force-wsc:57.0.0`
|
||
- **类型**: Maven 仓库依赖
|
||
- **用途**: Force.com Web Services Connector
|
||
- 提供 SOAP Web 服务客户端
|
||
- 处理与 Salesforce 的通信
|
||
- 支持 WS-Security 认证
|
||
- 是所有 Salesforce API 的基础通信层
|
||
|
||
### 6. httpclient
|
||
- **Maven 坐标**: `org.apache.httpcomponents:httpclient:4.5.14`
|
||
- **类型**: Maven 仓库依赖
|
||
- **用途**: Apache HTTP Client
|
||
- 提供高性能 HTTP 客户端
|
||
- 支持连接池、重试机制
|
||
- 支持多种认证方式
|
||
- 用于与 Salesforce API 进行 HTTP 通信
|
||
|
||
### 7. httpcore
|
||
- **Maven 坐标**: `org.apache.httpcomponents:httpcore:4.4.16`
|
||
- **类型**: Maven 仓库依赖
|
||
- **用途**: Apache HTTP Core
|
||
- 提供 HTTP 协议核心实现
|
||
- 支持同步和异步 I/O
|
||
- 支持连接管理
|
||
- 是 httpclient 的基础依赖
|
||
|
||
## JSON 处理依赖
|
||
|
||
### 8. jackson-databind
|
||
- **Maven 坐标**: `com.fasterxml.jackson.core:jackson-databind:2.15.3`
|
||
- **类型**: Maven 仓库依赖
|
||
- **用途**: Jackson 数据绑定
|
||
- 提供 JSON 对象序列化和反序列化
|
||
- 支持复杂对象映射
|
||
- 支持 JSON 到 Java 对象的转换
|
||
- 用于处理 Salesforce API 返回的 JSON 数据
|
||
|
||
### 9. jackson-core
|
||
- **Maven 坐标**: `com.fasterxml.jackson.core:jackson-core:2.15.3`
|
||
- **类型**: Maven 仓库依赖
|
||
- **用途**: Jackson 核心库
|
||
- 提供 JSON 解析和生成
|
||
- 支持流式处理
|
||
- 是 jackson-databind 的基础依赖
|
||
|
||
### 10. jackson-annotations
|
||
- **Maven 坐标**: `com.fasterxml.jackson.core:jackson-annotations:2.15.3`
|
||
- **类型**: Maven 仓库依赖
|
||
- **用途**: Jackson 注解
|
||
- 提供 JSON 序列化/反序列化注解
|
||
- 支持 @JsonProperty、@JsonIgnore 等
|
||
- 是 jackson-databind 的基础依赖
|
||
|
||
## 日志依赖
|
||
|
||
### 11. slf4j-api
|
||
- **Maven 坐标**: `org.slf4j:slf4j-api:2.0.9`
|
||
- **类型**: Maven 仓库依赖
|
||
- **用途**: SLF4J 日志门面
|
||
- 提供统一的日志接口
|
||
- 支持多种日志实现切换
|
||
- 提供占位符、参数化日志
|
||
- 用于记录 Salesforce API 调用日志
|
||
|
||
### 12. logback-classic
|
||
- **Maven 坐标**: `ch.qos.logback:logback-classic:1.4.11`
|
||
- **类型**: Maven 仓库依赖
|
||
- **用途**: Logback 日志实现
|
||
- 提供 SLF4J 的日志实现
|
||
- 支持多种输出格式
|
||
- 支持日志滚动、归档
|
||
- 用于实际的日志输出
|
||
|
||
## XML 处理依赖
|
||
|
||
### 13. dom4j
|
||
- **Maven 坐标**: `org.dom4j:dom4j:2.1.4`
|
||
- **类型**: Maven 仓库依赖
|
||
- **用途**: DOM4J XML 解析器
|
||
- 提供高效的 XML 解析和处理
|
||
- 支持 XPath 查询
|
||
- 支持 DOM、SAX 两种模式
|
||
- 用于处理 Salesforce SOAP API 的 XML 消息
|
||
|
||
### 14. jaxb-api
|
||
- **Maven 坐标**: `javax.xml.bind:jaxb-api:2.3.1`
|
||
- **类型**: Maven 仓库依赖
|
||
- **用途**: JAXB API
|
||
- 提供 Java 对象到 XML 的绑定
|
||
- 支持 XML Schema 生成
|
||
- 提供 @XmlRootElement 等注解
|
||
- 用于处理 Salesforce SOAP API 的 XML 数据
|
||
|
||
### 15. jaxb-runtime
|
||
- **Maven 坐标**: `org.glassfish.jaxb:jaxb-runtime:2.3.1`
|
||
- **类型**: Maven 仓库依赖
|
||
- **用途**: JAXB 运行时
|
||
- 提供 JAXB API 的实现
|
||
- 支持 XML 序列化和反序列化
|
||
- 是 jaxb-api 的基础依赖
|
||
- 用于实际的 XML 处理
|
||
|
||
## 依赖关系图
|
||
|
||
```
|
||
datai-salesforce-common
|
||
├── Salesforce 核心 JAR 包
|
||
│ ├── partner.jar (Partner API)
|
||
│ ├── metadata.jar (Metadata API)
|
||
│ ├── tooling.jar (Tooling API)
|
||
│ └── apex.jar (Apex API)
|
||
│
|
||
├── 传输层
|
||
│ ├── force-wsc (Web Services Connector)
|
||
│ ├── httpclient (HTTP Client)
|
||
│ └── httpcore (HTTP Core)
|
||
│
|
||
├── JSON 处理
|
||
│ ├── jackson-databind
|
||
│ ├── jackson-core
|
||
│ └── jackson-annotations
|
||
│
|
||
├── 日志
|
||
│ ├── slf4j-api
|
||
│ └── logback-classic
|
||
│
|
||
└── XML 处理
|
||
├── dom4j
|
||
├── jaxb-api
|
||
└── jaxb-runtime
|
||
```
|
||
|
||
## 使用场景
|
||
|
||
### 1. 数据访问场景
|
||
使用 `partner.jar` 进行标准的 CRUD 操作:
|
||
- 查询 Account、Contact 等对象
|
||
- 创建、更新、删除记录
|
||
- 批量操作
|
||
|
||
### 2. 元数据管理场景
|
||
使用 `metadata.jar` 管理自定义对象和字段:
|
||
- 创建自定义对象
|
||
- 添加自定义字段
|
||
- 部署元数据
|
||
|
||
### 3. 开发工具场景
|
||
使用 `tooling.jar` 进行开发和管理:
|
||
- 部署 Apex 代码
|
||
- 运行单元测试
|
||
- 调试代码
|
||
|
||
### 4. 业务逻辑执行场景
|
||
使用 `apex.jar` 执行业务逻辑:
|
||
- 调用 Apex 类方法
|
||
- 执行异步操作
|
||
- 批量处理数据
|
||
|
||
## 注意事项
|
||
|
||
1. **本地 JAR 包版本**: 当前假设版本为 57.0.0,如果您的 JAR 包版本不同,请更新 pom.xml 中的版本号
|
||
2. **system scope**: 本地 JAR 包使用 system scope,打包时需要确保 JAR 包存在
|
||
3. **依赖传递**: 其他模块依赖 `datai-salesforce-common` 后,会自动获得所有这些依赖
|
||
4. **版本兼容性**: 确保所有依赖版本之间兼容,避免冲突
|
||
|
||
## 更新日志
|
||
|
||
- 2026-01-21: 初始版本,添加所有 Salesforce 集成相关依赖
|