This has now been submitted once to the Apache Incubator. Please continue discussion on the jspwiki-dev mailing list.

Abstract#

Apache JSPWiki will be a modular and user-extensible wiki-engine, based on the open source JSPWiki software.

Proposal#

JSPWiki is a wiki engine available under the Lesser General Public License. It has a very modular construction, and integrates relatively nicely with a number of enterprise systems. It is also inherently embeddable, and has been incorporated as a component in a few different commercial and open source products.

The latest JSPWiki, 2.6, supports AJAX and full I18N, pluggable backends, pluggable editors, an expressive markup, a plugin framework, a filter framework, and built-in URL rewriting.

JSPWiki also has a nice unit test set of over 700 unit tests which have been invaluable in keeping compatibility between releases.

Background#

In the past few years, wikis have become a common collaborative tool. They are light-weight, open, and easy to deploy. The English Wikipedia, currently the largest public wiki site, contains over two million pages.

Wikis were originally designed to be small group collaboration tools, but they have proven to be scalable to a large number of users, as evidenced by the Wikipedia example. However, their most common use is still within companies and other entities which deploy them as collaboration tools, augmenting and even replacing traditional CSCW tools.

JSPWiki was originally created to address the same group collaboration tool needs as so many other wiki engines. Its goals were from the start to provide extensibility and user power, while keeping the core functionality clear. Since it’s inception in 2001, it has grown to be one of the more popular open source wikiengines, at least in the Java arena. It currently ships with the Sun Portal Server 7, and features as an integral part of the Intland Codebeamer development environment.

Rationale#

JSPWiki has grown nicely over the past few years, and currently averages around 2000 downloads monthly. The users-list has at the writing of this 207 members, and the developers mailing list has 34 members. There are currently six people with commit access to the CVS codebase.

However, there is a chasm to how large an open source project can grow under a ”benevolent dictator” –model. Many corporations are relying on the JSPWiki code base, and joining Apache would lessen the risks involved in using it, thus giving more entities an opportunity to use this advanced project. Joining Apache would make us less dependent on individual developers and would strengthen our community.

We also feel that the introduction of Apache processes would increase the code quality, as well as bring more interested developers to this project.

Apache is also lacking a wiki engine. It is currently using either commercial software (Confluence) or Python-based wiki software (MoinMoin) as its own projects. As wikis are becoming the workhorse of many projects, we feel that it would bring a good addition to the Apache community.

Initial Goals#

The initial goals of the project are to release JSPWiki 2.8 under the Apache license:

  • Bring in the JSPWiki 2.6 stable code base into Apache and apply Apache licensing and remove incompatible dependencies (see ApacheRelicensing for more discussion.)
  • Release JSPWiki 2.8 as a clone of JSPWiki 2.6 - with some bug fixes and Apache licensing, however keeping compatibility with JSPWiki 2.6. This means that we cannot e.g. change the package naming from "com.ecyrd.jspwiki" or else all old plugins will fail. It is as yet unclear whether this will be acceptable to ASF.

After that, we will start working on JSPWiki 3.0:

  • Clean up our metadata and backend support by adding JSR-170 repository support
  • Adoption of a more flexible web framework (Stripes, an Apache-licensed project)
  • Multi-wiki support (so-called WikiFarms, or WikiWebs or WikiSpaces)
  • Move to "org.apache.wiki" -structure, breaking compatibility with 2.x series
  • Cleanup of the APIs and some refactoring which has been due for a long time

Current Status#

JSPWiki code base is relatively stable, and even though some parts are certainly showing their age, the code is clearly laid out (we originally used the Avalon coding conventions, but since then it has been slightly modified), and is often thanked for its clarity. We use the Facade and Adapter patterns extensively across JSPWiki.

The current development practice has mostly been a Linux-like "benevolent dictator" -model. There have been no major clashes on the mailing lists, and the community tends to be helpful, even if sometimes a little slow in helping others.

Meritocracy#

