Vaadin 8 and add-ons

Hi all Vaadiners,


Are existing add-ons expected to work with Vaadin8?
For example, when I compile a WidgetSet including the GoogleMaps add-on I get a ClassCastException where com.vaadin.tapio.googlemaps.client.GoogleMapState cannot be cast to com.vaadin.shared.ui.AbstractComponentContainerState. I don’t immediately see why. True, AbstrComConState may have changed, but I would have expected the error to be some mismatch when methods are called and signatures have changed.


Is it possible to release add-ons that are compatible with both 7 and 8?
If the above exception is expected then there are two choices: make changes to be compatible with V8 and compile and release against that (breaking compatability with V7) or to change the package definitions and use the new compatability jars (forcing people with V7 to use those jars and having to update everything to accommodate anyway). Have I missed something?

Thanks, Dan.

Some might work, other probably will not. It really depends on what API the add-on has used and whether that API has
changed in some way or not.

This is probably because an AbstractComponentContainerState class has been added for AbstractComponentContainer. This was done for many abstract classes which did not have a custom state class, to be able to add state content in the future without having these kinds of breaking changes at that point, in 8.x.y

While it can be possible for some add-ons, I would rather recommend creating a new version for 8 and releasing it as a new major version of the add-on. This way you can avoid potential future problems and problems with mismatching class hierarchies, like the state classes.

Thanks Artur