Why doesnt Vaadin XS Addon work with portlet on the same page?


Recently, I had a need to expose a Vaadin application as a widget so that it could be embedded in third party site. The search led me to the Vaadin XS addon, which seems to do the job.

Though, it works well for external sites even with multiple XS apps on the same page, it breaks all our current portlets. It seems that a Vaadin portlet and XS addon app cannot run on the same page even if they have been configured to use different widget sets ( portlets without XS and the other with XS addon).

Environments is Liferay 6.0.6, Portlets 2.0 & Vaadin 6.8.3 and the XS 0.9.1.

Can anyone shed any light on this?



Historically we haven’t supported using different widgetsets on the same page. That’s why probably your normal portlet now chooses to use the XS widgetset and that will efficiently brake communication. There is a non documented feature to overcome this issue. You should modify the portlet integration to explicitly define widgetset with “requiredWidgetset” init parameter. I haven’t checked what would be the most easiest method to achieve this, but here is an example of what should do it in
example (which I guess would have similar problem).

			'calc' :{
				pathInfo: '/', 
				themeUri: '/VAADIN/themes/example', 
 				requiredWidgetset: 'com.your.Widgetset' // <- this will prevent XS widgetset from starting this app

BTW. I’d suggest to build Vaadin XS from sources. Simply “mvn install” should do it. The official verison in the directory hasn’t been updated for ages and e.g. Safari is broken with that release.