Structure of WSO2 code repository

This blog post targets explaining the structure of WSO2 code repository used until release of WSO2 carbon 4.2.0 release. Until carbon 4.2.0 release, WSO2 maintained code repository [1] based on svn.

Carbon code repository is consist of 3 spaces named,
  1. orbit
  2. kernel
  3. platform

Orbit

Orbit space [2] contains 3rd party libraries that are not maintained by WSO2, but are used by WSO2 products in operations.

Kernel

Kernel space [3] builds the base of all WSO2 products, WSO2 carbon server [4]. All other WSO2 products are produced by adding some specific functionality to generic WSO2 carbon server. Kernel space contains generic functionality shared by all WSO2 products such as caching, clustering, management console UI and 3rd party libraries that are necessary to support these generic functionalities.

Unlike 3rd party libraries included in orbit space these 3rd party libraries are maintained by WSO2. Therefore these 3rd party libraries have two part version numbers like X.Y.Z-wso2vN. First part this version number  (X.Y.Z) refers to the version number of 3rd party released code that WSO2 used to make changes. "N" in the second part of the version number (wso2vN) refers to version of the code changed by WSO2. For example 1.6.1-wso2v10 of the axis2 pom.xml file [5] in carbon 4.2.0 release means, base code for this release is taken from axis2, 1.6.1 release and this is the 10th version release with WSO2 code changes.

You can find more details about kernel building process by reading "WSO2 carbon building process"[6] blog post.

Platform

Platform space [7] contains implementations of specific functionality that can be added to generic carbon server to perform some special tasks and 3rd party libraries necessary for these specific operations. Code for these 3rd party libaries are maintained by WSO2 and version numbering of these 3rd party sources follow the same pattern used in kernel space.

Dependencies between code spaces


Orbit, kernel and platform spaces should be built in the mentioned order as later spaces depend on the previous space. Build process of WSO2 carbon is managed using apache maven. User can checkout necessary branch or trunk of needed code repository and build using maven with necessary build phases. Steps to be followed to build WSO2 carbon 4.2.0 code base is explained in "Building from source" page [8].

References

[1] https://svn.wso2.org/repos/wso2/carbon/
[2] https://svn.wso2.org/repos/wso2/carbon/orbit/
[3] https://svn.wso2.org/repos/wso2/carbon/kernel/
[4] http://wso2.com/products/carbon/
[5] https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/dependencies/axis2/1.6.1-wso2v10/pom.xml
[6] http://sameerak-blog.blogspot.com/2015/05/wso2-carbon.html
[7] https://svn.wso2.org/repos/wso2/carbon/platform/
[8] https://docs.wso2.com/display/Carbon420/Building+from+Source

Popular posts from this blog

Running a Docker build agent on Azure Kubernetes Service (AKS)

Azure DevOps Docker DotNet Build Agent

Building Azure DevOps pipelines with a Docker agent