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!

Friday, September 30, 2005

Reworking Tapestry Docs and Demos

A slight shift of focus this week, especially today. I've been reorganizing the Tapestry project home page; from now on, the menu down the left side will be consistent from page to page, not contextual. The tabs across the top are now more like book marks. I think it will make navigating the site easier. Further, the first thing on the home page is another set of quick links to the most common pages, including the Users Guide, Quick Start Tutorial, JavaDoc, etc.

Now, the Quick Start tutorials represent another way to ease newbies into Tapestry. It's been something I delegated to others in the past, and it never happened, so I've taken it back on myself. I'd rather be writing new code or even fixing bugs (or working on my own labs), but I've been getting feedback that the QuickStart is making a big difference among prospective Tapestry users. In fact, there have been over 2200 downloads of the tutorials already!

In the same light is my new approach to the Tapestry demos: the Workbench and the Virtual Library. In the past, you had to build them yourself (because they use non-ASF code, and can't be distributed from the ASF). But that's asking a lot from people, especially those just casually investigating Tapestry.

The new approach is a seperate distribution for the demos, that comes from a non-ASF server (http://howardlewisship.com/downloads/quick-start/).

This bypasses the concerns of the ASF ... though it does eat into my personal web site's bandwidth! But what it means is people can get up and running with Tapestry really easily:

  • Install JBoss 4.0.2
  • Install Ant
  • Unpack the examples
  • Run the build script using Ant
  • (Re)start JBoss
  • Run the applications in a browser

A step up from this would be an installer, but I was short on time to do that today. It would be nice, and there are reasonable, free installers out there. That would eliminate the need for Ant ... but I assumed that nearly everyone interested in Tapestry would already have Ant.

It's a shame that living inside Apache causes these convulsions; it will rise up again in 4.1 when we start wanting to do deeper integration of Tapestry and existing AJAX client-side JavaScript libraries ... that work will have to take place largely off-Apache.


Anonymous said...

"Install JBoss 4.0.2"

that kills it all.

michael james said...


Tapestry can be used in any application server or servlet container. JBoss is just one of them. Probably the reason Howard recommends JBoss is most likely JBoss' support for EJBs.

If Howard reworks the demos to use Hibernate or even straight JDBC, JBoss no longer becomes necessary to run the demos. You just have to know how to configure a javax.sql.DataSource for your particular app server/servlet container.

As far as the docs are concerned, I think the first priority there is a thorough discussion of the new validation system.

The little bit of documentation up on the site which explains the validator: binding prefix does not mention what parameter on IFormComponents to specify this information. It also doesn't specify how to chain together several validators for one field in the form (if that's possible). The component reference states that ValidField is deprecated and to use the new validation features on TextField, but TextField and the other IFormComponents don't mention anything about the new validation system.

I did find one page on the wiki that covers creating custom validators, but I still have questions about it like: "in the string validator:string,required,minLength=3 are string, required, and minLength different validators as they appear to be on the wiki page, or is string the validator and required and minLength properties of the string validator as they appear to be on the Input Validation page under Users Guide on the Tapestry web site?

eli said...

Great job Howard. I think the navigation is a considerable improvement. I remember many a time I searched for the link I wanted. Also, the quick start is great. I keep checking for more.

Anonymous said...

Yep, JBoss dependency should definetly be removed, though I realize it requires much more work on VLib to make it WAR instead of EAR.
And I would definetly vote for Hibernate instead of JDO in that case. Not arguing about quality of JDO, but Hibernate is quality *and* popularity.

Anonymous said...


If you are worried about bandwidth on your personal site, why don't you host the QuickStart on the old SF tapestry project (or start a new one).

Anonymous said...

I have no idea how good Coral cache really is but you could always have two links to download the sample, one Cached and one straight from the source.

Yeroc said...

It might be worth creating a quickstart download similar to the one the Wicket people have created. I was quite impressed when I downloaded their quickstart. The download includes Eclipse & Netbeans project files. Point your IDE at the expanded download and everything's set to go. In Eclipse you can right-click on the Start.java file and choose Run-As and Jetty fires up with a little "Hello world" application. It's pretty sweet. In less than five minutes you can be modifying their tiny sample app...

Anonymous said...

i'm the first 'anonymous' in this thread.

@michael james: every other stupid web app demo on this planet comes as a simple .war file, without EJB dependencies. Why has Tapestry to break this habit? Do you really expect potential end users of this framework to do that list of preparations just to see the demo? Dream on.

@yeroc yes, yes, and yes: 10 points, max score. that's the way to go.

the quick start is also not bad, but not enough.

Anonymous said...

JBoss? You are deviating from Tapestry's "simplicity with elegance" model.

For simply running through the tutorials, I used JBuilder and Tomcat. Selecting the 'New project for existing code', and then answering a couple of questions it takes less than a minute to have the tutorial page up and running.

Howard said...

Everyone's a critic.

For the tutorials and the workbench, you can just drop the WAR in place.

For the Virtual Library,
the reality is that I can't just provide an EAR file; there's some database and etc. setup to be done. Now, I could waste a lot of time trying to address every possible application server out there or I can just choose ONE. That way, the demos are effectively turnkey. Tapestry doesn't care what server you use, but unless you are offering to build an installer that's cross-platform and application server agnostic, what we have is fine. JBoss is an easy to fine, easy to setup download. Unpack the tarball and you're done. It's just a damn demo.

Anonymous said...

Unable to resolve expression 'listeners.onOk' for Home@7cdc58[Home].
what can i do?