Dynamic use of new addons

Hi all.

I am currently using Vaadin as an OSGi bundle for a modular application.

When an extension of this application is installed, new graphic components are dynamically added to the core’s gui of the application.

(For example, when I add a new extension , an icon or a form instanciated in the extension is added to the GUI of the core)


If (some day) one of the extension uses a custom Vaadin-addon (like vaadin timeline), how may I use it ? Vaadin needs to be recomplied for addon to work, and in my case, it’s not an option.

Is there some way to dynamically add vaadin addon
a GWT recompilation of the whole vaadin library ? (perhaps GWT’s runasync function may be usefull in that case ?)

Some ideas ?


I am not aware of any existing way of doing this. The main problem is the way the GWT compiler aggressively prunes unused code and optimizes the code by inlining methods and obfuscating names. The compiler does leave a record of what it has done in the symbol map file which means that you could in theory generate new code that could be “linked” against the previous widgetset.

I suspect it would be a quite large project to get something based on that to work well in practice. A simpler solution could be to benefit from the unit cache and precompiled assets introduced in GWT 2.4 and GWT 2.5 respectively that help reduce the time it takes to compile a new widgetset.