Blog

Tapestry on Heroku

James Ward has published a short article about how to deploy Tapestry applications on the Heroku cloud computing service: Deploy Containerless Tapestry Apps on Heroku .

The Tapestry Team is very proud to announce the availability of Apache Tapestry 5.3.2.

Tapestry is primarily available for download via Maven, from the Maven central repository:

Maven Dependency
<dependency>
  <groupId>org.apache.tapestry</groupId>
  <artifactId>tapestry-core</artifactId>
  <version>5.3.2</version>
</dependency>

You can also download the source or JavaDocs archives.

Tapestry 5.3.2 is the second maintenance release from the stable 5.3 release branch.
Full details are in the release notes, but here's a few highlights:

  • Component fields may now be protected or package private
  • TextField usable with HTML5 type values (such as "number", "email", etc.)
  • Service id 'environment' compatibility with Spring 3.1
  • Grid and BeanDisplay automatically ignore static fields
  • New translations for Norwegian Bokmål
  • Upgraded Tapestry/Spring integration to Spring 3.1.0.RELEASE

As usual for each Tapestry5 release we've made great efforts to ensure an easy upgrade path; but be sure to read the upgrade notes carefully as some interfaces and methods that were deprecated in Tapestry 5.0 or 5.1 have been removed: you should recompile and retest your application after upgrading your dependency. If you still have problems, use the Tapestry user mailing list to get support.

The Tapestry Team is very proud to announce the availability of Apache Tapestry 5.3.1.

Tapestry is primarily available for download via Maven, from the Maven central repository:

Maven Dependency
<dependency>
  <groupId>org.apache.tapestry</groupId>
  <artifactId>tapestry-core</artifactId>
  <version>5.3.1</version>
</dependency>

You can also download the source or JavaDocs archives.

Tapestry 5.3.1 is a bug fix release and represents a drop-in replacement for the previous stable 5.3 release.
Full details are in the release notes, but here's a few highlights:

  • @PerThread scope honored when service is created using autobuild
  • @ActivationRequestParameter encoded to be URL friendly
  • Exceptions while compressing JavaScript are fully reported
  • All forms/submission working normally after FileUploadException is raised
  • Asset path prefix configurable

As usual for each Tapestry5 release we've made great efforts to ensure an easy upgrade path; but be sure to read the upgrade notes carefully as some interfaces and methods that were deprecated in Tapestry 5.0 or 5.1 have been removed: you should recompile and retest your application after upgrading your dependency. If you still have problems, use the Tapestry user mailing list to get support.

Announcing Tapestry 5.3

The Tapestry Team is very proud to announce the availability of Apache Tapestry 5.3.

Tapestry is primarily available for download via Maven, from the Maven central repository:

Maven Dependency
<dependency>
  <groupId>org.apache.tapestry</groupId>
  <artifactId>tapestry-core</artifactId>
  <version>5.3</version>
</dependency>

You can also download the source or JavaDocs archives.

Tapestry 5.3 represents nearly a year of effort, and includes over 270 bug fixes, improvements, and other changes. Full details are in the release notes, but here's a few highlights:

  • Improved performance: very large sites will see a 30 - 40% improvement in throughput
  • Decreased memory footprint: about a 30% decrease in memory utilization over 5.2
  • New components and services to support user alerts and notifications
  • Improved a simplified support for partial page rendering inside Ajax requests
  • Automatic JavaScript and CSS minimization (via YUICompressor)
  • Component reference details integrated into JavaDoc
  • Improved Maven quickstart archetype
  • Skinning and themeing support
  • Improved client-side presentation of server-side exceptions during Ajax requests
  • New components, including Ajax-enabled Tree, and Kaptcha
  • HTML5 Doctype support
  • Support for JSR-330 injection annotations

In addition, 2011 marked an often intense effort to improve, revise, and expand the Tapestry web site.

We've made great efforts to ensure that the upgrade from 5.2 to 5.3 is as painless as possible. Please read the upgrade notes carefully as some interfaces and methods that were deprecated in Tapestry 5.0 or 5.1 have been removed: you should recompile and retest your application after upgrading your dependency. If you still have problems, use the Tapestry user mailing list to get support.

We've released a new release candidate for Tapestry 5.3: Apache Tapestry 5.3-rc-2.

This represents the better part of a year of work, containing over 270 bug fixes and improvements, ranging from the trivial one-line bug fixes all the way up to a complete reimplementation of how Tapestry performs bytecode transformation of component classes. Tapestry 5.3 includes significant improvements to performance (especially in production mode), and reduces the memory footprint of the running application. See the release notes for full details about improvements, upgrades, and fixed bugs and issues.

To use the release candidate, update your build.gradle to include the Apache Maven Staging Repository:

 
repositories { 
  mavenCentral() 

  // For access to Apache Staging (Preview) packages 
  mavenRepo urls: "https://repository.apache.org/content/groups/staging" 
} 

Oh, are you still using Maven? My condolences; here you go:

 
<repositories> 
  <repository> 
    <id>apache-staging</id> 
    <url>https://repository.apache.org/content/groups/staging/</url> 
  </repository> 

</repositories> 
Tapestry Feedback!

I've created a very long, detailed discussion of the importance of Feedback as a cornerstone of Tapestry. It's available from my personal blog, howardlewisship.com.

