Follow the steps below to install a feature to WSO2 EI using a new feature installed distribution.
- Install Maven3 and Ant.
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>/repository/components/default/configuration/org.eclipse.equinox.simpleconfigurator">
).You need to update the following values:
- The name of your product should replace
<PRODUCT_HOME>
(e.g., EI-6.0.0). - The relevant profile (e.g., default, worker) should replace
$profile
. For more information about server profiles, see Creating New Server Profiles in WSO2 Carbon documentation. - Value of the
<destination>
element should bewso2ei-6.0.0/wso2/components
. - Value of the
dir
attribute in the<replace>
element should bewso2ei-6.0.0/wso2/components/default/configuration/org.eclipse.equinox.simpleconfigurator
.
For more information on the plugins, see maven-antrun-plugin and Carbon P2 plugin.
<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/maven-v4_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>file:p2-repo</metadataRepository> <artifactRepository>file:p2-repo</artifactRepository> <destination>$distribution_name/repository/components</destination> <deleteOldProfileFiles>false</deleteOldProfileFiles> <features> <feature> <id>org.wso2.carbon.tryit.feature.group</id> <version>4.3.0</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="$distribution_name/repository/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>
- The name of your product should replace
- Unzip the original product distribution (e.g.,
wso2carbon-<version>.zip
) and the relevant p2 repository (e.g., http://product-dist.wso2.com/p2/carbon/releases/wilkes/) to the same directory location. - Replace the
$distribution_name
params found inpom.xml
file, with the unzipped product distribution name (e.g.,wso2carbon-<version>
) In the
pom.xml
file list down the features you want to install into the system.
Example:<feature> <id>org.wso2.carbon.tryit.feature.group</id> <version>4.3.0</version> </feature>
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.