转载自 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本站搜索,其他内容持续更新中。
有什么问题可以在素文宅博客留言咨询!!!