Tapestry 5.3 Beta Preview

We've released the first beta preview of Tapestry 5.3: Tapestry 5.3-beta-1.

To use it, update your build.gradle to include the Apache Maven Staging Repository:

repositories {
    mavenCentral()

    // For access to Apache Staging (Preview) packages
    mavenRepo urls: "https://repository.apache.org/content/groups/staging"
}  

Oh, are you still using Maven? My condolences; here you go:

    <repositories>
        <repository>
            <id>apache-staging</id>
            <url>https://repository.apache.org/content/groups/staging/</url>
        </repository>

    </repositories>

A short screencast highlighting improvements to Tapestry's handling of server-side errors during Ajax requests:

Tapestry 5.3 is currently in a late alpha stage; the first beta release is due soon.

Tapestry 5.3 screencast

A short screencast introducing some new components and features coming in Tapestry 5.3:

Tapestry 5.3 is currently in a late alpha stage; the first beta release is due soon.

5.2.6 Maintenance Release

A new stable version of Tapestry is available for download, Tapestry 5.2.6. We can recommend that all Tapestry 5.2 applications upgrade to version 5.2.6.

This new version addresses some client-side JavaScript issues, upgrading the built-in copy of Prototype to the latest version (1.7).

Tapestry 5.2.6 can be downloaded in either binary or source format. The release is also available via Maven:

<dependency>
  <groupId>org.apache.tapestry</groupId>
  <artifactId>tapestry-core</artifactId>
  <version>5.2.6</version>
</dependency>

Apache Tapestry version 5.3.0 is now available. This is the first alpha release of Tapestry 5.3. It is designed to be a drop-in replacement for Tapestry 5.2, adding new components and features, with lower memory utilization, and even faster startup. However, as many deprecated classes have been removed, you should certainly check the release notes. We are quite interested in any upgrade problems you may encounter ... previewing new releases and reporting back is a terrific way to contribute back to Tapestry!

Tapestry is available for download in source format, and available via the central Maven repository:

Maven Dependency
 
<dependency> 
  <groupId>org.apache.tapestry</groupId> 
  <artifactId>tapestry-core</artifactId> 
  <version>5.3.0</version> 
</dependency> 

We make bold claims right on the front page about performance and back that up with usually anecdotal evidence. It's nice that a disinterested third party has come up with their own framework performance shootout, covering everthing from Rails to Play to Wicket to (thanks to Kalle) Tapestry 5.2.5. I have to say that Tapestry significantly rocked:


There's a lot more details in the posting; Tapestry out-performed the JSP version of the test application, as well as all of the other component-based frameworks, and most of the action-oriented frameworks.

It's not charted, but Tapestry does pretty well in terms of memory and CPU utilization:

Tapestry has been getting faster, release-on-release. Kalle has promised to update the Tapestry test application to 5.3 once at least a stable alpha release is available and I expect to see some incremental speed improvement, and some more visible reduction in memory utilization.

Tapestry Magic

The new blog Java Magic has some detailed postings about Tapestry's Aspect Oriented Programming features. This is a blog to track if you are interested in some of the more advanced capabilities of Tapestry.

As noted on Manning's MEAP blog, Tapestry 5 In Action is the top book in the MEAP (Manning Early Access Program) list for the week ending March 31st, 2011:

  • Tapestry 5 in Action
  • Spring in Action, Third Edition
  • Scala in Action
  • Scala in Depth
  • Liferay in Action
  • Secrets of the JavaScript Ninja
  • Mahout in Action
  • Activiti in Action
  • Clojure in Action
  • Groovy in Action, Second Edition

That really reflects some pent-up demand, and I hope to see that level of interest continue.

Tapestry Kudos

A very happy Tapestry user, Adam Zimowski, recently posted to the Tapestry users mailing list a short description of his progress with a major Tapestry application:

Today I'm more in love with Tapestry 5 than ever before. I had a milestone demo at work which went well, and could actually show a good portion of a re-written website running and working! I'm at the heights of my project development. I'm sure there are still few more dark evenings loaded with frustration in store for my future, but I'm going to enjoy today...

From my daily work with T5 over past few months I can say with confidence it is a love-hate relationship. I get frustrated trying to get over the learning curve when things don't work. I don't enjoy stepping into the framework's guts unless I absolutely have to... But then... when I finally get things to work, it's like EVERY TIME the code is so elegant and gorgeous, it just makes me love Tapestry that much more. It's an amazing feeling, one I haven't had in many years as a Java developer.

And we love our new Spring-less world of Tapestry! We love that Tapesty IoC allows us to painlessly inject remote EJB proxies (smile) LOVE IT !!! Our app layer is as light as it can be. We literally run only on:

  • Tapestry
  • Apache commons-lang
  • And, of course, our EJB client libraries

In practice, we are able to concurrently run two completely different teams: Tapestry Devs and EJB/Hibernate devs. Both are experts within their own domain, no stepping on each other's toes (smile) Sure, this could be done with any framework, it's just that Tapestry makes it so darn easy and most importantly F-U-N (smile)

Thank you for this great framework!

Adam

You're welcome ... and lets hope the recent efforts on the Tapestry documentation, as well as Igor's new book, will help with those frustrations.