轉載自 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本站搜索,其他內容持續更新中。
有什麼問題可以在素文宅博客留言諮詢!!!