
Apache JSPWiki
Copyright 2008 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

Portions of this code donated by BaseN Corporation.

Based on JSPWiki by Janne Jalkanen, Andrew R. Jaquith, and others.

There have been many contributors so far.  Especially thanks go to
Andrew Jaquith, Dirk Frederickx, Murray Altheim, Olaf Kock, Mark
Rawling, Dan Frankowski, Terry Steichen, Chuck Smith, Christoph Sauer,
Erik Bunn, Niilo Neuvo, Alain Ravet, Kalle Kivimaa, Jeff Phillips,
Mahlen Morris, Paul Downes, Michael Gentry, John Volkar, Torsten
Hildebrandt, and Foster Schucker who have given quite a lot of
support and/or code.  There are also a number of other people who have
generously given their time, and you can find hopefully all of their
names in the ChangeLog.

SilkIconSet (C) Mark James.

OSCache Copyright (c) 2001 The OpenSymphony Group. All rights reserved.

Jaxen  Copyright 2003 (C) The Werken Company. All Rights Reserved.

HSQLDB Copyright (c) 2001-2005, The HSQL Development Group

Akismet Copyright (c) 2005-2006, David A. Czarnecki

Stripes Copyright (C) 2005 Tim Fennell

JDOM Copyright (C) 2000-2004 Jason Hunter & Brett McLaughlin.

Sandler Copyright (c) 2003, Mark Lussier

Contains code Copyright by Mozilla Foundation.

Jetty Copyright 2004-2008 Mort Bay Consulting Pty. Ltd.

JUnit Copyright Eric Gamma and others.

Selenium (C) OpenQA.org

Prettify Copyright (C) 2006 Google Inc.

posteditor by Daniel Mota aka IceBeat, (see http://icebeat.bitacoras.com)

Slimbox, adapted for JSPWiki, original by Christophe Bleys. (see http://www.digitalia.be/software/slimbox) 

Servlet-api Copyright 1997-2008 Sun Microsystems, Inc. All rights reserved.

search_highlight.js  Copyright (c) 2002  Stuart Langridge
