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

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Carbon servers have a notion called server profiles. Logical grouping of set of features/components is known as a server profile. 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. Given below are the available profiles in WSO2 Application Server.

  • 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

You can generally start the server with the server profile name given as the input parameter as shown below.

./wso2Server.sh -Dprofile=<profileName>

However, if you want to start the server as a worker node (Worker profile), it is recommended to set the profile in the product startup script (stored in the <PRODUCT_HOME>/bin/ directory) as a system property as shown below.

'-DworkerNode=false'
  • No labels