I have a set up where our server is an extension server to the VCServer and our UI plugin is being served by the extension server
Our client registration code looks like this (similar to the samples)
ExtensionClientInfo eci = new ExtensionClientInfo();
So if we have an extension server version 1.5, our plugin version is set to 1.5. This is great in the sense that if a new extension server version was found, the system detects that the new plugin needs to be downloaded.
However there is an issue that I am facing here -
1. Lets say we go through with installing the extension server and use the "Manage Plugins" in VI client to download our plugin (from client_install_url) and install it. So we have 1.5 version of the UI and 1.5 version if the extension server.
2. Imagine there is another cluster being managed by the 2.0 version of our extension server (like an upgraded environment). So we point VI client to that cluster and now the "Manage plugins" says there is a newer (2.0 version) of the client that is available to download and install. We go through with the process of installing the 2.0 version of the client and that goes through fine.
3. However, now we have the 2.0 version of the plugin and we want to go back to the clusters that was being managed by the 1.5 extension server. Now we have an issue that our client tab does not show up due to the version mismatch. The only option at this point is to uninstall 2.0 plugin and reinstall 1.5 so that the cluster (managed by the 1.5 extension server) can now be controlled from our tab in VI client.
It sounds like a lot of uninstall and re-install client plugin for the sake of going to and fro between clusters managed by extension server 1.5 and 2.0 separately. It sure sounds like the 2.0 version of the plugin should be forgiving about the 1.5 extension server as it is backward compatible but I am not sure how to express it through "eci.setVersion(VERSION)". Is there a way to say plugin version is considered changed only if it exceeds the number (as in this case >2.0) and have the 2.0 plugin talk to the extension server version 1.5?
Any pointers are appreciated.