Community Spotlight - June 2015

Matti Tahvonen
Matti Tahvonen
On Jun 30, 2015 4:00:00 AM

It is time to wrap up some latest community activities.

Yet another alternative JVM language supported

Kotlin is a programming language developed by JetBrains (the company behind IntelliJ IDEA, TeamCity and lots of other development tools). It is typically compiled to Java bytecode and executed in the JVM, but can also be compiled to JavaScript or for execution in Android. Sergei Egorov created an integration project called Vaadlin to provide a nice Vaadin API for Kotlin users. Check that out, if you are interested in Kotlin or alternative JVM languages in general. There is also a nice example project based on Spring Boot.

OSGi and Vaadin ClassResources

I recently got a question about OSGi and using Vaadin ClassResources from bundles. The gotcha is that the resource files have to be in "exported" packages or the class special loader cannot find the resources. I consulted the OSGi guru Florian Pirchner who got inspired to write instructions and a helper library for the subject.

Vaadin and JSF shield you from low level web technologies

Ed Burns (Oracle, JSF spec lead) is known to like Vaadin as well. That is no surprise as Vaadin and JSF share the same core idea of abstracting away the low level complexities of web development. He discusses this in his notes he wrote about his Geekout trip. Like Ed, I see that the upcoming WebComponent standard will not make tools like JSF and Vaadin by any means irrelevant, but just make using and extending them easier. Something I'd like to note to Ed is that the server side Vaadin, that is used by most users, is actually totally decoupled from GWT. We could switch (back) to a version with a "browser thin client" implemented without GWT, and most users would need to do nothing, except upgrade their version number. The whole GWT distribution is included in Vaadin libraries just to make it more convenient to create and consume client side extensions or to mix the best technologies for each use case.

Data Binding with Vaadin

Krishna Phani Kumar has continued his tutorial-like articles about Vaadin usage. This time he is discussing the basics of data binding and forms with Vaadin's BeanFieldGroup. Good stuff to cover the basics, although I personally always emphasize using the “non-buffered” mode (with detached entities) and using "eager validation" in forms to make the code simpler and the UX better for the end users.

The lesser complexity achieved by using non-buffered input fields allowed me to tackle the second most voted feature for core Vaadin, support for cross field validation. I built the solution as a prototype into the Viritin add-on, but I'm confident that the solution is ready for real use. You can either use programmatic validators or add standard JSR 303 annotations to your entity classes. In case you try it out and find some issues in it, let me know about them via the github project.


Did you know you can nowadays use Vaadin’s Grid with PHP as well? May sound like a bizarre idea for existing Vaadin users, but with our recently launched Components project (see Google IO Polymer talk where Vaadin Components were featured), you can now use Grid in pretty much any kind of web project. Artur Signell set up an example that populates a Grid from a MySQL table using a PHP script.

Matti Tahvonen
Matti Tahvonen
Matti Tahvonen has a long history in Vaadin R&D: developing the core framework from the dark ages of pure JS client side to the GWT era and creating number of official and unofficial Vaadin add-ons. His current responsibility is to keep you up to date with latest and greatest Vaadin related technologies. You can follow him on Twitter – @MattiTahvonen
Other posts by Matti Tahvonen