wso2~product-apim的定位與組成
4.5版本新功能
- admin服務,添加AI/LLM Vendors功能
- 服務的界面無變化
- helm-apim的distributed版添加對openTelemetry
WSO2 API Manager(APIM)的代碼倉庫采用了模塊化設計,其核心功能和持久化代碼并未直接存放在 product-apim 主倉庫中,而是分布在多個子組件倉庫中。以下是具體分析:
1. product-apim 倉庫的定位
- 功能定位:
product-apim倉庫主要作為 產品集成層,負責將各子組件(如carbon-apimgt、carbon-kernel)的模塊整合為完整的 API Manager 發行包。它包含構建腳本、配置文件、集成測試及最終產品打包邏輯,而非核心業務代碼。 - 代碼內容:
該倉庫中可見的代碼多為 資源文件(如 JSP 頁面、配置文件)、測試用例 和 Maven 構建配置。例如,modules/distribution目錄負責生成最終的可執行 ZIP 包,而核心功能(如 API 發布、網關路由)通過依賴其他組件實現。
- carbon-apimgt https://github.com/wso2/carbon-apimgt.git
- carbon-kerne https://github.com/wso2/carbon-kernel.git
2. 核心代碼與持久化組件的分布
- product-apim
- carbon-apimgt
- carbon-registry
- carbon-analytics
- carbon-kernel
carbon-apimgt倉庫:
這是 核心業務邏輯 的存儲庫,包含 API 管理、密鑰生成、數據庫交互等關鍵功能。例如:- 數據庫持久化邏輯位于
components/apimgt/org.wso2.carbon.apimgt.impl模塊中,涉及 DAO 層和 Hibernate 配置。 - 核心類如
APIConsumerImpl(API 消費邏輯)、APIPublisherImpl(API 發布邏輯)也在此倉庫中實現。
- 數據庫持久化邏輯位于
carbon-kernel倉庫:
提供 WSO2 產品的運行時基礎(如 OSGi 容器、日志框架),并包含部分 通用持久化支持(如 JDBC 連接池、事務管理)。- 其他相關倉庫:
carbon-registry:元數據存儲(如 API 配置、策略文件)的持久化實現。carbon-analytics:事件流處理與狀態持久化(如 Siddhi 引擎集成 Cassandra)。
3. 構建與依賴管理
- Maven 依賴機制:
product-apim通過 Maven 從 WSO2 私有倉庫(Nexus)拉取預編譯的子組件 JAR 包(如carbon-apimgt-6.1.66.jar),而非直接包含源碼。因此,用戶需單獨克隆子倉庫以查看或修改核心代碼。 - 構建流程示例:
若需自定義持久化邏輯(如修改數據庫操作),需:- 克隆
carbon-apimgt并切換到對應版本標簽(如v6.1.66)。 - 修改代碼后執行
mvn clean install安裝到本地 Maven 倉庫。 - 重新構建
product-apim,使新編譯的 JAR 被集成到最終產品包中。
- 克隆
4. 持久化代碼的具體位置
- 數據庫交互層:
在carbon-apimgt倉庫中,數據庫操作主要位于:org.wso2.carbon.apimgt.persistence.dao:DAO 接口及實現類(如APIDAO、SubscriptionDAO)。resources/dbscripts:各數據庫的 DDL 腳本(如apimgt/mysql.sql)。
- 配置文件:
數據源定義(如 JDBC 連接)在product-apim的部署包中通過repository/conf/datasources/master-datasources.xml配置。
5. 用戶常見誤解與解決方案
- 誤解:認為
product-apim包含完整源碼。
原因:WSO2 的模塊化設計導致核心代碼分散在多個倉庫。
解決:通過官方文檔或構建腳本追蹤子組件依賴關系。 - 調試自定義代碼未生效:
需確保修改的子組件版本與product-apim的依賴版本一致,并重新構建所有相關模塊。
總結
product-apim倉庫:產品集成層,不包含核心代碼,僅負責打包。- 核心代碼:分布于
carbon-apimgt、carbon-kernel等子倉庫。 - 持久化實現:需查看
carbon-apimgt的 DAO 層及carbon-registry的元數據管理模塊。
若需深入分析數據庫持久化或修改核心邏輯,需定位到對應的子組件倉庫并遵循多模塊構建流程。
浙公網安備 33010602011771號