Tapestry Training -- From The Source

Let me help you get your team up to speed in Tapestry ... fast. Visit howardlewisship.com for details on training, mentoring and support!

Thursday, April 17, 2008

New Tapestry 5 Features

I've been using Tapestry 5 for a client project, which is a great chance to find the rough edges. If you've been following the bug list, you'll have seen lots of minor bug fixes, many related to JavaScript.

I've also added a couple of powerful new features.

The Grid component now has an inplace parameter; setting this to true "Ajax-ifies" the Grid; it updates in place. Clicking any of the paging or sorting controls will repaint the Grid in place, without affecting the rest of the page. Handy. I had originally though in terms of creating an AjaxGrid component for this purpose capable of redrawing individual cells ... now I'm not so sure that's necessary.

Perhaps more importantly, I've added a new annotation, @CommitAfter, that can be placed on component methods, to indicate the Hibernate transaction should be committed after invoking the method. It can also be used with services, via a decorator. In any case, much of the work was contributed by Igor Drobiazko.

These features are available in the nightly build, and will be part of Tapestry 5.0.12.

They are also a good indication of how Tapestry future backwards compatibility will work. The new behaviors "slots in" with the existing behavior. In this case, a new annotation triggers new behavior, or a new parameter is added to an existing component. These are the vectors by which Tapestry adapts to your code (and not vice-versa).

In the future, we'll be adding much more dramatic new features, as well as integrations with other frameworks, such as Seam, Spring Web Flow, Lucene, Quartz and other parts of the evolving standard open source stack. But due to the baked in elegance of Tapestry, they will integrate with barely a ripple.


Ken said...

Glad to hear that Tapestry 5 is finally nearing a final release and has backwards compatibility in mind :-)
So...any idea on when 5.0.12 might be available? ;-)

Howard said...

Nightly builds are available for T5, or you can download the source and build it yourself (as much as I hate Maven, it's pretty easy to build the code).

An official 5.0.12 beta release? Given that the source code and compiled JARs are available, it doesn't feel pressing until 5.0.12 is really ready to be a release candidate.

silvian said...

Hi Howard.
During the Tapestry presentation at the Bellevue software symposium there where some issues and you restarted Jetty few times. I think this may be cause:

You can edit a controller or service class, save it and reload the page. The only changes that require a restart are domain class changes (required by Hibernate since the underlying mapping may have changed).

Ken said...

ok, so any idea when a release candidate for 5.0.12 might be available? ;-)

searchfull said...

The Grid component inplace parameter has Chinese problem,Chinese can't display.loving Tapestry5