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/.

Installing Features Using POM Files

Follow the steps below to install a feature to WSO2 EI using a new feature installed distribution.

  1. Install Maven3 and Ant.
  2. Create a directory and copy the pom.xml file given below.

    This example provides a sample pom.xml file to create a new feature installed distribution, which uses the default profile (<profile>default</profile>) and the corresponding directory path (dir="<PRODUCT_NAME>/wso2/components/default/configuration/org.eclipse.equinox.simpleconfigurator">). For more information on the plugins, see maven-antrun-plugin and Carbon P2 plugin.

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>org.wso2.sample</groupId>
      <artifactId>sample-feature-installation</artifactId>
      <version>1.0.0</version>
      <packaging>pom</packaging>
      <name>New feature</name>
      <url>http://wso2.org</url>
      <build>
        <plugins>
          <plugin>
            <groupId>org.wso2.maven</groupId>
            <artifactId>carbon-p2-plugin</artifactId>
            <version>1.5.4</version>
            <executions>
              <execution> 
                <id>feature-install</id>
                <phase>package</phase>
                <goals>
                  <goal>p2-profile-gen</goal>
                </goals> 
                <configuration>
                  <profile>default</profile>
                  <metadataRepository>http://product-dist.wso2.com/p2/carbon/releases/wilkes/</metadataRepository>
                  <artifactRepository>http://product-dist.wso2.com/p2/carbon/releases/wilkes/</artifactRepository>
                  <destination>wso2ei-6.1.1/wso2/components</destination>
                  <deleteOldProfileFiles>false</deleteOldProfileFiles>
                  <features>
                    <feature>
                      <id>org.wso2.carbon.hl7.feature.group</id>
                      <version>4.6.6</version>
                    </feature>
                  </features>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.1</version>
            <executions>
              <execution>
                <phase>package</phase>
                <configuration>
                  <tasks>
                    <replace token="false" value="true" dir="wso2ei-6.1.1/wso2/components/default/configuration/org.eclipse.equinox.simpleconfigurator">
                      <include name="**/bundles.info"/>
                    </replace>
                  </tasks>
                </configuration>
                <goals>
                  <goal>run</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      <repositories>
        <repository>
          <id>wso2-nexus</id>
          <name>WSO2 internal Repository</name>
          <url>http://maven.wso2.org/nexus/content/groups/wso2-public/</url>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>daily</updatePolicy>
            <checksumPolicy>ignore</checksumPolicy>
          </releases>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>wso2-maven-releases-repository</id>
          <url>http://maven.wso2.org/nexus/content/repositories/releases/</url>
        </pluginRepository>
        <pluginRepository>
          <id>wso2-maven-snapshots-repository</id>
          <url>http://maven.wso2.org/nexus/content/repositories/snapshots/</url>
        </pluginRepository>
      </pluginRepositories>
    </project>
  3. Unzip the original product distribution (e.g., wso2carbon-<version>.zip) to the same directory location.  
  4. In the pom.xml file list down the features you want to install into the system. For example:

      <features>
        <feature>
            <id>org.wso2.carbon.hl7.feature.group</id>
            <version>4.6.6</version>
        </feature>
    </features>
  5. Execute the following command:

    mvn clean install

    Upon successful invocation of the build, the product distribution is provisioned with the new features. This approach is scriptable.