Tapestry Demo (2005) .
Tapestry is very unique Java WEB framework.

The following is the outline for Tapestry Presentation at KCJUG ( Apr. 13 2005 ). We also take a glance at a demo application that addresses Form and Submit Listeners Tapestry Gotcha
1 “Unlearning curve” - lets forget about Page
oriented programming, http request, response and other
familiar things;
Tapestry advocates often use this term "Unlearning curve" to name the challenges for developers which are used to 'conventional' web-frameworks like Struts. However that so-called "Unlearning curve" is non-existant for developers who are familiar with Object Oriented and Component Oriented desktop UI frameworks ( Swing, Delphi, VB, etc)
2 Migrating from Struts to Tapestry – what is so
different?
Everything. Forget all you know about actions and redirects - It is all much simpler and different with Tapestry.
Tapestry users mail list (tapestry-user@jakarta.apache.org )is very helpful!
3 Tapestry Components
- Component References
- Tassel
- Tacos
- It is extremely easy to create own components. In fact, web application development with Tapestry, is just creation of few application specific components.
- Tools
4 Really clear separation of roles: designer do Site,
developer fills it with functionality;
That is true. Site designer creates and MAINTAINS site with whatever tool Heorshe likes (Dreamweaver, Frontpage or alike ). For this presentation I took really bad site template and 'instrumented' it to support dynamic functionality.
5 Gotchas
Tapestry FAQ
More FAQ
http://wiki.apache.org/jakarta-tapestry/Gotchas
- Somehow weirg naming conventions (althought sometimes making sense);
- By default page caching is enabled and that causes JSP incompatible behavior: we update file and refresh page, but it does not reflect out changes!
-Dorg.apache.tapestry.disable-caching=true cures this development inconvenience;
- TIA and online documentation leave impression that all page definitions have to be under WEB-INF - not quite true. WEB-INF/ is the default place but declaring pages in xxx.application file allows placing them in subdirectories
<page name="Admin" specification-path="admin/Admin.page" />
- (Re)learn thinking in terms of components and services rather than in terms of requests;
- Power of @Any
- Power of copy-of <component id="homeLink2" copy-of="homeLink"/>
Friendly URLs
6 Tapestry vs JSF or JSF+Struts, and other frameworks
Velocity, Freemarker - are really nice rendering frameworks, which could be nice replacements for Struts default JSP renderer ( Velocity approximately 30% faster than JSP in my estimates )
JSF
From architectural perspective JSF and Tapestry are virtually the same, but I tend to agree with a poster from this thread
>>>>While Struts is the de-facto standard, it is obvious it lacks a lot of features. JSF seemed too immature. Tapestry uses a very nice approach, very elegant, and supprisingly simple. We got our first prototype to show to the end-users after 1 week of development (developers did use Tapestry for the first time ever).
My opinion on JSF:
* It is overdesigned (as Swing).
* It wants to abstract the rendering (HTML, WAP, ...), but nobody needs this. For other UI-devices, you probably want other content and flows as well. So everything except the business logic (in EJB's) needs to change anyway.
* It claims a component market will emerge. However, other component markets (Swing, EJB's) do not really florish either.
* It requires soffisticated and mature tools to develop efficiently.
* Makes me think of layout-managers and stuff
Tapestry
* does a good job in minimizing the code base (in java, html, xml)
* if you want there is NO code in the html
* uses html as its "layout-manager". If you want to do WYSIWYG, use dreamweaver, or even frontpage, ...
* able to use components (html-fragment + java-class (+javascript is you like)). This can be repeated on a page as often as you like, the component can be used on other pages, etc. Just as a real component, similar to a JPanel in Swing.
* in contrast to Struts, the code to write parameters on a web-page (form) is in the same location is the code to read/interprete parameters from the submit of the page. The miracle is: it is just in plain getter/setter methods.
Just take a couple of hours to read about the Tapestry concept, and evaluate it... it's a totally different approach from Struts. More like JSF, but then kept simple; as it should. <<<
I would add that JSF:
- requires a ttol to be productive; JavaStudioCreator or alike;
- does not separate web developers and designers - developers should recreate whatever designers came up with;
- JSF has no template based render tool that leads us back to whole bunch of element construction statements within Java code or even simply println(...) .
This thread is also very informative.
Howard Lewis Ship(Tapestry author) take on the issue
Struts
Thing of the past, it tries to play nicely with JSF as a controller but does not represent independent entity by itself anymore IMO
These are very nice frameworks.
7 Future: Integrating Tapestry and Ajax, Implementing
Portlets with Tapestry;
Portlet Support , demo
Partial rendering
8 Tapestry and HiveMind
Tapestry 3.0.3 - does not require HiveMind;
Tapestry 4 (Picasso) - will use HiveMind to configure services;
What about "Spring" ?
- Comparing HM and Spring;
- Spring beans could be used from HM;
- Spring is easily integrated with Tapestry;
9 Live Tapestry Sites
-
One of the more frequent questions I get concerning Tapestry is ... how many sites are using it in the real world? It's a tough question, since I generally only hear from people who have problems and not nearly enough success stories. I asked around on the Tapestry mailing lists and got some pointers to a few sites ... here's just a few (that had cool logos).

TheServerSide.com should be pretty well known; it may be the largest Tapestry site, getting millions of hits per month. Discussion
TheServerSide.net runs on the same software, but with some different assets and configuration.

Shopping.com's main site just switched over from Perl/C++/CGI to Struts, but many of their current ancillary applications, such as Merchant account management, are done in Tapestry. They expect to use Tapestry on virtually all new internal and external web development.

The NHL may be having trouble, but it isn't because of Tapestry. Eric Everman, who created the site, tells me he is happy to return to more Tapestry work at NHL.com, after a painful sojourn into Struts development for another client.

Erik Hatcher and Jamie Orchard-Hays were part of the team that built a suite of applications for Darden ... in fact, that was one of my first Tapestry training engagements. The same application has been skinned and reconfigured for a number of clients, including the University of Chicago Business School.

This site was done by Paul Ferraro, a Tapestry committer who originated the friendly URLs patch for Tapestry 3.0. This site has also been repackaged and reskinned for a large list of clients.
And a few more I have no real information about (but I liked their logos):
And of course, there are far more than that. Geoff pointed out that Google can search for Tapestry sites due to the distinctive format of Tapestry URLs (if you aren't using the friendly URLs patch).
- Tapestry site for a local auto dealer in Jackson,
Mississippi.
It also has a customized CMS platform (Slide) running as well so the
dealer can update each page
in the site. http://www.wilsondodge.com
- http://www.sistemamatriculas.gov.co/app
This is a Tapestry + Hibernate + AspectJ + JBoss application for the
Ministry of Education in Colombia. This site will control
registration for public schools all around the country, starting on Q4
2005.
- see the SigPath pages at http://www.sigpath.org/, in particular, the current stable version of application itself at http://icb.med.cornell.edu/services/sp-prod/sigpath/. You may also want to take a look at http://icb.med.cornell.edu/ for an overview of other ongoing projects within the group.
-
// Gatorade Poland
http://www.gatorade.pl
// indoor/outdoor gears
http://www.pureaustin.com
www.homeownershelp.com
// crossword site
http://www.bestcrosswords.com
// mobile internet solution
http://www.webtiss.com
// Shetland Museum - Photo Archives
http://www.shetland-museum.org.uk/
// National Taiwan University Library Database
http://dbi.lib.ntu.edu.tw/libraryList/
// manufacturer of fitness equipment
http://www.funnctional.com
//family trip albums
http://www.247states.com
//resource conservation technologies
http://accuwater.com
http://www.eullearn.net/
//dating site in China
http://love.9618.com.cn
Related projects
Trails
Tapestry Tutorials
Tutorials for Tapestry are beginning to spring up all over the place.