As the creator of Apache Tapestry, my personal goal is to see Tapestry widely adopted throughout the industry. I want to see Tapestry become a de facto standard in the Java web development space. In fact, I think Tapestry is good enough that people should migrate to Java just to use it!
However, even the right technology isn't going to be adopted if it's too hard to get started. We've tried to make Tapestry 5 much easier to jump into than the versions that preceded it, including a Maven archetype (project template) to get you started. With that hurdle cleared, the next one is understanding this powerful, subtle and occasionally obscure tool. The reference documentation for Tapestry is fine as far as it goes, but it simply is not organized as a way to learn Tapestry.
This document, this living Wiki page, is the way forward. We're going to tackle a realistic application from start to finish right here. You'll be able to follow along and see how Tapestry to start a Tapestry application, and how to incrementally grow it, adding features quickly and easily.
Why you should care about Tapestry
Ever notice that building web applications in Java is a bit ... frustrating? Stop for a minute and think about how you've worked over the last few years. How many of these questions would you ask yourself:
- Why is developing even simple web applications in Java so frustrating?
- Why do I have to write so much boilerplate code, and so much ugly XML configuration?
- Why is it so hard to test my application?
- Why do I keep having to cut-and-paste chunks of code?
- Why do my team members keep bumping into each other's changes?
- How many times did I rebuild and redeploy my application today?
Web development should be pretty straightforward: requests come in, HTML goes out, databases get read and updated. Despite this, web development, especially Java web development, is a slow, tedious process, full of edge cases and tiny problems. The heavyweight tools we use: Java, build scripts, servlet containers and all that ... they just can't keep up. Where Ruby, Python and PHP coders get quick results and can work incrementally, making small changes and seeing those small results, Java developers work slowly in a constant code-compile-deploy-test cycle. Worse, Java developers write much, much more code to accomplish the same amount of work as the others.
Sure, Java is the Way To Go for the Enterprise. It is High Performance. It has lots of libraries and tools and IDEs. Despite this, Java developers don't have the productivity of Ruby and PHP developers. The process is just too cumbersome.
Until Tapestry 5.
Tapestry is designed to be concise: less code, leaner templates. Tapestry code hot deploys: you make the change in your IDE, at it is immediately picked up. Tapestry encourages reuse in the form of components, and component are far, far easier to build (and more useful) than JSP tags. Tapestry scales up from single page mini-applications to applications with hundreds of pages. It works well with a single developer or large diverse teams.
Tapestry has many important features baked right into the framework:
- Localization and internationalization.
- Sophisticated user input validation, including client-side validation.
- Best-of-breed exception reporting, to set you straight when things go wrong.
- A built-in Inversion of Control container, making it a snap to build complex system (or hook into Spring).
- Built-in Ajax support.
- Automatic GZIP content compression.
Basically, Tapestry gives you a headstart on day one of your project, and keeps on giving through the entire development lifecycle.
An Overview of This Book
This book is the story of the development of a specific application, BookMyVacation. The book and the application were developed in parallel. The source code for the application will be made available.
We'll start by describing the problem, then detour through setting up a working development environment using Eclipse and Maven. From there we'll start with a bit of the application, step back to plan the rest and get implementing! Along the way, we'll we'll touch on all the major and many of the minor features of Tapestry and build up a feel for how it all fits together. By the end of the book we'll be tackling some very sophisticated problems, such as generating custom PDFs from within Tapestry pages.
About Tapestry Versions
This book is being written in parallel with the development of Tapestry 5.1. Most of it will work fine even with the final release of Tapestry 5.0, version 5.0.18.
In some cases, we'll identify a version of Tapestry (such as when initially setting up the application). You may have to be dilligent about checking the Tapestry home page for the current version. Also, minor details may change over time.
About the Author 
Howard Lewis Ship is the creator of Apache Tapestry. He's previously written the definitive book on Tapestry 3: Tapestry in Action for Manning Press.
|
Recently Updated
|
Navigate space |
123nikeshoes.com - Find tons of original [http://www.123nikeshoes.com|Nike shoes] for sale. Choose your pair of shoes directly from our gigantic [http://www.123nikeshoes.com|Nike Shox] shoes inventory including [http://www.123nikeshoes.com/Nike-Shox-Rival.html|Nike Shox Rival] models.

Thanks for writing this article. This way, other people can say that Tapestry is rubbish, without ever trying it themselves, which seems to be fashionable these days. As for the book, I found many by http://rapid4me.com SE, but after reading yours it seems to me you are looking for perfection. still, most of us understand that any web-related framework will ever be perfect for everybody, due to the nature of the beast.