JSPWiki has always tried to grant commit access to people who have proven themselves as willing and capable of contributing to the code base, UI design, documentation, etc. We will certainly continue this practice, as it has proven to be very useful. We hope that the Apache process will make it even more practical.

Community#

JSPWiki has existed since 2001, and during its life, the community has been growing steadily. Currently there is some 200-odd members on the jspwiki-users mailing list, and 34 members on the jspwiki-dev-users mailing list.

JSPWiki has also been a subject of some scientific papers, and is used as a development platform.

Core Developers#

The core developers consist of Janne Jalkanen (Finnish, the original lead developer and still the person with the most commits), Andrew Jaquith (USA, a security guru), Dirk Frederickx (Belgium, our user experience specialist), Christoph Sauer (Germany, the maintainer of the WikiWizard editor), and Juan Pablo Santos Rodríguez (Spain, the i18n specialist).

We are a diverse group, though concentrated mostly in the Western countries.

Alignment#

We use Tomcat as our main development platform, and we are already using a large number of Apache components from Log4j and regexps to Commons Lang.

In the future, we are planning to turn our backend to use JSR-170, which makes Apache Jackrabbit an obvious bit of the future, though the migration from our current repository model is still unclear.

Our coding rules are also based on Apache Avalon coding rules.

Known Risks#

Changing a large code base from one license to another always entails risks. There may be users who might object to moving from GNU to Apache on idealistic grounds, but most of the users will probably take a pragmatic approach.

Another problem may be if we cannot locate suitable non-GPL options for our components. This may mean long delays, as we may need to develop alternatives ourselves.

Also, the move is likely – at least initially – to divert resources from development to bureucracy. This is likely to strain a nerve or two. This can hopefully be mitigated by the Mentors by providing clear guidance.

To be completely blunt, I (Janne Jalkanen) also feel a bit queasy on giving control of JSPWiki – my pet, which I have groomed for many years – away to a foundation. However, this is something which is better in the long term for JSPWiki, and therefore it is worth the sacrifices.

JSPWiki 2.8 is designed to be a low-risk, low-hanging-fruit type of a release, assuming that ASF is fine with the package not being in the "org.apache" hierarchy. If not, we have no choice but to wait until 3.0 since breaking the binary compatibility twice in a row would mean problems for all developers.

Orphaned products#

Since JSPWiki has been lead using a ”benevolent dictator” –model, the largest knowledge of the code base rests on Janne Jalkanen. Janne has no plans to leave JSPWiki development, but certainly there is a need to get more people who have an intimate knowledge of the code base (and the decisions thereof).

Inexperience with Open Source#

JSPWiki was started as an open source project in June 2001, and has remained an open source project since. Issue tracking and mailing lists have been open to everyone from day one.

Homogenous Developers#

The current list of committers includes people from five countries, four timezones and two continents. Regular patches come in also from other countries.

Reliance on Salaried Developers#

There are currently no people on the committer list who get paid to work on JSPWiki. However, we do get patches from a number of companies with a vested interest in JSPWiki.

JSPWiki is in no way reliant on salaried coders.

Relationships with Other Apache Products#

JSPWiki uses quite a few different Apache projects already, and, of course, runs on top of Tomcat (though it has been developed to be pure J2EE only and in no way relies on any specific functionality).

In the future, we expect to integrate somewhat with Jackrabbit.

An Excessive Fascination with the Apache Brand#

JSPWiki could continue on its own, no worries. However, we do feel that our customers and users would feel more comfortable if there was a ”name” attached to it – because it lessens the risk of JSPWiki just going away some day.

To be frank, we are more interested in the Apache processes and the stability Apache would bring to the project than the actual name. We also hope that Apache will adopt us as their wiki solution ;-)

Documentation#

The chief JSPWiki resource is the http://www.jspwiki.org/ web site. It is further amended by the JSPWiki documentation site (http://doc.jspwiki.org/2.4) as well as the JSPWiki-users and JSPWiki-dev mailing list archives at http://ecyrd.com/pipermail/jspwiki-users/ and http://ecyrd.com/pipermail/jspwiki-dev/.

