Integrating Vaadin with an existing desktop application

We are building a a decentralized anonymous microblogging system with a emphasis on free speech. It is written entirely in Java with Maven as a build tool. We are now at the stage when we need to build a modern looking, consumer orientated UI for an initial release.

We had initially considered Swing, but after much deliberation came to the conclusion that Swing would not offer the modern UI we are after. We considered our options and decided to use Vaadin, as it offered a good looking and fluid experience out of the box. The idea is that we’ll create a small embeded web server that will serve up a Vaadin UI to the user’s local web browser (which we’ll launch using java.awt.Desktop.browse()).

We are, however, having issues integrating Vaadin with the existing project. Our project is not what Vaadin was intended for and all the documentation is written with a web application in mind.

Our project does not have a WAR structure because it is a stand-alone desktop application, of which the UI is a relatively small component. We imagine that we will have to use a lightweight servlet server like Jetty but are unsure of how to exactly incorporate this with our existing project. Would it be possible to do some sort an embedded WAR structure and use Vaadin this way? If so, what would be the steps involved in achieving this?

You can view our source code at:

https://github.com/sanity/tahrir

And you can get a lot more background on the project here:

https://github.com/sanity/tahrir/wiki

Any help is very much appreciated.

Kieran.