Proposal for Tiles as a Top Level Project

Official: TilesTlpResolution

(0) rationale

Tiles is an innovative approach to composing server pages from reusable fragments. In addition to the usual tag-based strategy, Tiles offers an XML descriptor strategy which allows for the creation of declarative "virtual" pages. The descriptor strategy gives Tiles pages an object-oriented feel that simplifies reuse.

Teams worldwide have been using Tiles in production for more than four years. The package continues to gain popularity and has been implemented for Jakarta Velocity and JavaServer Faces (Apache MyFaces). In January of 2006, the Tiles codbase was placed in the Struts sandbox as Tiles 2.0. The goal of Tiles2.0 was to revolutionize it into a standalone project which could be easily used as a standalone package or easily embedded within other frameworks.

Tiles2.0 has now been revolutionized and the community around it has evolved. After much discussion regarding graduation from the sanxdbox, The Tiles developers have come to the consensus that it is ready to stand on it's on as a Top Level Project of the Apache Software Foundation.

(0.1) criteria


The Tiles project started as the work of a sole developer, Cedric Dumoulin, inspired, in part, by the Template taglib created by David Geary for the Struts framework; in fact, this original version of Tiles was backwards compatible with the (now deprecated) Struts Template package. As the community and codebase grew, Cedric joined the Jakarta Struts team and donated the code to the ASF. Tiles has been maintained jointly by the Struts team ever since.

As of Struts 1.1, Tiles was made part of the standard distribution. Although originally targeted for JavaServer Pages, developers using other view technologies, like Velocity and JavaServer Faces, have created Tiles extensions.

The idea of making Tiles a standalone package came up on the Struts Dev list as part of the routine development discussions. There being sufficient interest in making Tiles a project in its own right, the group decided to draft this proposal.

The developers now interested in Tiles are experienced ASF Committers, fully versed in the ways of meritocracy.


Originally a Struts extension, Tiles now enjoys a wide range community of users among Velocity and JSF developers, as well as Struts developers.

By making it top-level project, the Tiles community hopes to broaden its range further, so that it can be used by other frameworks.

Core Developers:

The proposed Tiles committers come from various ASF projects.


Tiles is strongly aligned with four popular ASF projects: MyFaces, Shale, Struts, Velocity.

(0.2) warning signs

Orphaned products:

Tiles is a mature and growing product, in no danger of being orphaned.

Tiles2 is a new revolution which has not yet been fully adopted by the community. Graduation from the Struts Sandbox is deemed critical to ensuring that this adoption occurs.

Inexperience with open source:

The proposed Committers are active members of Apache communities, and fully aware of what it means to be open source.

Homogenous developers:

The Tiles developers have only other thing in common: Tiles. The developers do not share a common employer or geography, or even framework.

Reliance on salaried developers:

The Tiles developers work on a volunteer basis. The project does not rely on salaried developers.

No ties to other Apache products:

Tiles is strongly aligned with four popular ASF projects: MyFaces, Shale, Struts, Velocity.

A fascination with the Apache brand:

The core Tiles implementation and various extensions are already under the Apache banner.

(0.3) subproject or top-level project

Top Level

(2) identify the initial source from which the subproject is to be populated

It has also been proposed that multidimensions, a tiles extension, be invited to join Tiles as a subproject. Dimensions would need to undergo incubation prior to formally joining the Tiles project.

(2.1) identify the base name for the package

(2.2) identify the coding conventions for this package

Packages will follow the Struts coding conventions, unless otherwise specified.

(3) identify the ASF resources to be created

(3.1) mailing list(s)

(3.2) subversion repositories

(3.3) jira (struts installation)

(4) identify the initial set of committers

(4.1) the following have not yet shown interest, but have committed to tiles in the past

(5) identify Apache sponsoring individual

TBD (as defined in