Initial Source#

There is an initial source base of approximately 70,000 lines of code. (According to an estimate by the Ohloh code search engine, this amounts to roughly 17 person years).

Source and Intellectual Property Submission Plan#

  • jspwiki.org domain from Janne Jalkanen
  • JSPWiki source code from all contributors (CLAs need to be done)

External Dependencies#

JSPWiki is relying already extensively on a number of Apache-licensed libraries. However, we are also using some LGPL-based libraries, which will either need to be replaced or rewritten. The current list of dependencies and the migration plan is available here:

http://www.jspwiki.org/wiki/ApacheRelicensing

Cryptography#

JSPWiki uses only cryptography methods (hash codes) available in the J2SE itself. There is one exception to this rule, however: we use a slightly modified version of the Apache Tomcat's HexUtils for converting byte arrays into hexadecimal digits. (org.apache.catalina.util.HexUtils).

Required Resources#

Mailing lists#

JSPWiki currently operates on two mailing lists - jspwiki-users@jspwiki.org, and jspwiki-dev@jspwiki.org. It would be good to continue these both also under Apache Incubation, with the addition of the mandatory jspwiki-private. A jspwiki-commits -list might also be useful.

  • jspwiki-users (contains the existing members of the jspwiki-users)
  • jspwiki-dev (the members of the existing jspwiki-dev)
  • jspwiki-commits (new list for announcing commits to the svn repository)
  • jspwiki-private (for the PPMC, with moderated subscriptions)

Subversion Directory#

JSPWiki code base should be named ”jspwiki”, as in

https://svn.apache.org/repos/asf/incubator/jspwiki

Issue Tracking#

Current JSPWiki bug tracking is done at http://bugs.jspwiki.org/, using Bugzilla 3.0. It would be good to be able to move the current bug list to the Apache Bugzilla. The project name should be "JSPWiki".

If the bug list cannot be moved, then we can continue to use the JSPWiki bug tracker.

Other Resources#

  • www.jspwiki.org website
  • doc.jspwiki.org
  • blog.jspwiki.org
  • sandbox.jspwiki.org (wiped at noon GMT with a custom script).
  • bugs.jspwiki.org

Some or all of these can be moved to Apache. However, deeper discussions need to be made on which ones Apache is willing to host.

Initial Committers#

  • Janne Jalkanen (jalkanen@ecyrd.com)
  • Andrew Jaquith (andrew@freshcookies.org)
  • Dirk Frederickx (dirk.frederickx@gmail.com)
  • Christoph Sauer (sauer@hs-heilbronn.de)
  • Juan Pablo Santos Rodríquez (juanpablo.santos@gmail.com)
  • Murray Altheim (murray07@altheim.com)

None of the initial committers have yet submitted a CLA.

Affiliations#

Janne Jalkanen works as a Project Manager in Nokia, but his work has nothing to do with JSPWiki.

Andrew Jaquith is a senior analyst at Yankee Group, an ICT research and consulting firm. He covers security for Yankee. Nokia, curiously, is one of Yankee's customers, but apparently not the part that Janne works for. :)

Christoph Sauer is a researcher at the Heilbronn University, Germany. He is a Project Manager at the Heilbronn Universities i3G Institute, which offers business services for small and medium sized companies.

Juan Pablo Santos works as a freelance Software Engineer, in Madrid.

Sponsors#

Champion#

Champion: Dave Johnson

Nominated Mentors#

People who have announced their willingness to be Mentors are

  • Dave Johnson
  • Sam Ruby
  • Henning Schmiedehausen

Sponsoring Entity#

Sponsoring entity should be the Incubator.

PPMC#

The PPMC shall consist of initial committers and the Mentors.


(Unlike other material on this site, this proposal should be considered to be under the Apache 2.0 License.)

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-42) was last changed on 02-Jan-2010 12:48 by HarryMetske