REVIEW - Tapestry in Action


Tapestry in Action


Howard Lewis Ship




Manning Publications Co. (2004)




Andrew Marlow


December 2005



Tapestry is a component based web development framework.

The book is organised in three sections followed by appendices. The three sections are "Getting Started", "Creating Tapestry Components", "Building Complete Tapestry Applications". The appendices are various references such as building the examples with Ant and do not have to be read as part of the main text. I rate it as highly recommended, not because there is little competition, neither because the author also happens to be the main designer and developer, but because it is well written, attractively presented and very practical in its use of example projects and code fragments.

There is a large amount of material to cover. The organisation and presentation of the book as a whole helps here and is is well done. Code fragments are extremely relevant and bear close examination. The balance between prose and code fragments is about right. Algorithms are shown using UML sequence diagrams, giving the book a modern feel. The style is formal without being stuffy and is reasonably concise despite its size.

The book fails to introduce new information in small, easily understandable chunks that build up the learner's knowledge gradually. This can cause the reader to be quickly overwhelmed. For example, each section ends with a section summary and the sections are rather long. A better way would be to start the section with a top-level description of what is to be covered. The author avoids using completely trivial example applications but does not introduce them gently, particularly the first one (the hangman game). This compounds the problem and makes the first section particularly hard to grapple with.

Tapestry makes use of a separate open source project, OGNL (Object Graph Navigation Language). However, the book does not properly introduce it. The book refers to the OGNL web site and provides virtually no other information on what it is or how Tapestry uses it. This has to be gleaned by seeing OGNL in the context of the Tapestry examples. This is hard work for newcomers to Tapestry and OGNL.

It is worth overcoming the hurdle of the first section as the material in section two seems lighter and serves to consolidate material in section one. Some of the examples in section two refer back to the hangman application but in a simple way that makes it easy to see what feature is being presented and why. Section three introduces a new example application, the virtual library. This application is presented more clearly than the hangman example, so generally the book does get easier as one progresses through it.

Book cover image courtesy of Open Library.