zoukankan      html  css  js  c++  java
  • wso2esb源码编译总结

    最近花了两周的空闲时间帮朋友把wso2esb的4.0.3、4.6.0、4.7.0三个版本从源码编译出来了。以下是大概的一些体会。

    wso2esb是基于carbon的。carbon是个基于eclipse equinox的基础整合OSGi框架容器。

    所以,要编译wso2esb,需要先编译carbon,最后再编译esb。

    wso2esb 4.0.3的源码是基于carbon2.3.3的,比如integration-test的jar,mvn中央库和wso2的maven库都找不到了,幸亏这个是用来做test的,不影响esb本身的编译。

    carbon4.1.0 跟4.0.x比较:
    1、像是原来放在orbit中的一些依赖,丢到kernel和dependence里去了
    2、一些pom的配置也从上级挪到下级去了
    3、加了hadoop的依赖

    wso2esb4.7.0 和 4.6.0 实际用的很多组件还是4.0.0的,carbon-core的基准版本都是4.0.5 ,也就是说编译carbon4.1.0其实没用上。
    用carbon4.0.5+esb4.6.0编译的时候,因为修改了carbon-core 4.0.5, 所以会影响到下次对esb4.7.0的编译。
    在用户目录下的.m2 epositoryorgwso2carbonwso2carbon-core 删掉4.0.5文件夹,这样下次编译时直接从maven库下载,而不是使用我们编译的版本。


    kernel的core目录编译完的时候,其实carbon就编译好了。
    kerneldistributionproductmodulesdistribution arget 下有打包好的carbon zip文件。

    carbon的大概源码结构是一个基线版本,比如4.0.0,
    然后在上面打一些tag做分支版本,把tag版本号作为patch,添加到原来的项目pom依赖中去。
    这样,carbon打包后的jar里,就会大部分是xxx-4.0.0.jar, 还有少量的xxxx-4.0.1.jar xxxxxx-4.0.5.jar 这些都是更新的版本。
    打包的时候,根据pom里的依赖模块版本号,拿不同的源码来编译。 carbon依赖的第三方库,也基本都是以源码+自定义的版本号来这么管理的。

    esb的打包是直接基于carbon core的zip文件的。
    先从m2里拿到zip,解压了到platformproductsesb4.7.0modulesp2-profile arget下的tmpxxxx文件夹。
    然后根据p2-profile下pom.xml中的描述,去拿各种需要的jar,包括各种依赖,合并到一起
    然后打包成esb的最终文件结构,
    再打包成zip放到distribution(同时也打包了docs),这个就是可以直接发布的版本。

    打包过程会在C:Userskk.m2 epositoryorgeclipse ycho ycho-p2-runtime.13.0eclipse下生成一个eclipse的内核,用来作为OSGi装配容器。

     

    由于carbon和wso2esb都是插件机制,所有的东西都可以看做是一个小的插件模块,所以源码结构很零碎。而且carbon是所有的wso2产品的技术基础平台,对esb来说,很多东西都是多余的,但是wso2为了省事,没有去掉依赖关系,比如esb编译时需要编译hive和hadoop,这两个压根儿跟esb没关系,完全可以去掉依赖。

    而且由于产品很多,近20个,导致carbon的每个模块的版本都很多,产品很少的哪些模块也都有各自的版本,这样交叉起来,依赖关系特别复杂,非常容易出错。所以,下载wso2esb源码后自己编译,主要就是理顺一些依赖关系。

     

    前面分析的都是 wso2esb 的core和management console的源码。

    developer studio的代码在:

    http://svn.wso2.org/repos/wso2/tags/tools/ide/eclipse/developer-studio/3.2.0/esb/

    这个就是一些eclipse的插件了。编译依赖于eclipse自身的一些东西。

    wso2esb支持两种部署模式,独立启动模式,作为web应用启动模式。

    4.0.0以后的版本,都建议使用独立启动模式。即直接作为容器运行。

    想要嵌入到web server运行的话,比如tomcat或jboss,weblogic之类的话,可以参考编译出来的targetwso2esb-4.6.0-docs.zip,解压出来,看deployment_guide.html和webapp_deployment_guide.html两个文件的说明步骤。

    其他的信息,可以参考官方文档:

    http://docs.wso2.org/wiki/display/ESB460/Enterprise+Service+Bus+Documentation

  • 相关阅读:
    【LeetCode】048. Rotate Image
    【LeetCode】036. Valid Sudoku
    【LeetCode】060. Permutation Sequence
    【LeetCode】001. Two Sum
    【LeetCode】128. Longest Consecutive Sequence
    【LeetCode】081. Search in Rotated Sorted Array II
    【LeetCode】033. Search in Rotated Sorted Array
    顺时针打印矩阵
    矩形覆盖
    二维数组中的查找
  • 原文地址:https://www.cnblogs.com/pangblog/p/3268681.html
Copyright © 2011-2022 走看看