This is the WSO2 Elastic Load Balancer documentation version 2.0.1. View documentation for the latest release.

Building from Source

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

Building from the source involves the following steps:

Checking Out the Source

You can download the complete WSO2 Carbon platform, which is recommended if you intend to modify the source. You can check out the complete source anonymously from SVN with the following commands (replace x.x.x with the version of Carbon you want to build). The Carbon project comes in three sub projects that are namely, Orbit, Kernel and Platform. Download and build them in that particular order. 

Example: The following commands, shows the way in which you should checkout the source if you have developer access:

  • To checkout Orbit: 

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

    This <local-folder-name> will be replaces with a meaningful name, such as wso2carbon-orbit

     

  • To checkout Kernel:

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

    This <local-folder-name> will be replaces with a meaningful name, such as wso2carbon-kernel

     

  • To checkout Platform: 

    $ svn checkout https://svn.wso2.org/repos/wso2/carbon/platform/tags/x.x.x <local-folder-name>

    This <local-folder-name> will be replaces with a meaningful name, such as wso2carbon-platform

     

The following are the various checkout instances. You can checkout the source using the instance that is most relevant to you:

Anonymous Access

$ svn checkout http://svn.wso2.org/repos/wso2/carbon/kernel/branches/x.x.x <local-folder-name>

Developer Access

Committers must checkout the Subversion repository via HTTPS.

$ svn checkout https://svn.wso2.org/repos/wso2/carbon/kernel/branches/x.x.x <local-folder-name>

Execute the following command to commit your changes (SVN will prompt you for password).

$ svn commit --username <your-username> -m "A message"

Access Through a Firewall

If you are behind a corporate firewall which is blocking http access to the Subversion repository, you can try the developer connection:

$ svn checkout https://svn.wso2.org/repos/wso2/carbon/kernel/branches/x.x.x <local-folder-name>

Access Through a Proxy

The subversion client can be configured to access through a proxy.

Specify the proxy to use in the servers configuration file in:

  • ~/.subversion directory for Linux/Unix
  • %APPDATA%\Subversion hidden directory for Windows. (Try echo %APPDATA%)

There are comments in the file explaining what to do. If you do not have this file, get the latest Subversion client and run any command. It will create the configuration directory and template files. 

Example: Edit the servers file and add something similar to the following:

[global]
http-proxy-host = your.proxy.name
http-proxy-port = 3128

Building the Product

The following are the commands you can run to create complete release artifacts of WSO2 ELB, including the binary and source distributions. Before you start,

  • Install Maven and JDK. See Installation Prerequisites for compatible versions. 
  • Set the environment variable MAVEN_OPTS=”-Xms768m -Xmx3072m -XX:MaxPermSize=1200m” to avoid the maven OutOfMemoryError.
  • Make sure the build server has an active Internet connection to download dependencies while building.

Building using Maven

The following are the commands you can run to create complete release artifacts of WSO2 Carbon, including the binary and source distributions.

  • To build the binary and source distributions.

    mvn clean install
  • To build the binary and source distributions, without running any of the unit tests.

    mvn clean install -Dmaven.test.skip=true
  • To build 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.

    mvn clean install -Dmaven.test.skip=true -o

Setting up your Development Environment

You need to setup your development environment to be able to edit the source code according to your requirement. Setup the environment using one of the following commands:

  • If you are using Eclipse use the following command:

    mvn eclipse:eclipse
  • If you are using intelliJIDEA use the following command:

    mvn idea:idea

Committing your Changes

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

$ svn commit --username <your-username> -m "A message"