incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ben Hyde <>
Subject Re: Apache Proposal AGAIN
Date Wed, 01 Jan 2003 01:50:05 GMT

>> See the proposal here:  ( 
>> ). 
>> Please call a vote on accepting  tapestry into the incubator and let 
>> me know what the decision is.
> Could you or someone please post this proposal to the general@incubator
> list? ...

Here you go:

[0] rationale

Tapestry, currently housed at the SourceForge? 
(, is a component-based web application 
framework. Tapestry falls generally into the pull-MVC model of 

Tapestry is designed specifically around the creation of completely 
re-usable components. Components can easily be packaged into libraries 
and distributed within Jar files, even when they contain assets such as 
image files and stylesheets.

Tapestry is organized around an abstraction that isolates 
application-specific logic from the details of the servlet API, such as 
HttpSession?, request, response, URLs and query parameters.

Tapestry is highly pluggable, allowing any and all behavior to be 
customized by subclassing appropriate base classes.

Tapestry is specifically not a JSP taglib. Tapestry uses its own method 
for instrumenting HTML that is extremely non-obtrusive (it still 
previews properly in a WYSIWYG editor). Tapestry has well specified, 
separate roles for HTML producers and Java developers, and allows them 
to work together without interfering with each other.

The goal of Tapestry is to shift much of the burden of developing web 
applications onto the framework, and free the developer to work cleanly 
and effectively without concern for the many small details of web 
application development. The primary function of Tapestry is the 
automatic creation of URLs by the framework, facilitating a 
fine-grained dispatch model. The bird's-eye view is that, in Tapestry, 
actions (such as clicking a link, or submitting a form) are associated 
with a particular component and, through a simple delegation system, a 
particular bit of user code. There is no global registry of actions, as 
in Struts, and it's easy to create reusable components that define 
their own behaviors (in terms of links or forms), independent of the 
containing page.

Tapestry applications can be extremely sophisticated with surprisingly 
little code.

Tapestry includes a significant amount of documentation describing its 
strengths and features in great detail, available at Live demos, a great collection of user quotes, 
extensive documentation (HTML and PDF) and a recent code coverage 
report are all online.

Tapestry has been an open-source project on SourceForge? since June 
2000. Milestone releases (such as 2.1 in July, or the just-released 
2.2) result in 6K - 7K downloads (increasing by over 1K downloads with 
each successive release). Tapestry has averaged over 3000 downloads a 
month during 2002, with peaks above 8K/month.

Tapestry has recently adopted Apache meritocracy rules to govern the 
project. The license for Tapestry has been changed from LGPL to Apache 
Software License.

[0.1] criteria

Meritocracy: Tapestry follows the Apache meritocracy rules, with a core 
of committers.

Community: Tapestry has a modest, but very active community, centered 
around a user's mailing list (approx. 200 members), a developer's 
mailing list, and the Tapestry Wiki ( The 
mailing lists have an exceptionally good signal-to-noise ratio; 
discussions typically revolve around planning new extensions to the 
framework, creating new components and documentation, and diagnosing 
developer issues. The developer's mailing list is used primarily for 
voting, and for discussions about votes. A secondary project, to 
provide a community component repository is now underway 

Core Developers. Tapestry has an active and dedicated team of 
committers. The project was founded by Howard Lewis Ship, who is 
extremely dedicated to Tapestry and authored the majority of the 
codebase. Richard Lewis-Shell and Mind Bridge are frequent contributors 
of components and bug fixes as well as some significant extensions. 
Neil Clayton and Malcolm Edgar provide code and significant amounts of 
documentation. Geoff Longman has created an excellent plugin for the 
Eclipse IDE (as a separate project) and provides code to keep the two 
projects in sync. Several other developers contribute bug fixes, 
components and documentation.

Alignment: Tapestry makes use of the ORO, commons-lang and 
commons-logging packages internally.

Scope: Tapestry is entirely a server-side framework, well aligned with 
the overall goals of the Jakarta project.

[0.2] warning signs

Orphaned products. Tapestry is far from orphaned, it was originally 
conceived and executed specifically as an open-source project.

Inexperience: Howard Lewis Ship has been coding, documenting, mentoring 
and managing this open source project for nearly three years. Others on 
the team have been actively using, supporting and extending Tapestry 
for over a year.

Homogeneous Developers: The current Tapestry committers include 
representatives from Canada, England, Australia and New Zealand; other, 
more occasional, contributors represent South America and Asia. This is 
just the opposite of the "smoke filled room".

Reliance on Salaried Developers: Tapestry is largely developed during 
free time. Many contributions are developed by consultants to address 
specific needs of their clients, then modularized and provided back to 
the community (for example, Geoff is developing a workflow management 
subsystem for Tapestry that may be released into the framework proper 
when completed). Increasingly, developers are finishing projects with 
Tapestry and contributing components created for those projects back 
into the project.

No ties to other Apache Products: As stated above, Tapestry makes use 
of the ORO and commons packages and has numerous places where greater 
integration with Jakarta could occur. It is servlet container agnostic, 
working well with Tomcat, Jetty, Resin and others.

Fascination with Apache Brand: Tapestry has been, and always will be an 
open-source project.

[0.3] overlap with Turbine

Turbine has a similar model to Tapestry, but the focus of the two 
projects is somewhat divergent. Turbine is a service-oriented where 
Tapestry is component-oriented. Turbine provides a larger toolkit (in 
the form of services) for aspects of the application not related 
directly to the presentation layer. Tapestry provides more flexibility 
and power in the presentation layer but doesn't provide any other 
services (such as scheduling, database access, security, etc.).

Many Tapestry users are employing Tapestry for the presentation layer, 
but leverage the many Turbine services (especially Torque).

[1] scope of subproject

The project shall create and maintain packages written in the Java 
programming language constituting the framework itself, a standard 
library of additional components, documentation, a web site and 
additional examples.

[2] identify the initial source from which the project is to be 

The project currently resides on the SourceForge? 

[3] identify the Jakarta resources to be created

[3.1] mailing lists(s)

tapestry-user tapestry-dev tapestry-cvs

[3.2] CVS repositories


[3.3] Bugzilla

framework - tapestry components - web site, contrib library, 
documentation, examples

[3.4] Wiki

It is desired that a Wiki be setup. Use of the current Wiki 
( has proven highly successful in 
supporting distributed design, discussion and decision making, as well 
as providing a home for temporary documentation until permanent 
documentation changes occur. We would prefer MoinMoin?, a Python Wiki 

[4] identify the initial set of committers

Mind Bridge mindbridge

Neil Clayton nclayton

Malcolm Edgar medgar

Richard Lewis-Shell rlewisshell

Howard Lewis Ship hlship

Geoff Longman glongman

[5] identify apache sponsoring individuals

Andrew C. Oliver

dIon Gillard

View raw message