This site contains the documentation that is relevant to older WSO2 product versions and offerings.
For the latest WSO2 documentation, visit https://wso2.com/documentation/.
Building from Source
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 WSO2 ESB 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 4 of the Turing
platform release contains Carbon 4.2.0 plus ESB 4.8.0 and other products.
Checking out the patches
Before checking out the product source, you need to checkout the patches related to the Carbon chunk using the following command.
$ svn checkout https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/ <local-platform-directory-1>
Replace <local-platform-directory-1>
with a meaningful name, such as wso2carbon-platform.
Downloading the product source
For products based on WSO2 Carbon 4.2.0, use the below command to download the product source:
$ svn checkout https://svn.wso2.org/repos/wso2/carbon/platform/tags/turing-<release-chunk>/ <local-platform-directory-2>
Replace <release-chunk>
with the release chunk, on which the specific product version is based on. To find out the respective release chunk, see the Release Matrix.
ESB 4.8.0 is released in Turing
chunk 4, which you can download using the checkout
command as shown below (replace <local-platform-directory-2>
with a meaningful name, such as wso2carbon-platform
):
$ svn checkout https://svn.wso2.org/repos/wso2/carbon/platform/tags/turing-chunk04/ <local-platform-directory-2>
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:
IDE | Command | Additional information |
---|---|---|
Eclipse | mvn eclipse:eclipse | http://maven.apache.org/plugins/maven-eclipse-plugin/ |
IntelliJ IDEA | mvn idea:idea | http://maven.apache.org/plugins/maven-idea-plugin/ |
If you are using a later Eclipse version and if you get errors (library path etc.) when trying to import the source code using the Existing Projects into Workspace, follow the steps below to solve them by importing the source code as a Maven project.
- Build the source using the command:
mvn clean install
- Open Eclipse and click Import in the File menu and then click Existing Maven Projects as shown below:
Building the product
Follow the instructions below to build the product after editing the source code:
- Make sure the build server has an active Internet connection to download dependencies while building.
- 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.
- Navigate to each folder representing the patches within the
<local-platform-directory-1>
- To create complete release artifacts of the products released with this chunk version, including the binary and source distributions, go to
directory and run the Apache Maven commands stated in the above step. To build only a selected product/s , open<local-platform-directory-2>/
product-releases/
<turing-chunk04>/
file, and comment out the products you do not want to build and run the relevant Maven command.<local-platform-directory-2>/product-releases/<turing-chunk-04>/products/pom.xml
After building the source, you can find the artifacts/product binary distribution package of the product in the <local-platform-directory-2>
/products/<product_name>/<product_release_version>/
modules/distribution/target/
directory.
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"