Wicket Proposal

This proposal outlines the creation of a new top-level Wicket project within the Apache Software Foundation.

Rationale

Wicket is a unique web application framework that focusses on bringing plain object oriented Java programming to the web tier. It is unique in it's focus amongst the (many) web frameworks that exist today. Due to it's unmanaged nature and reliance on plain Java, it is a very good match for frameworks like OSGi and Eclipse RSP. Wicket has been gaining a very steady increase in popularity, and with two books coming out and vastly improved new releases we are working on, we expect this trend to continue. We consider moving to Apache being an additional boost, and we hope it will open the way for possible future cooperation with other Apache projects.

The maintainers of Wicket are interested in joining the Apache Software Foundation for several reasons:

Criteria

Community

Wicket has striven to foster a diverse community that is open to everyone. It is released under a non-reciprocal license (Apache License 2.0) to encourage the maximum possible adoption by all potential users and developers. The Wicket community encourages suggestions and contributions from any potential user, and more developers have joined as contributors since the project's inception in 2004.

Meritocracy

Wicket was originally created by Jonathan Locke in April 2004. Then it was taken over in September 2004 by Eelco Hillenius, Johan Compagner and Martijn Dashorst. Chris Turner and Juergen Donnerstag were invited to join that same week based on their contributions and discussions. The project now has committers and users from around the world, and Jonathan Locke is back with the project again. The newer committers of the project joined in subsequent years by initially submitting patches, then having commit privileges for some of the applications (wicket-stuff), and then privileges over a larger range of applications. The project members understand the importance of letting motivated individuals contribute to the project after they have proven themselves.

Scope of Sub projects

Wicket is distributed as one large subversion tree, but contains several distinct parts: the core framework, a couple of extensions project that are endorsed by the core developers, an examples project (which includes a component reference), a quick start project and a developer sandbox. One of the extensions projects, called wicket-extensions, has a dual purpose. The first is to ensure the core project does not get too large, while still having a place to put interesting components and utility classes. The second purpose of that project is to provide a place where components can prove themselves before potentially graduating to the core project.

Whilst Wicket has these various subprojects, access to the subversion tree is maintained with a single ACL. Once voted in as a committer, an individual will have access to the entire tree, and trust is used to ensure that they only touch the parts of the tree that they are knowledgeable enough to change.

Features

Wicket is a Java web application framework that takes simplicity, separation of concerns and ease of development to a whole new level. Wicket pages can be mocked up, previewed and later revised using standard WYSIWYG HTML design tools. Dynamic content processing and form handling is all handled in Java code using a first-class component model backed by POJO data beans that can easily be persisted using your favorite technology.

Initial Source

The source for Wicket that is to be imported is currently within the Wicket project at SourceForge, and is all ASL2.0 licensed.

Resources to be Created

We may, at some point during incubation, choose to bring our existing SourceForge hosted user list across to the Incubator. Given the nature of Wicket, users are also very much developers, and those participating in the user list also provide a valuable contribution to the development of Wicket.

Potential Issues

These are a few details of how incubation will need to work in order to maintain compatability for existing users whilst moving forwards to adopt an Apache approach for newer code.

Versions

Wicket currently has three versions of their code base, 1.2 (the current release), 1.3 (planned) and 2.0 (unreleased).

We would like to keep all three versions on the same infrastructure, and would thus like to bring all three versions over to Apache.

This would involve the need to be able to make releases of 1.2 and 1.3 during incubation, as they have a current user base to serve that is already using the product.

The intention would be to proceed as follows:

When approaching a final release (whether 1.3 or 2.0), we will assess the impact upon our existing community of where these releases are placed. Whilst we would like to do all of our releases at Apache, we are concerned that this might cause some of our existing and loyal users some difficulty, and thus will re-evaluate this at the time of release.

Package Naming

Wicket Java code uses the wicket.* package hierarchy. At this point, we would propose that code in versions 1.2 and 1.3 would switch to ASF servers, but maintain the wicket.* namespace, but code in 2.0 would switch to an org.apache.wicket.* namespace.

Anything else would cause an unnecessary disruption to our users.

Other Potential Concerns

Likelihood of Becoming an Orphaned Product

Assuming an "orphaned product" is one that arrives at the Apache Incubator and then slowly dies before being ready to incubate, Wicket is unlikely to fit into this category.

The Wicket code is currently used and maintained by the authors and others, who depend on it for their livelihood. Continued development of Wicket continues on a daily basis. Statistics can be found here: http://sourceforge.net/project/stats/?group_id=119783&ugn=wicket, where the commit statistic form a sub view: http://sourceforge.net/project/stats/detail.php?group_id=119783&ugn=wicket&type=svn.

Experience with Open Source

Most of the developers have been actively involved in multiple other open source projects for years (jakarta regex, Eclipse plugins, jWebUnit, Subclipse, SquirrelSql, JetSpeed, etc). But for all of the developers the involvement in Wicket currently is the major one.

Heterogenous Developers

The developers are diverse, both geographically and in terms of their employers. Of our 13 committers, no more than two work for the same employer.

In addition, there are other contributors from France, Germany, Spain, the UK, US, Canada, Brazil, India, Japan, China, Iran, and various other countries.

All contributors come from a software background, but we - informally - have some different tasks. For instance, Martijn is in charge of the releases, Gwyn of maintaining the WIKI and possibly more site related things and Jonathan provides regular code reviews. But any one of the team has committed code, and may do so.

Reliance on Salaried Developers

None of the developers rely on Wicket for consulting work, though two - Martijn and Eelco - are writing Wicket In Action (publisher Manning) in their spare time. Most of the developers use Wicket for their day jobs, some for multiple projects, and will do so for a considerable while as their companies (specifically Topicus, Cemron, Avaleo and Teachscape) choose Wicket as their development framework of choice.

Ties to other Apache Products

Wicket uses Jakarta Commons Logging and Log4j and adopted some code from Jakarta Commons Upload. It uses Maven for it's build process. Wicket tries to stay as lean as possible though.

An Excessive Fascination with the Apache Brand

The ASF has a strong brand, and that brand is in itself attractive. However, the developers of Wicket have been quite successful on their own and could continue on that path with no problems at all. We are interested in joining the ASF in order to increase our contacts and visibility in the open source world. Furthermore, we have been enthusiastic users of Apache from the earliest hour (remember JServ anyone?), and feel honored at getting the opportunity to join the club.

Committers

Proposed Apache Sponsor

Incubator PMC

Champions

Mentors