This documentation is for WSO2 Carbon 4.2.0. View documentation for the latest release.
Building from Source - Carbon 4.2.0 - WSO2 Documentation
||
Skip to end of metadata
Go to start of metadata

WSO2 invites you to contribute by checking out the source from the Subversion (SVN) source control system, building the product and making changes, and then committing your changes back to the source repository. (For more information on Subversion, see http://svnbook.red-bean.com.) The following sections describe this process:

Building from source is optional. Users who do not want to make changes to the source code can simply download the binary distribution of the product and install it.

Checking out the source

WSO2 products are built on top of WSO2 Carbon Kernel, which contains the Kernel libraries used by all products. When there are changes in the Carbon Kernel, they are bundled and released in a new WSO2 Carbon version (for example, WSO2 Carbon 4.2.0).

A WSO2 platform release is a set of WSO2 products based on the same Carbon release. For example, Turing is the platform release name for WSO2 Carbon 4.2.0 and the WSO2 products that are based on it. Usually, not all products in a platform get released at the same time, so they are released in chunks, each of which contains the Carbon release and a subset of products. For example, chunk 2 of the Turing platform release contains Carbon 4.2.0 plus WSO2 APIM 1.5.0 , WSO2 ELB 2.1.0 , and WSO2 G-Reg 4.6.0. When you want to build a product from source, you download and build the appropriate platform chunk. (To determine which chunk to use for a specific product version, see the Release Matrix).

You need to checkout the patches related to the Carbon chunk using the following command, before checking out the product source. Replace <local-platform-directory-1> and with a meaningful name, such as wso2carbon-platform.

$ svn checkout https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/<local-platform-directory-1>
 
You can download the complete WSO2 Carbon release, which is recommended if you intend to modify the source. The Carbon project comes in three sub projects: Orbit, Kernel, and Platform. Download and build them in that specific order. You can check out the source code anonymously using the checkout command as shown in the following examples. Replace x.x.x with the version of Carbon you want to build and <local-x-directory> with meaningful names, such as: svn checkout https://svn.wso2.org/repos/wso2/carbon/orbit/tags/4.2.0 wso2carbon-orbit.

Orbit:

$ svn checkout https://svn.wso2.org/repos/wso2/carbon/orbit/tags/x.x.x <local-orbit-directory>

Kernel:

$ svn checkout https://svn.wso2.org/repos/wso2/carbon/kernel/tags/x.x.x <local-kernel-directory>

Platform:

$ svn checkout https://svn.wso2.org/repos/wso2/carbon/platform/tags/turing <local-platform-directory>

Checking out patches

If you are building any of the Kernel patches, you need to first check out the relevant patches from this location: https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/patches/.
Note that if you are going to use any of the patches given below, a few additional changes are required in the POM files. Expand the following links for details:

 patch0003

To manually update the POM files:

  1. Open the POM file of patch0003 from here: https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/patches/patch0003/orbit/jdbc-pool/7.0.34.wso2v1/pom.xml
  2. Add <version>1.4.0</version> to the following section:

    <plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <version>1.4.0</version> 
    <extensions>true</extensions>
 patch0009

To manually update the POM files:

  1. Open the POM file of patch0009 from here: https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/patches/patch0009/orbit/hazelcast/3.0.1.wso2v1/pom.xml
  2. Add <version>1.4.0</version> to the following section:

    <plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <version>1.4.0</version> 
    <extensions>true</extensions>
 patch0010

To manually update the POM files:

  1. Open the following POM files for patch0010.
  2. Add <version>1.4.0</version> to the following section in all of the above POM files:

    <plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <version>1.4.0</version> 
    <extensions>true</extensions>
  3. In the https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/patches/orbit/tomcat/pom.xml file, remove the following:

    <Bundle-Classpath>patch.jar.,</Bundle-Classpath>
 patch0012

To manually update the POM files:

  1. Open the POM file of patch0012 from here: https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/patches/patch0003/orbit/jdbc-pool/7.0.34.wso2v1/pom.xml
  2. Add <version>1.4.0</version> to the following section:

    plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <version>1.4.0</version> 
    <extensions>true</extensions>

Building the product 

Before you build:

  1. Make sure the build server has an active Internet connection to download dependencies while building.
  2. Install Maven and JDK. See Installation Prerequisites for compatible versions.
  3. Set the environment variable  MAVEN_OPTS="-Xms1024m -Xmx4096m -XX:MaxPermSize=1024m" to avoid the Maven OutOfMemoryError.

To create complete release artifacts of the products released with this chunk version, including the binary and source distributions, go to <local-platform-directory>/repos/wso2/carbon/platform/tags/turing-chunkXX/product-releases/chunk-XX and run the following Apache Maven commands. To build only a selected product/s, open the <local-platform-directory>/repos/wso2/carbon/platform/tags/turing-chunkXX/product-releases/chunk-XX/products/pom.xml file, comment out the products you do not want to build and run the relevant Maven command.

For example, if you want to build chunk-02 use the following path:

<local-platform-directory>/repos/wso2/carbon/platform/tags/turing-chunk02/product-releases/chunk-02/

CommandDescription
mvn clean install

The binary and source distributions of the chunk release.

mvn clean install -Dmaven.test.skip=true The binary and source distributions, without running any of the unit tests.
mvn clean install -Dmaven.test.skip=true -o
The binary and source distributions, without running any of the unit tests, in offline mode. This can be done only if you have already built the source at least once.

Setting up your development environment

Before you edit the source code in your IDE, set up your development environment by running one of the following commands:

IDECommandAdditional information
Eclipsemvn eclipse:eclipsehttp://maven.apache.org/plugins/maven-eclipse-plugin
IntelliJ IDEAmvn idea:ideahttp://maven.apache.org/plugins/maven-idea-plugin

Committing your changes 

If you are a committer, you can commit your changes using the following command (SVN will prompt you for your password):

$ svn commit --username your-username -m "A message"
  • No labels