As we are revamping the runtime, we were wondering about the necessity of the multiple version support.
We are trying to understand the use case of the multiple version and their importance. Typical scenarios involve multiple "products" installed in the same Eclipse where each product supplies/requires particular versions of prerequisite plugins. For example, two products which use EMF, GEF, ... where one requires version 1.0 and the other 2.0. In this case the version requirements are incompatible and either the runtime would load both versions or, if multiple version support is not available, one version would be chosen and, as a result, one of the products would be disabled.
In allowing for multiple versions plugin developers must be senstive to the distribution and use of objects/classes from different versions of the same plugin. Typical symptoms include ClassCastExceptions where, for example, an instance of class Foo from one version of plugin P is passed to someone expecting an instance of class Foo from another version of P.
To analyze your distribution of such plugins, ask yourself
- Does your public API expose a plugin which may reasonably have multple versions in the system?
- Do you simply use such a plugin internally (amongst your own plugins) and do not expose these classes in your API?
- Do any of my plugins require and then re-export plugins acquired from a third party?
Understanding your requirements for multiple version support and tolerance of the side effects will guide the support included in the Eclipse runtime.
Please enter any comments in the following bug report: https://bugs.eclipse.org/bugs/show_bug.cgi?id=41218