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

  • 相关阅读:
    USACO 1.3.1 Mixing Milk
    USACO 1.2.5 Dual Palindromes
    USACO 1.2.4 Palindromic Squares
    十进制数转其他进制数
    USACO 1.2.3 Name That number
    USACO 1.2.2 Transformations
    USACO 1.2.1 Milking Cows
    矩阵的旋转,转置和翻转以及它们的关系
    P1078 文化之旅
    P3435 [POI2006]OKR-Periods of Words
  • 原文地址:https://www.cnblogs.com/pangblog/p/3268681.html
Copyright © 2011-2022 走看看