You can upgrade your existing plug-ins created with the vSphere Web Client SDK 6.0 Update 2 by applying changes to the URL formatting and the icon usage.

To make your existing plug-ins compatible with the vSphere Web Client 6.5 and the vSphere Client, you must consider making changes to the URLs and icon definitions.

The URL changes that you must apply affect the web-platform.js, HTML, and JavaScript files where the /vsphere-client root path must not be hard-coded. You must keep the /vsphere-client root path only in the MANIFEST.MF and plugin.xml files.

The user interface bundle of each plug-in contains a specific generation of the web-platform.js file. This file is used to bootstrap the JavaScript API based on the Web browser application on which the plug-in is deployed. In vSphere 6.5, the WEB_PLATFORM.getRootPath function is added to set the correct path to both Web browser applications. To reflect this change in your existing plug-ins, add the following line inside the if(!WEB_PLATFORM) block:

WEB_PLATFORM.getRootPath = function() { return "/vsphere-client"; }

Then you must use this function to define the Web context path in the following way: my_plugin_namespace.webContextPath = WEB_PLATFORM.getRootPath() + "/my_plugin";. For example, if you have the following definition of the Web context path in vSphere 6.0 Update 2: com_vmware_samples_chassisa.webContextPath = "/vsphere-client/chassisa";, in vSphere 6.5 you must change the definition to: com_vmware_samples_chassisa.webContextPath = WEB_PLATFORM.getRootPath() + "/chassisa";.

In the HTML files of your UI extensions, you must change the URLs that start with /vsphere-client/ to use relative URL paths. This change allows the root context path to be adjusted at runtime depending on the Web browser application on which the plug-in is deployed. For example, you must change the URLs in the HTML files of the ChassisA sample from:

     <link rel="stylesheet" 
          href="/vsphere-client/chassisa/assets/css/jquery-ui-1.10.3.marge.css" />
   <script src="/vsphere-client/chassisa/assets/jquery-1.10.2.min.js"></script>
   <script src="/vsphere-client/chassisa/assets/jquery-ui-1.10.3.custom.min.js"></script>
   <script src="/vsphere-client/chassisa/resources/js/web-platform.js"></script>
   <script src="/vsphere-client/chassisa/resources/js/jquery-util.js"></script>

to the following relative paths:

    <link rel="stylesheet" href="../assets/css/jquery-ui-1.10.3.marge.css" />
   <script src="../assets/jquery-1.10.2.min.js"></script>
   <script src="../assets/jquery-ui-1.10.3.custom.min.js"></script>
   <script src="./js/web-platform.js"></script>
   <script src="./js/jquery-util.js"></script>

In the JavaScript code of your UI extensions, you can use the buildDataUrl(objectId, propList) utility function to make data requests that use the correct context path. You must remove also all mentions of /vsphere-client/ from the URLs in your JavaScript code.

Your plug-in might include external icons, such as Home view shortcut icons, menu icons, dialog box title icons, and object list icons. In vSphere 6.0 Update 2, these icons are defined in the plugin.xml by using the following #{key} format and their values are set in the .properties files. The vSphere Web Client uses the default resource bundle declared in the plugin.xml manifest file to load the icons.

In vSphere 6.5, the vSphere Client loads the external icons that are defined with separate CSS classes in the additional plugin-icons.css file located in the assets/css/ directory of your UI component. The CSS class names must follow the .bundleName-iconName pattern and you must set the width, height, and display attributes for each class. Use the following settings for object list icons:

vertical-align: text-bottom; 
margin: 1px 4px 0; 

For Home screen shortcuts and dialog box title icons, use the following setting:

vertical-align: top;

To make the vSphere Client aware of these external icons, declare the plugin-icons.css CSS file as a dependency in the plugin.xml manifest file.