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本站搜索,其他内容持续更新中。

有什么问题可以在素文宅博客留言咨询!!!

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