We have been choosing the framework for OSA web application. We had a few requirements: we want to use Java, it must be an open source application development framework, and framework should be scalable and easy to configure (no complex XML configuration).
There are several easy to use Java web frameworks. We took into consideration Stripes, Vaadin and Liferay. The idea of studying Vaadin and Liferay was to check whether we could get the benefits of building UI quickly. Struts and Spring-MVC were not considered, since those require a lot of configuration.
Liferay is an open source portal for building websites and web applications. It is described as a content management framework. It integrates well with many Java systems. Liferay provides portlets and gadgets to develop applications. For me, Liferay was difficult to get started with. Liferay offers two editions: free Community Edition and Enterprise Edition. EE is reported being more optimized (performs better) and having the ability to report any bugs and getting it fixed. There are also extra EE-only features available.
Vaadin is an open source Java framework for building Rich Internet Applications. When working with Vaadin framework, it is possible to use Java as the only programming language without having to write HTML and CSS. Vaadin provides a library of ready-to-use user interface components. It has nice themes and a set of components precompiled in GWT. It provides a clean framework for creating your own components as well. If we choose Vaadin, we would get nice looking UI easily. I found that there is lack of Vaadin documentation. There is a good ‘Book of Vaadin’ but that’s it.
Stripes is an open source web development framework with just a few dependencies and it is based on action based MVC pattern. I found Stripes easy to learn. A configuration is needed only in a web.xml. There is also a lot of documentation available.
We ended up starting web development with Stripes. This decision was based on the fact that we wanted to select a native web framework. We have a lot of experience of Java Stripes development in this project. By selecting Stripes, we will have a control over every functionality. We can also re-use some old code parts done in earlier projects.