The plug-in package manifest file specifies general information about the plug-in package, the deployment order for the plug-in modules in the package, and any dependencies for the plug-in package.

The metadata in the manifest file follows a specific XML schema. The <pluginPackage> root element encapsulates the entire plug-in package manifest. The <pluginPackage> element can contain the <dependencies> element and the <bundlesOrder> element.

The following example shows an example of a plugin-package.xml manifest file.

<pluginPackage id = "com.vmware.client.myPackage"
version="1.0.0"
name="My Plugin Name"
description="Demo package version 1"
vendor="VMware"
iconUri="assets/packageIcon.png">
 
<dependencies>
<pluginPackage id = "com.vmware.vsphere.client" version="6.0.0" />
</dependencies>
 
<bundlesOrder>
<bundle id="com.mySolution.myDataServicePlugin" />
<bundle id="com.mySolution.myUIViewPlugin" />
<bundle id="com.mySolution.myActionPlugin" />
</bundlesOrder>
 
</pluginPackage>

The <pluginPackage> element is the root element of any plug-in package manifest file. The following attributes of the <pluginPackage> contain information about the entire package.

Attribute Name

Description

id

The unique package identifier that you define. A best practice is to use namespace notation, such as com.myCompany.<PackageName>.

version

A dot-separated string containing the package version number, such as 1.0.0.

description

A short description of the package.

vendor

The name of the package vendor.

iconUri

The URI of an icon to represent the package. The location is specified relative to the manifest file.

The <dependencies> element defines any dependencies upon other plug-in packages. In the <dependencies> element, you specify each specific package dependency with a <pluginPackage> element. Each <pluginPackage> element in the <dependencies> element must have the following attributes.

Attribute Name

Description

id

The unique identifier of the package that your package depends on.

version

The version number of the package that your package depends on.

match

The version matching policy. Possible values are equal, greaterThan, lessThan, greaterOrEqual, or lessOrEqual. The match attribute is optional and defaults to greaterOrEqual if omitted.

Important

If your vSphere Web Client extension depends on plug-in packages with specific versions and might not be compatible with later versions of these plug-in packages, make sure that you define correctly the dependencies by using the match parameter. Otherwise, your plug-in package will not work and might cause errors in the vSphere Web Client.

For example, you can use the following lines in the manifest file of your plug-in package to define the minimum and maximum supported versions of the vSphere Web Client:

...
<dependencies>
   <pluginPackage id="com.vmware.vsphere.client" version="5.5.0" match=“greaterOrEqual" />
   <pluginPackage id="com.vmware.vsphere.client" version=“6.0.0" match=“lessThan" />
</dependencies>
...

If your plug-in package is only compatible with a specific version of the vSphere Web Client, you must use the equal value of the match attribute to specify the version. This ensures that when the vSphere Web Client is upgraded, your plug-in package will not be deployed, and will not cause any errors.

The <bundlesOrder> element specifies the order in which locally hosted plug-in modules are deployed to the vSphere Web Client. If your plug-in package contains both service plug-in modules and user interface plug-in modules, a best practice is to deploy the service plug-in modules first, because the user interface plug-in modules might import those services.

You specify each plug-in module using a <bundle> element inside the <bundlesOrder> element. The id attribute of the <bundle> element contains the unique identifier of the plug-in module. The value of the id attribute must match the Bundle-SymbolicName specified in the plug-in module MANIFEST.MF file included in the WAR bundle.

Note

Plug-in modules in the package that are not explicitly specified in the <bundlesOrder> list are still deployed, but in an undefined order.