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.

5 comments:

  1. 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? ;-)

    ReplyDelete
  2. 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.

    ReplyDelete
  3. 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).

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

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

    ReplyDelete

Please note that this is not a support forum for Tapestry. Requests for help will be deleted. Please subscribe to the Tapestry user mailing list if you are in need of support, or contact me directly for professional (for pay) support.

Spammers: Don't bother. I delete your comments and it's a waste of time for both of us. 垃圾邮件发送者:不要打扰。我删除您的评论和它的时间对我们双方的浪费