I've recently been writing some Eclipse plugins to use Kato, in particular a runtime explorer, and I came across the issue of how you actually start using the API when the first step is creating an instance of a concrete implementation of ImageFactory. How do we ensure that we don't end up building against a particular implementation and also that we can easily add others at a later point in time. I know that Eclipse provides an extension mechanism that handles part of this problem but at some point you have to connect up to the actual implementation of the API (this of course assumes that Eclipse is being used as the delivery platform rather than something else).
One possible solution that comes to mind is that we extend the ImageFactory API to enable provider specific information to be retrieved e.g. getProviderDescription, getProviderMajorVersion and getProviderMinorVersion. If we consider an Eclipse based scenario then a particular provider can use the extension point infrastructure to identify itself to a tool, and then using the provider information, the toll could give the user the choice of which one to use. -- Regards Adam Pilkington