Vaadin 6.8.0 ("Aakenus") is available

[i]
Continuing with the
series of releases from Lapland
this week, this particular release was made in a small wilderness hut at the Aakenus fell in Lapland. The hut, or should I say the new branch office of Vaadin, is called
Porokämppä
(Reindeer Hut), because this place was important for reindeer herding. Just nearby, there is an old reindeer herding area where the reindeer were counted. Many reindeer roam the area - I saw couple on my way over the Aakenus. The hut is at the midway of a 17 km nature trail. These wilderness huts are open for all trekkers, although now in off-season there are no others here. The hut is quite comfortable, with a fireplace, a large wooden bench for sleeping, and a logbook. The ceiling is quite low. On the other side of the fell, from where I arrived last night, lie the remains of a German Junkers Ju-52 transport plane that crashed in the fell in 1944, during the 2nd world war.

[/i]
Vaadin 6.8 is the latest minor feature release that contains many significant enhancements, in addition to many bug fixes. For a list of the enhancements, see the
Release Notes
. For a detailed list of changes, see the
list of closed issues
in Vaadin Trac.

Get the installation package from the download site at
http://vaadin.com/download
. If you are using the Vaadin Plugin for Eclipse, upgrade the Vaadin version from the project preferences. If using Maven, the repositories will replicate in a few hours.

As always, when upgrading from an earlier version, you should recompile any custom widget sets and refresh your project in Eclipse. See the
General Upgrade Notes
for more details on upgrading.

PS. The codename stands for the entire 6.8 as I don’t intend to make a similar trip for every maintenance release…

Edit 11.6.2012: Added a picture of the reindeer hut and some other minor changes.
12386.jpg

Thanks for the new release. We’ll give it a try.

Quick question on closed ticket 8307 (removeAllValidators): Why was that method added to AbstractField but not the Interface Validatable, the interface that supports add and removing validators as well as getting them all? As it is, I can’t just call field.removeAllValidators() because I’m using a Field object in my Form.

I guess the reason is that it’s just a helper method. Interfaces should generally have just the essential methods, or otherwise it may easily lead to
interface bloat
.

But yeah, it’s also a problem that it’s not in the interface as it probably should logically be there. Many basic Java interfaces, such as Collection, have such methods. I think they are very well justified for optimization reasons (removing one-by-one can have huge complexity compared to removing all at once), although that is not as relevant in Validatable as it is in Collection.

If the devs don’t comment here, you could add a comment in the ticket.

Mostly because of backwards incompatibility concerns. It is supposed to be a simple convenience method, and adding the method to the interface would have required all user code directly implementing that interface to implement the new method – admittedly, the implementation would have been trivial in most cases. If you’d like to see this amended in Vaadin 7, please
create
an enhancement ticket.

Well, we already have a convenience method in our application subclass to do this, so I thought I could get rid of it with the new release, but found that field.removeAllValidators() will not work on a Field object, which seemed rather odd since my Form is built on Fields.

It seems any class that can add/remove/get validators should be able to do this as well to avoid a confused API. If there is an implementating class that cannot, then it means I cannot cast my Field object to an AbstractField, which means I’ll still have to use my own code to remove all validators individually for those. There was no coding benefit – actually it’s worse since I have to test if my Field is an instanceof AbstractField, call the built-in method for those, but still call my method if not.

Vaadin 7 beta 2 (to be released tomorrow) will add removeAllValidators() to Validatable.