Vaadin 7 is done, now what?
One of the lessons learned from our Vaadin 7 mega-project was that we should be taking smaller steps in future. Furthermore, we should not tie uncertain features to product releases before they are properly researched and prototyped. So we are not going to announce what we’ll be doing for the next 16 months. We’ll be also spinning off quite a few research projects outside the roadmap to prepare for the next big thing.
Here is what we are planning to release before May. It is a rather long list, so now would be good time to fetch a cup of coffee...
Vaadin Framework 7.1 brings push
7.1 will be all about server-push. We’ll be supporting both HTML5 web sockets, long polling as well as - well - just polling. Because the framework takes care of the client-server communications, this is going to be huge - everything you have already implemented with Vaadin will be push enabled automatically. For a taste of this, you can take a look at the best push add-on for Vaadin 6.
We are also planning for a quite a smaller features for 7.1:
- Vaadin Calendar will be merged into the framework as it is now fully free
- Native mode support for Internet Explorer 10 (7.0 runs IE10 in IE9 compatibility mode)
- Allow injecting styles dynamically from Java code (like this add-on)
- The Debug donsole will be redesigned with new features like:
- Generate an optimal widget set for your application to effectively to allow radically cutting down the size of initially loaded JavaScript to speed up application startup
- Generate independent implementation of the visible view. This allows you to easily build a test-case or get designers onboard to build a custom theme for your app without requiring them to set up the development enviornment for your application.
- Arithmetics support in the Sass compiler
- A mechanism for packaging CSS in add-ons without a widgetset
In addition to 7.1 are busy working on 7.0.x maintenance releases and are planning to release them frequently - once per every 2-3 weeks. The 7.0.1 version will be released next week and introduces significant rendering performance optimizations.
While the roadmap after 7.1 is not set yet, we will be researching quite a few interesting topics for inclusion in 7.x releases - including a client-side data model, a new Table and Combobox design, responsive layouts and a new theme. Nothing to report yet on these, but stay tuned.
Vaadin JPAContainer wants to be free and redesigned
JPAContainer has been around since 2010 allowing one easily use JPA as a datasource in Vaadin UI components. While it is a very powerful tool, it has also received critique for two things: 1) connecting the UI component directly to JPA leaves little space for business logic between these layers if the business logic is not implemented in the entity beans and 2) JPA support is such an integral part of the application core that a non-free license has not been an option for some. We have heard the message loud and clear and will be addressing both of the concerns.
Vaadin JPAContainer will be moved to Apache 2.0 license. Vaadin 7 support will be added in the next version 3.0 of the Vaadin JPAContainer. A beta version will be published on Feb 28th and the final 3.0 version in March. We will also publish a Vaadin 6 compatbile free version of the add-on, 2.2 by the end of February.
The limitations of the current version (and 3.0) of the add-on are that while it works well in apps with domain oriented architecture its usability is limited in SOA architectures because it bypasses the service layer. Furthermore, the transaction support is somewhat limited. Keep these in mind when you use the add-on and it can help you simplify your JPA use a lot.
For the next generation of the JPAContainer it’s architecture will be re-designed to split it to a generic lazy loading container that can handle multiple backends and contain custom logic between the Container API and the backend. Work on this design will most likely start before summer. If you want to use a JPA agnostic lazy loading container today, there is an add-on for that. Instead of planning to release a “4.0” of the JPAContainer as an add-on, we’ll most probably include the functionality directly in the Vaadin Framework in the future.
Vaadin Charts to be released next week
If you have not taken a look at our hot new visualization library already, now would be a good time. The 1.0 final version will be released next week.
Even before 1.0 is out, we are already planning the next version. Vaadin Charts 1.1 will be released in April with many new charts and features:
- Funnel series
- Box plot series
- Waterfall series
- Bubble series
- Error bars
- Color thresholds for different coloring of a graph above and below a threshold
- Pinch zooming and panning for touch devices
- Autosizing pie charts to make room for labels
Vaadin TouchKit 3.0 adds Vaadin 7 support in March
While alpha level support for Vaadin 7 was released in the beginning of the year already, there is still work to do - mostly related to optimizing performance. While the 3.0 release is mostly about Vaadin 7 support, it will also introduce a couple of new components:
- URLField
- Datefield
- Combobox
3.0 beta is planned by the end of February.
Being from the land of Nokia, we are looking for possibilities to introduce support for Windows Phones. At the moment there are two challenges we are going to work ok: adding IE10 support for Vaadin 7 and GWT as well as creating a Pointer Events API for GWT. We hope to be able to contribute this work to GWT 2.6 later on.
Book of Vaadin 7
A major API renewal of Vaadin 7 meant also a major update to Book of Vaadin. To make the challenge even larger, the API was still changing quite a bit during the beta phase and documenting a moving target was practically impossible. The deadline for the “Book of Vaadin 7” is the end of Feb, but you can read the nightly version online already.
After the book is done, we would love to see the community driven translations project going as well. Wouldn’t it be wonderful to have Book of Vaadin 7 other languages also?
Official CDI support
Adam Bien and Peter Lehto have been preparing a CDI integration for Vaadin for a while. The integration makes use of Java EE 6 CDI very natural because there are Vaadin specific contexts and one can add UIs and Views to your application just by annotating them. There are also helper utils for using JAAS in your project.
The work is available under Apache 2.0 license today. The integration looks so promising that it will be promoted to an officially supported add-on shortly. 1.0 beta is planned for March and 1.0 final a month after that.
Spring Clean-up
The roadmap is not just about adding things - we are also planning to remove some things.
Plug-in for Spring Roo is discontinued
We had great expectations for the Roo plug-in, but unfortunately it did not take off as well as we would have liked to. Thus we made a hard decision not to continue development of the Roo plug-in or to port it to Vaadin 7.
The idea is still valid and with the Apache 2.0 licensed JPAContainer this plugin could be even more powerful than before. If anyone is interested in continuing the work on the Roo plugin, we would be happy to hand it over and help promoting this work.
WSRP Add-on will not be ported to Vaadin 7
Use of Web Services for Remote Portlets (WSRP) has been quite rare with Vaadin. While the current WSRP add-on is fully functional, it has been left beta and will not be ported to Vaadin 7. With the new extension points in Vaadin 7, maintaining WSRP support could be done in your application if you really really need this. If you do, feel free to publish your support as an add-on.
XS Add-on functionality to be added to Vaadin Framework?
Being able to embed any Vaadin app in any web page is quite a value proposition. This is so useful that we’ll be researching ways to include this directly in Vaadin Framework and to discontinue this separate add-on. So do not expect release of a 1.0 version of it.
We would like to kill "Vaadin Bundle for Eclipse"
Frankly, we would like to kill this separately packaged Framework+Eclipse Plug-in bundle. The only purpose of the add-on has been to allow use of Vaadin for people who work behind strangely configured enterprise firewalls that block connections from Eclipse.
If you really really need this add-on, please comment below and explain why.
Merging products
Quite a few official add-on products are merged to other products:
- Timeline will be merged into Vaadin Charts 1.0
- Calendar will be merged into Vaadin Framework 7.1
- ColorPicker was merged into Vaadin Framework 7.0
- Bean Validation was merged into Vaadin Framework 7.0
Vaadin 6 compatible versions of these products are maintained, but further development is done within the products they are merged into.
That's (most of) it - for the next 74 days. There are some other things I would love to tell you about as well, but that would spoil the surprise :)