Maybe Vaadin components should be modularized in this fashion. Since anyway they are being packaged as a jar for distribution. Agreed that they don’t come and go like in the typical OSGi use case, but having a standardized mechanism for the plugin to manage them would be nice.
The same idea hit me while reading about OSGi the first time.
I used the component API as an extension point in a system long ago. I implemented a classloader for that one to allow it load UI components in-the-fly (this starts to sound familiar).
However, it was never very used feature in the system as the updating only the UI components without any other changes was rare and in real-life the full redeployment was easier.
But then again, sound like a standard comes handy when sharing components.