GWT built in Vaadin 7

Greetings from the Google I/O "History and Future of GWT" session. I am happy to announce that our 5 year "engagement period" with GWT is turning into something more serious. Vaadin 7 will include a full copy of GWT maintained by the Vaadin team.

This means that Vaadin 7 will directly support a client-side UI development model - in addition to the features already planned for it. Fear not, this does not water down the super productive server-side development model we all love. Instead it gives you an option to create a Vaadin client module when it is needed by your application (for example, offline mode).

Google announced today at Google I/O a plan to move GWT towards a more open development model, and the formation of a steering committee to oversee future development of GWT. We are happy to be able to be in that steering committee and to do our part in ensuring that GWT will develop and blossom for years to come.

One of the very interesting implications for this strategic move is that Vaadin Pro Account online support and Vaadin Key Account enterprise support plans will include support for GWT. Anyone who is building their apps using GWT today can move to Vaadin by simply replacing the jars in the project and sign up with our support. This makes us the only source for first level commercial support for GWT.

Learn more about our Vaadin += GWT product strategy

Trackback URL:

"It gives you an option to create a Vaadin client module" -- it reminds me ZK's Server+client Fusion which has been introduced two years ago.
Posted on 7/2/12 5:09 AM.
Can someone please explain exactly what you mean by being able to build a Vaadin client module?

I'd like to built enterprise-class clients with a scale of behaviour - from running in a browser to being packaged and running in Adobe AIR or using Phonegap (or Metro). For the latter cases I want the application to handle going offline - so an abstraction for data access that , when offline, uses cached data. Specific functions of the client would be packaged and installed on the client and operate online/offline. Other functions would be online only and written using the normal server-centric Vaadin model. Does Vaadin 7 let me do this in one technology? Otherwise I think I'll need to write separate client in JS(!!) and use REST services for data (with that caching layer). I'd prefer not to have to write JS.


Posted on 7/5/12 4:23 AM.
Hi Joonas,

I am a GWT developer and I know from other projects. I really like the idea of more transparency and the direction that hopefully will take.

So congrats for being in the steering committee.

But please - why create a separate maintained version of GWT? What does that have to do with "to oversee future development of GWT"? Will we be seeing a Red Hat maintained version soon?

I was my understandind that the committee should "make GWT better". I can't see it from your marketing actions.

And, btw., I can assure you that Vaadin is not a drop-in-replacement for any of the applications I developed in the past. Why should I drop-in another backend, when I already have one (well, I am doing more than Hello World Apps).
Posted on 7/5/12 9:30 AM.
Yes. This is exactly the use-case we had in mind when adding a GWT to Vaadin.

Vaadin client module is just a GWT module
Posted on 7/5/12 6:35 PM in reply to Michael McGovern.
Reason for Vaadin to include GWT instead of just (continuing to) use GWT as an external dependency are: 1) making the whole package simpler for the developer using Vaadin Framework, 2) being able to make changes to GWT directly with our own release schedule and thus to provide commercial 1st level support for GWT projects, 3) being able to combine client- and server-sides in new ways in the future, 4) have a client-side part in Vaadin where we can add features that should not go to core GWT.

I hope that people would not have such a bad taste from the word "marketing". What we try to achieve is to get more and more developers around the world to use GWT and Vaadin. Larger user-base is good for everyone as the community actively contributes back in form of new components, new integrations, new tutorials, ...

Also I hope that people do not see it as a negative thing that we as a company are selling support, services and some add-on components. No-one is forced to buy, but everyone benefits: 1) with our growing business we are able to continue increasing our investment in developing products you can use for free, 2) the commercial offering is available if you need it.
Posted on 7/7/12 3:19 PM in reply to Papick Taboada.
"I can assure you that Vaadin is not a drop-in-replacement for any of the applications I developed in the past."

Please, could you elaborate this on forum. I am sure that there are still many bugs to sort out, but with full copy of GWT inside Vaadin 7 alpha 3 there should not be any fundamental obstacle for not being able to provide fully compatible "drop-in-replacement"
Posted on 7/7/12 3:21 PM in reply to Papick Taboada.
If I understood well, then having a gwt application, I can improve it with components from the vaadin package? So, ok I remove the gwt sdk library from my gwt client project, and then add the new vaadin 7 library, containing gwt...And after then? I compile my project it will work: But how can I add to my code a Vaadin component?
For example I would like to add this line to the onModuleLoad() of my gwt main unit:

com.vaadin.ui.Panel panelVaadin = new com.vaadin.ui.Panel("Vaadin component in gwt project");

So can I use this:
RootPanel.get().add(panelVaadin); //RootPanel is a gwt component

Should I modify my Main.gwt.xml file to compile the Vaadin code in my gwt application?
<inherits name="com.vaadin.Vaadin"/> or?

Posted on 8/7/12 8:29 AM in reply to Joonas Lehtinen.
Yes, <inherits name="com.vaadin.Vaadin"/> would do the trick, but you should be using the client-side widget instead: com.vaadin.terminal.gwt.client.ui.VPanel

Unfortunately most Vaadin UI widgets have not been (yet) updated to work independently of the server-side. This will be the focus of the upcoming minor releases (especially 7.1).
Posted on 8/7/12 3:34 PM in reply to Lehel Sipos.
Thank you for the answer. Yes, you have right, the com.vaadin.terminal.gwt.client.ui.* package is for the client sife widget. Thx.
Posted on 8/7/12 4:53 PM in reply to Joonas Lehtinen.
And sorry...What other advantages do I have using the vaadin library instead of gwts? Can I use for example the SQLContainer instead of RPC-s in my gwt application? Or it just would be also a hack....thx (maybe in 7.1?)
Posted on 8/8/12 4:40 AM in reply to Joonas Lehtinen.
The main benefits of using Vaadin 7.0 today are availability of server-side development model as well as availability of commercial support. In upcoming versions we'll add more benefits - for example by making all widgets available for client-side use as well.
Posted on 8/8/12 9:50 AM in reply to Lehel Sipos.
Posted on 8/8/12 10:08 AM in reply to Joonas Lehtinen.
I have used Vaadin ui in GWT project. Can i use vaadin ui components with GWT RPC? If yes Can anyone guide me please.
Posted on 2/18/13 5:41 AM.
Would be great to see a Hello World example converting a GWT project to use Vaadin, to demonstrate how it works as a drop-in replacement for GWT, without having to rewrite an existing project.
Posted on 3/24/14 10:24 PM.
We definitely should have such an example.

Here are some old instructions:

To actually get the features from Vaadin would require one to build a hybrid application combining server-side UIs in the project. This would require moving navigation to server-side and start adding server-side views. There is no complete example for this, but we are preparing something along these lines at You may also want to join webinar on Thu about this:
Posted on 3/25/14 1:34 AM in reply to Patri Friedman.