WSO2 ESB企業服務總線漢化源碼分享和實現原理

轉載自 WSO2 ESB企業服務總線漢化源碼分享和實現原理
WSO2 ESB是一個輕量級的易於使用的企業服務資源總線,基於Apache Software License v2.0. WSO2 ESB 允許系統管理員和SOA架構師輕鬆的配置消息路由, 虛擬化, 中介, 轉換, 日誌記錄, 任務調度, 負載均衡, 失敗路由, 事件中介等等. 運行時被設計爲完全異步, 非阻塞 、連續的。基於 Apache Synapse 中介引擎。

    WSO2 ESB版本5.0.0是4.9.0的後繼版,它在單個版本中完成了運行時的工具和分析。WSO2 ESB 5.0.0新增並加強了部分功能:通過WSO2 ESB工具提供的工具支持來創建和管理ESB工件;WebSocket支持通過WSO2 ESB WebSocket傳輸,WSO2 ESB WebSocket入站協議和WSO2 ESB安全WebSocket入站協議;調解調試器,允許通過WSO2 ESB工具調試中介流等等。

準備工作
WSO2 ESB 5.0.0參考文檔:https://docs.wso2.com/display/ESB500/About+this+Release
下載漢化所需的java項目(本人寫的源碼比較簡單僅供參考,此工具可以漢化),源碼地址:https://github.com/yoodb/updjarutils
WSO2 ESB 5.0.0下載地址:http://wso2.com/more-downloads/esb/

如何漢化
利用Java代碼實現解壓和壓縮jar,參考資料:http://blog.yoodb.com/yoodb/article/detail/1319
本文采用的WSO2 ESB源碼編譯後的wso2esb-5.0.1-SNAPSHOT.zip文件,將該壓縮包解壓後放到本地目錄中,作爲wso2esb-5.0.1的安裝目錄。
運行Tests.java類,具體代碼如下:
package com.yoodb;

import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class Tests {

private static Log log = LogFactory.getLog(Tests.class);

/**
 * 
 * @param args
 * @throws Exception
 */
public static void main(String[] args) throws Exception {
    String infoPath = "E:\\files\\";
    String logFilePath = "info.log";
    UpdJarContent.createFile(infoPath, logFilePath);
    FileOutputStream logfile = new FileOutputStream(infoPath + logFilePath);
    String proName ="Resources";
    ArrayList filelist = UpdJarContent.searchJarFiles("E:\\wso2esb-5.0.1-SNAPSHOT\\repository\\components\\plugins");
    for (File file : filelist) {
        UpdJarContent ut = new UpdJarContent();
        SignUtils ss = new SignUtils();
        String path = file.getAbsolutePath();
        ss.setJarPath(path);
        logfile.write(("------" + path + "------").getBytes());
        logfile.write("\r\n".getBytes());
        log.info("需要解壓的壓縮包路徑-->" + path);

        String fileName = file.getName().replace(".jar", "");
        ss.setOriginalUrl(fileName);
        log.info("用於壓縮包刪除前綴目錄的名稱-->" + fileName);

        String filePath = infoPath + fileName;
        ss.setFilePath(filePath);
        log.info("解壓後的文件夾目錄路徑-->" + filePath);

        String newFilePath = infoPath + file.getName();
        ss.setJarNewPath(newFilePath);
        log.info("新打包後的壓縮包路徑-->" + newFilePath);

        ut.updJarContent(ss,logfile,proName);
        logfile.write(("------" + path + "------").getBytes());
        logfile.write("\r\n".getBytes());
        //DeleteDirectory.deleteDir(new File(filePath));
        //log.info("刪除臨時解壓文件 -->" + filePath + "<-- 成功!");
    }
    logfile.close();
}

}
其中…\repository\components\plugins目錄下是所需要漢化的jar包。
jar包名稱包含.ui.和ui_的包文件中Resources.properties文件是需要漢化的內容信息,可以打開簡單看一下。
注意:org.wso2.carbon.ui_4.4.9.jar包是WSO2 ESB前端框架,而org.wso2.carbon.i18n_4.4.9.jar包是框架對於需要漢化的jar包。
在github中下載的java源碼中E:\files\路徑是存放解壓後的需要漢化文件目錄和漢化後壓縮的jar包,至於其他的就不在過多解釋,有什麼不明白的可以在素文宅博客本站留言諮詢,執行運行main函數開始漢化操作。
大概需要1小時左右漢化時間,漢化成功後共計一百多個jar包,將E:\files\路徑下所有jar包複製到…\repository\components\plugins目錄下替換原有jar包,之後運行wso2server.bat即可。

漢化部分結果圖:
WSO2 ESB登錄主界面
OEGD3(GV91YMNX_)RIK)M7G.png

WSO2 ESB登錄後主界面
4)Q{3NGGYB(I]0~6T86LE[L.png

WSO2 ESB 支持許多應用層協議和消息協議(統稱爲傳輸), 包括 HTTP/S,E-mail, Java 消息服務 (JMS) and 虛擬文件系統 (VFS)。他還支持域特定協議 如:金融信息交換 (FIX), 高級消息隊列協議 (AMQP) and Health Layer 7 (HL7)。新的傳輸可以被很容易的插入到服務中,該功能是利用Axis2 傳輸框架提供的無縫可擴展性。更多關於WSO2 ESB博文,可以在素文宅博客www.yoodb.com本站搜索,其他內容持續更新中。

有什麼問題可以在素文宅博客留言諮詢!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章