Third-party libraries deployed and utilized by the vCenter Server appliance (VCSA) for its own needs that are currently exposed to partner plugins will be restricted and no longer available, effective with vSphere 8.0.
In the versions of vSphere up to 7.0, local plugins can import packages from third-party libraries deployed for the needs of the vSphere Client platform. This is problematic for multiple reasons, such as:
-
Changes to internal vSphere Client APIs could break plugin compatibility.
-
Changes to a particular vSphere Client dependency (e.g. to consume security updates) could impact plugin compatibility.
-
Unnecessary 3rd-party dependencies decrease performance of the vSphere Client. (Most plugins need only libraries related to the Spring framework.)
-
Partner plugins can fail when VMware updates third-party libraries in response to security vulnerabilities.
For these reasons, VMware will require plugin developers to supply their own OSGi Java dependencies. Any Spring Framework, JSON/XML serialization, Apache utilities, etc. will have to be provided as part of the plugin: either as separate OSGi bundles or included in an existing plugin bundle's class path.
The library isolation will be in effect from vSphere 8.0.
Following are detailed guides on how to comply with the new OSGi requirements. A local setup refers to when a developer runs the vSphere Client process on their developer machine in contrast to CloudVM setup, where the vSphere Client process runs inside the vCenter Server Appliance.