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:

  • Apache has a widely recognized name, which will help Wicket get an increased visibility and acceptance.
  • We'd like to enjoy the benefits of utilizing Apache's infrastructure and legal protection.
  • Most team members have been enthusiastic users of Apache software for many years and would like to be part of the family with it's get togethers etc.
  • It might open the door for cooperation with other projects, such as Felix or Jetspeed.
  • Apache seems to attract great communities around its projects, we hope joining Apache will help as make our growing community even bigger.
  • We hope to contribute to Apache's ongoing success by delivering an innovative, dynamic project with an enthusiastic user base.

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

  • dev, private and Announce mailing lists.
  • Copy current subversion code, and create a commits mailing list.
  • Copy Sourceforge issues into Apache system, if possible
  • Confluence Wiki.

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:

  • All source hosted at Apache, with mailing lists & web-site/wiki moved to Apache.
    • 1.2.x
      • Continue in maintainance/bug-fix mode
      • 'wicket.*' package name
      • 'wicket-1.2.x' jar names, etc
      • SF-hosted releases?
    • 1.3
      • Developed (basically 1.2+ some new features from HEAD (2.x))
      • 'wicket.*' package name
      • 'wicket-incubating-1.3.x' jar names, etc
      • ASF-hosted releases
    • 2.x
      • Primary development branch
      • 'org.apache.wicket.*' package name
      • 'wicket-incubating-2.x' jar names, etc
      • ASF-hosted releases

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.

  • Jonathan Locke is from the US and is involved in various startups as a software engineer and co-owner, and pursues a movie script writing career.
  • Eelco Hillenius is from the Netherlands but is in the process of moving to the US (Seattle/ San Francisco). He currently is employed through his own company, Code Droid, but will be working for Teachscape Inc. from October on as a software engineer.
  • Martijn Dashorst is from The Netherlands and works for Topicus as a software engineer
  • Johan Compagner is from The Netherlands and is an independent consultant for its own company J-COM (regularly hired by Topicus) and is working at a company Servoy that also uses wicket technology in its core.
  • Igor Vaynberg is from the USA working as a software engineer for Teachscape Inc.
  • Juergen Donnerstag is from Germany and works for EDS as an IT Architect.
  • Gwyn Evans is from the UK and works for SmartTrust as a Solution Consultant
  • Janne Hietamäki is from Finland and works for Cemron (that also uses wicket technology in its core) as a technical director
  • Matej Knopp is from The Slovak Republic, is a CS student and works for EEA as a software engineer
  • Frank Bille Jensen is from Denmark and works for Avaleo as a software engineer
  • Ate Douma is from The Netherlands as a software engineer
  • Jan Blok is from The Netherlands and works for Servoy as a software engineer
  • Chris Turner is from the UK and works as an independent consultant. He does not intend to move with us to Apache.

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

  • Jonathan Locke
  • Eelco Hillenius
  • Johan Compagner
  • Martijn Dashorst
  • Juergen Donnerstag
  • Igor Vaynberg
  • Gwyn Evans
  • Matej Knopp
  • Janne Hietamäki
  • Frank Bille Jensen
  • Ate Douma
  • Jan Blok

Proposed Apache Sponsor

Incubator PMC

Champions

  • Upayavira
  • Alex Karasulu
  • Sylvain Wallez

Mentors

  • Upayavira
  • Alex Karasulu
  • Sylvain Wallez
  • Bertrand Delacretaz
  • No labels