This documentation is for WSO2 Carbon 4.2.0. View documentation for the latest release.
Installing Features using pom Files - Carbon 4.2.0 - WSO2 Documentation
||
Skip to end of metadata
Go to start of metadata

Prerequisites

Maven3 and Ant needs to be installed.

Steps

The following are the steps for creating a new feature installed distribution:

  1. 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., ESB-4.8.1).
    • The relevant profile (e.g., default) should replace $profile. Read more about profiles from here.
    <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>Creating custom distribution</name>
    	<url>http://wso2.org</url>
    	<build>
    		<plugins>
    			<plugin>
    				<groupId>org.wso2.maven</groupId>
    				<artifactId>carbon-p2-plugin</artifactId>
    				<version>1.5.3</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>true</deleteOldProfileFiles>
    							<features>
    								<feature>
    									<id>org.wso2.carbon.tryit.feature.group</id>
    									<version>4.2.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="<PRODUCT_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-maven2-repository</id>
    			<url>http://dist.wso2.org/maven2</url>
    		</pluginRepository>
    		<pluginRepository>
    			<id>wso2-maven2-snapshot-repository</id>
    			<url>http://dist.wso2.org/snapshots/maven2</url>
    		</pluginRepository>
    	</pluginRepositories>
    </project>

    Read more about the following plugins:

  2. Unzip p2-repo.zip (from http://dist2.wso2.org/p2-zip/carbon/releases/<carbon-version>/ directory) into a folder named p2-repo, which is in the same location as the product distribution. 
  3. Replace the $distribution_name params found in the pom.xml file, with the unzipped product distribution name (e.g., wso2carbon-<version>
  4. 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.2.0</version> 
    </feature>
  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.

  • No labels