Contents
Welcome to the Tapestry Wiki
This wiki is part of the big Apache Wiki Farm.
Tapestry is a powerful, innovative and increasingly popular open-source web application framework. This wiki exists to supplement the documentation available on the Tapestry home page. It contains FAQs, helpful tips, and ongoing discussions about the future directions of Tapestry.
Users are encouraged to edit the pages of this Wiki. There is HelpForBeginners and there's a WikiSandBox for you to use when learning the Wiki syntax. Please don't test your Wiki chops on real pages!
Tapestry Subject Areas
TapestryTeam: Who's who in the Tapestry world.
BuildingTapestry: building Tapestry using subversion trunk, or from downloaded source distributions
TipsAndTricks: A collection of useful tidbits of information and techniques using Tapestry.
PoweredByTapestry: Index of public sites powered by Tapestry.
SuccessStories: Stories from the trenches!
FrameworkComparisons: Why you would want to use Tapestry over other frameworks, and in what cases.
TapestryTutorials: Places to bootstrap your Tapestry experience.
Tapestry Resources: Articles, Books, Examples, Extensions, FAQs, IDEs, Presentations, Tools, Tutorials.
http://tapestry.apache.org/mail-lists.html - search combined user/dev archive before posting questions to the lists.
OnTheRoad: Where to see Tapestry team members locally
SF.net Wiki: The old wiki, set up when Tapestry was a SourceForge project, still exists and still has some useful content not yet migrated here.
WishList: white board for fleshing out the future of Tapestry
http://www.tapestryforums.com/index.php: Tapestry centric forum
There is a #tapestry IRC channel on freenode irc://irc.freenode.net/tapestry
Tapestry3HiveMind: Using HiveMind 1.0 with Tapestry 3.0.
IdeaProjectFiles: Project descriptors (.ipr, .iml) to open tapestry source code as an IDEA project.
AnnotatedGuideToTapestrySource takes a tour of some of the more important pieces of tapestry source and attempts to explain how it functions in order to provide insight into areas that maybe aren't optimally documented. A work in progress.
Sample Applications
http://www.t-deli.com: The Tapestry Deli runs live examples, and is the source for some useful Tapestry component libraries.
Tapestry '''Petshop''' application: This Petshop uses the Tapestry, Spring and Hibernate frameworks. Source code is available.]
Sample Hibernate/Tapestry Application: Sample Application illustrating some components, integrated with Hibernate for persistence. Source code available shortly.
Tassel: Tassel (Tapestry Searchable Selection of components) is a repository of user contributed components built with tapestry, cayenne, and lucene. Source code is available from http://sourceforge.net/projects/tapestry-tassel.
A series of Tapestry tutorials: This will be a series of 9 tutorials focused on Tapestry and how to integrate it with different technologies. The first two are available now.
Tapestry tutorials by Kent Tong: Tutorials created by Kent Tong.
Tapestry Web Component Examples: Examples of how to use the contrib:Table and contrib:Tree components. These examples are packaged as .wars and have been tested with Tomcat 5.
JumpStart: Teach yourself Tapestry by example, starting with a login screen. Tapestry JumpStart is a collection of working examples plus an instant, working application, ready to be explored, altered and built on. Feel free to use it as the base of your own application.
Tapestry + JDO, the Virtual Library revisited: This is a port of the framework's Virtual Library example, using JDO instead of Enterprise Java Beans for the model. Much easier to set up. A good example showing how to use JDO with Tapestry. Complete with tutorial that discusses design decisions.
Tapestry + JDO, the Petshop revisited: This is a port of Luis Neves' Petshop, using JDO instead of JDBC + DAO pattern. Complete with tutorial that discusses design decisions and code metrics.
Matt Raible's AppFuse: AppFuse is an application for kick starting webapp development that includes options for using Tapestry, JSF, WebWork, and Struts. A good reference for those who want to compare frameworks.
Trails Trails is a domain driven development framework that makes building object oriented web applications with DB persistence radically simpler. Tapestry is used as the web framework, Spring for IoC, and Hibernate for DB persistence. A large portion of Trails is implemented as Tapestry components.
TASH is a template application with Spring IoC and Acegi Security System integration. Actually there is no release yet, but there is already some working code in the CVS repository. TASH has no functionality besides a working Acegi integration.
stitches is a tapestry library of components that encapsulate the file system. These components provide for search, upload, editing, tagging and several other operations. It uses some features of the features of hivemind and T4. It contains an example war file that uses the library. Not only is it a useful library, but it provides for examples on how to use many of the other components in the tapestry framework.
James Carman's Tapernate Tapernate is another sample "backend" application which nicely integrates Hibernate into Tapestry using Hivemind as the glue between Tapestry and a small set of Spring classes. Provides transaction-per-request, a Hibernate EntitySqueezer and an auto-wiring enhancement worker. A corresponding web application can be found here http://www.carmanconsulting.com/svn/public/tapernate-example/
Honeycomb provides Hibernate Integration and more. Main differences are: Supports session-per-conversation pattern, does not support declarative transaction propagation.
Tapestry Ajax shows a working simple Tapestry and Tacos Ajax components application which can be used as a start for developing Tapestry applications which make use of Tacos components.
Tapestry IDE Support
Spindle: Geoff Longman's Spindle is an Eclipse plugin for Tapestry. Among other features, this plugin checks for consistency between your .page files and the associated .html templates. Spindle also supports Groovestry, a project that integrates the Groovy scripting language and the Tapestry web application framework.
Tapestry Palette: Michael Henderson's Palette Plug-in works in conjuction with Spindle. The Palette consists of a tree of Tapestry components, organized by namespace. Selecting a component in the tree displays a summary in the lower part of the view showing the component description and listing required and optional parameters along with their descriptions.
TapIdea: Hugo Palma's Tapidea is an IntelliJ IDEA plugin for Tapestry 5. This plugin provides wizards, highlighting, auto-completion and navigation.
HowToSetupEclipseWtp: Once setup correctly WTP is easy to use. However it can be a real pain to setup a new Tapestry project in WTP. This document exists to so that new users can setup WTP without hours of troubleshooting and experienced users don't forget anything.
Tapestry 4.0
The final version of Tapestry 3.0 has been released, so it's time to focus on the future!
Note: Originally, the release number was to be 3.1, but the changes have become so dramatic that the number was changed to 4.0. Wiki pages are awkward to rename.
Tapestry4: High-level goals and planning for Tapestry 4.0
Tapestry31Status: What's up in Tapestry 4.0 at the moment, now sadly out of date.
ChangeProposals: More details discussions of new features for Tapestry 4.0 and beyond.
PortletSupport: Using Tapestry to create Porlets.
Tapestry4Spring: How to integrate Tapestry 4.0 and Spring
Tapestry-Spring: Another way to integrate Tapestry 4.0 and Spring
HowTos: Tips and tricks on 4.0
Tapestry4Final: Help edit the final Tapestry 4 release notice!
Tapestry3ToTapestry4: HOWTO upgrade from Tapestry 3
Tapestry 4.1
The next release of tapestry will build upon the innovations made in 4.0 to help tighten up the framework even more as well as introduce a number of innovative features for the future of tapestry.
Tapestry41HowTos: Tips and tricks on 4.1
Tapestry41Roadmap: General overview of the current development plans for version 4.1 of tapestry.
TapestryTLP: Tapestry is looking to re-organize as a top-level Apache project
Tapestry41WishList: Make your voice heard! This list(along with JIRA) will serve as the guide for the followup release to 4.1 which will solely be focused around annoying usability/documentation issues.
Tapestry 5
The next generation of tapestry applications with some fairly heavy design changes that should keep tapestry nimble and strong for the foreseeable future.
* Tapestry5Roadmap: High level overview of some of the design goals for version 5.0 of tapestry.
* Tapestry5HowTos: Tips and Tricks on T5
* Tapestry5Migration: Help and examples for migrating from Tapestry4 to Tapestry5
Tapestry Site
Contains information related to building/maintaining the new top level project site at http://tapestry.apache.org.
TapestrySite: Building/deploying tapestry web site with maven2.
Board Reports
This area is used by the Tapestry PMC to prepare board reports to the Apache Software Foundation board.
* BoardReportApril2006: Report for April 2006
* BoardReportMay2006: Report for May 2006
* BoardReportJune2006: Report for June 2006
* BoardReportOctober2006: Report for October 2006
* BoardReportJanuary2007: Report for January 2007
Powered By Tapestry
Images to use in your web application to say, with pride, that you work with Tapestry:
Development Procedures
ReleaseChecklist: From vote to final release.
ReleaseNumbering: What the release numbers means
'Special' Wiki pages
TitleIndex: A list of all pages on this wiki.
HelpContents: A basic guide to the MoinMoin wiki (including information about wiki syntax).
WordIndex: A list of all the words that appear in the titles of the pages on this wiki, with links to pages that include that word.
FindPage: A full-text search of the wiki.
WantedPages: All the "broken links" -- a list of all the pages on this wiki that are linked to, but do not exist.
OrphanedPages: All pages on this wiki that are not linked to from anywhere else (and are thus very hard to reach).
RandomPage: Generates a list of 75 random pages on this wiki.
PageSize: Generates a graph and some statistics about the sizes of pages on this wiki.
EventStats/HitCounts: Generates a graph of page views and page visits.
EventStats/UserAgents: Generates a graph of the web browsers used in visiting this page.
SystemInformation: Shows basic information about this wiki installation, the extensions it has installed, etc.