This documentation is for WSO2 Carbon 4.2.0. View documentation for the latest release.
Multiple Profiles - Carbon 4.2.0 - WSO2 Documentation
||
Skip to end of metadata
Go to start of metadata

Carbon servers have a notion called server profiles. Logical grouping of set of features/components is known as a server profiles. Every Carbon server has a default shipped profile named 'default' profile. This default profile consists of the complete feature set corresponding to a particular product. For an example, the WSO2 Application Server's default profile has all the feature set that corresponds to an application server.

Apart from the default profile, a server can have several other server profiles depending on the use cases.

Example

The available profiles in an WSO2 Application Server are:

  • default - default profile
  • worker - This profile only consists of the back-end feature set of the Application Server. That is it does not include the management console related features of Application Server. This profile is used to start the server as a worker node, in a worker-manager setup.

Likewise, the exact number/name of server profiles, depends on the individual products/servers.

Installing features to the default profile

The Carbon kernel gets shipped with the default profile. Therefore, it is just a matter of installing new features on top of the existing 'default' profile.

<execution>
	<id>3-p2-profile-generation</id>
	<phase>package</phase>
	<goals>
		<goal>p2-profile-gen</goal>
	</goals>
	<configuration>
		<profile>default</profile>
		<metadataRepository>file:${basedir}/target/p2-repo</metadataRepository>
		<artifactRepository>file:${basedir}/target/p2-repo</artifactRepository>
		<destination>
			${basedir}/target/wso2carbon-core-${carbon.kernel.version}/repository/components
		</destination>
		<deleteOldProfileFiles>true</deleteOldProfileFiles>
		<features>
			<feature>
				<id>org.wso2.carbon.custom.feature.group</id>
				<version>$custom.verion</version>
			</feature>
		</features>
	</configuration>
</execution>

Creating a new server profile and installing features

Creating a new server profile is equal to, materializing a new profile. Therefore, first we have to publish the product definition to a P2-repo and refer it while materializing a product.

Publishing the product definition to p2-repo

<execution>
	<id>publishing product</id>
	<phase>package</phase>
	<goals>
		<goal>publish-product</goal>
	</goals>
	<configuration>
		<productConfigurationFile>
			${basedir}/carbon.product
		</productConfigurationFile>
		<executable>
			${basedir}/target/org.eclipse.equinox.executable_3.5.0.v20110530-7P7NFUFFLWUl76mart
		</executable>
		<metadataRepository>file:${basedir}/target/p2-repo</metadataRepository>
		<artifactRepository>file:${basedir}/target/p2-repo</artifactRepository>
	</configuration>
</execution>

Creating a new user profile

<execution>
	<id>creating a new profile</id>
	<phase>package</phase>
	<goals>
		<goal>materialize-product</goal>
	</goals>
	<configuration>
		<productConfigurationFile>${basedir}/carbon.product</productConfigurationFile>
		<metadataRepository>file:${basedir}/target/p2-repo</metadataRepository>
		<artifactRepository>file:${basedir}/target/p2-repo</artifactRepository>
		<targetPath>file:${basedir}/target/wso2carbon-core-${carbon.kernel.version}/repository/components</targetPath>
		<profile>worker</profile>
	</configuration>
</execution>

Installing features to 'worker' profile

<execution>
	<id>p2-profile-generation-for-worker-profile</id>
	<phase>package</phase>
	<goals>
		<goal>p2-profile-gen</goal>
	</goals>
	<configuration>
		<profile>worker</profile>
		<metadataRepository>file:${basedir}/target/p2-repo</metadataRepository>
		<artifactRepository>file:${basedir}/target/p2-repo</artifactRepository>
		<destination>
			${basedir}/target/wso2carbon-core-${carbon.kernel.version}/repository/components
		</destination>
		<deleteOldProfileFiles>true</deleteOldProfileFiles>
		<features>
			<feature>
			<id>org.wso2.carbon.core.common.feature.group</id>
			<version>${carbon.platform.version}</version>
			</feature>
			<feature>
			<id>org.wso2.carbon.core.server.feature.group</id>
			<version>${carbon.platform.version}</version>
			</feature>
			<feature>
			<id>org.wso2.carbon.core.runtime.feature.group</id>
			<version>${carbon.platform.version}</version>
			</feature>
			<feature>
				<id>org.wso2.carbon.custom.feature.group</id>
				<version>$custom.verion</version>
			</feature>
		</features>
	</configuration>
</execution>

Listing the available profiles in a server

  1. Start the server with -DosgiConsole system property.
    This will give the access to the OSGi console.
  2. Execute the command provlp.
    This will give the list of server profiles available in the run-time.

Starting a specific server profile

Start the server with the server profile name given as the input parameter.

./wso2Server.sh -Dprofile=<profileName>
  • No labels