Welcome to Apache Tapestry

Apache Tapestry is an open-source framework for creating dynamic, robust, highly scalable web applications in Java. Tapestry complements and builds upon the standard Java Servlet API, and so it works in any servlet container or application server.

Tapestry divides a web application into a set of pages, each constructed from components. This provides a consistent structure, allowing the Tapestry framework to assume responsibility for key concerns such as URL construction and dispatch, persistent state storage on the client or on the server, user input validation, localization/internationalization, and exception reporting. Developing Tapestry applications involves creating HTML templates using plain HTML, and combining the templates with small amounts of Java code. In Tapestry, you create your application in terms of objects, and the methods and properties of those objects -- and specifically not in terms of URLs and query parameters. Tapestry brings true object oriented development to Java web applications.

Tapestry is specifically designed to make creating new components very easy, as this is a routine approach when building applications.

Tapestry is architected to scale from tiny, single-page applications all the way up to massive applications consisting of hundreds of individual pages, developed by large, diverse teams. Tapestry easily integrates with any kind of backend, including JEE, HiveMind, Spring and Hibernate.

It's more than what you can do with Tapestry ... it's also how you do it! Tapestry is a vastly productive environment. Java developers love it because they can make Java code changes and see them immediately ... no redeploy, no restart! And it's blazingly fast to boot (even when files change). Designers love it because Tapestry templates are so close to ordinary HTML, without all the cruft and confusion seen in JavaServer Pages. Managers love it because it makes it easy for large teams to work together, and because they know important features (including localization) are baked right in. Once you work in Tapestry there's no going back!

Tapestry is released under the Apache Software Licence 2.0.

Releases

Tapestry has a long history, with the oldest code dating back to January 2000. That means a lot of releases. At this time, Tapestry releases 3 and 4 are no longer being developed; developer effort is focused on Tapestry 5.

Training and Support

Training on Tapestry and Support is available directly from the source: the Tapestry project committers:

  • Howard Lewis Ship : Provides a multi-day, hands-on workshop on Tapestry, as well as mentoring, support and project work
  • Thiago H. de Paula Figueriredo : Provides training and support on Tapestry and related technologies including Spring and Hibernate

Third Party Libraries, Tutorials and Resources

Tapestry 5 has inspired a number of people to create third party libraries, providing a mix of new components and new and improved integrations.
NameAuthorDescription
AppFuse for Tapestry 5 Serge Eby Application template, with basic authentication and Hibernate and Spring integration pre-configured.
Ars Machina Thiago H. de Paula Figueiredo Tapestry/Hibernate extensions for Generic DAOs, standard CRUD interfaces, and user access logging and tracking.
Chenille Kit Massimo Lusetti Collection of modules, services, utilities and components (many of which require only tapestry-ioc).
equanda-tapestry5 Joachim Van der Auwera Components useful for building enterprise applications. Includes Accordion, Tabs, Formtraversal. Amongst other things, these focus on easy input of data without the need for a mouse.
Godcode Components Chris Lewis A mixed collection of components providing simple but time-saving functionality, as well as more exotic ones; built on top of the prototype and script.aculo.us javascript libraries.
JumpStart Geoff Callender A "living tutorial" in the form of a base Tapestry application ready to be expanded and customized.
InterLDAP Linagora / Francois Armand LDAP content management system for non tech users.
loom-t5 Chris Scheid Eclipse plugin.
Shams Examples, Components Mohammad H. Shamsi A set of Tapestry 5 Examples, Tutorials, Components, and Documents for beginners.
Tapestry for Nonbelievers Renat Zubairov & Igor Drobiazko Simple introduction to using Tapestry and creating components.
T5Components Sven Homburg Ajax-enabled components based on Prototype and Scriptaculous.
tacos-seam Igor Drobiazko Intregrates with JBoss Seam .
Tynamo project Tynamo Team / Kalle Korhonen & Alejandro Scandroli Tynamo is model-driven, full-stack web framework based on Tapestry 5. Provides several modules, including tapestry-model, tapestry-conversations, tapestry-hibernate-seedentity, tapestry-resteasy and tapestry-security
tapestry5-acegi Robin Helgelin Integration with the Acegi path-based security framework.
tapestry-templating Howard M. Lewis Ship Use Tapestry pages off-line to generate content (such as email).
tapestry5-treegrid Gabriel Landais Combination tree navigation and data grid, based on sstree.
ioko-tapestry-commons Ben Gidley, et al. Provides components for caching, cache control, and simply SWF integration.

A growing number of non-Apache Tapestry projects are being hosted on Tapestry360 .

Tapestry 6?

Don't hold your breath; Tapestry 5 was built from the ground up to allow significant improvements to the framework without sacrificing backwards compatibility.

Documentation for older releases of Tapestry are still maintained: