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. (Tryecho %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 mavenOutOfMemoryError.
- 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"