# JSPWiki

JSPWiki ist eine in der Programmiersprache Java geschriebene freie Wiki-Software, die auf Java Server Pages und Servlets basiert. Es wurde von dem Finnen Janne Jalkanen entwickelt. JSPWiki ist unter der Apache-Lizenz lizenziert. Es wird vor allem von Unternehmen im Intranet eingesetzt und besitzt eine aktive Entwicklergemeinde.

## Geschichte und Verbreitung

JSPWiki wurde 2001 von Janne Jalkanen ins Leben gerufen und wird seither stetig weiterentwickelt. JSPWiki ist bei diversen Unternehmen und Hochschulen im Intranet im Einsatz. Es findet dort zumeist als Projektwiki oder auch als Wissensspeicher Verwendung. Die Wiki-Engine wird unter anderem vom JBoss-Projekt, Liferay Portal und der Chilepedia eingesetzt. Ebenso hat Sun Microsystems JSPWiki in seine Portalserver-Software integriert. Privatpersonen setzen das Wiki wegen seiner einfachen Installation als persönliche Informationverwaltung ein (als sog. PIM – Personal Information Manager). Durch das Blog-Plug-in und die RSS-Unterstützung wird es auch als Blogging-Software verwendet. Seit Ende 2008 ist der Quelltext von JSPWiki nicht mehr unter der LGPL, sondern unter der Apache-Lizenz verfügbar. Seit 17. Juli 2013 ist JSPWiki ein Apache Software Foundation top level Projekt (TLP).

## Abgrenzung zu anderer Wiki-Software

JSPWiki verwendet die Auszeichnungssprache des PhpWikis mit eigenen Erweiterungen. So ist es ab der Version 2.3 möglich, über %%-Tags, CSS zu verwenden. Ein Text kann beispielsweise mit %%(color:red) ROTER TEXT %% eingefärbt werden. Diese Wiki-Syntax wird von Benutzern des JSPWiki als intuitiver angesehen, als beispielsweise MediaWiki oder TWiki. Seit Version 2.12 ist es auch möglich Markdown als Auszeichnungssprache zu verwenden
JSPWiki bietet im Gegensatz zu MediaWiki die Möglichkeit, Dateien direkt an Seiten anzuhängen. Jede Seite generiert einen eigenen RSS-Web-Feed, über den die Änderungen an dieser speziellen Seite mit einem Feedreader verfolgt werden können.

## Funktionsumfang

* Versionsverwaltung und Suche – JSPWiki speichert alte Versionen einer Seite und besitzt Funktionen zum Anzeigen der Unterschiede und zum Löschen von Seiten (Administrationsrechte nötig). Die Suche basiert auf der Volltextsuchmaschine Lucene, das auch von MediaWiki eingesetzt wird.
* Dateiverwaltung – Dateien können bei JSPWiki an Seiten direkt angehängt werden, ähnlich wie E-Mail-Anhänge. Dadurch entsteht für den Benutzer eine intuitive Dateiverwaltung. Dateianhänge unterliegen ebenso wie Seiten der Versionsverwaltung.
* Internationalisierung – JSPWiki verwendet als Standard-Zeichencodierung UTF-8, somit sind auch Sprachen wie Chinesisch, Thai oder Hebräisch möglich.
* Plugins – JSPWiki hat einen einfachen Plugin-Mechanismus, der es ermöglicht, Erweiterungen in Java zu schreiben. Es gibt inzwischen eine ganze Reihe an Erweiterungen. In JSPWiki sind selbst die Letzten Änderungen ein Plugin. Somit können Elemente der Webseite flexibel zur Laufzeit verändert werden.
* Filter – Ein Filtermechanismus erlaubt Entwicklern, Filter zu schreiben, die vor dem Rendern der Seiten spezielle Zeichen ersetzen können. So existiert beispielsweise ein Spamfilter sowie ein Emoticonsfilter, der Smileys durch die entsprechenden Icons ersetzt. Ein Tabellenkalkulationsfilter erlaubt es, ähnlich wie bei TWiki, in Wikitabellen mit Hilfe von Formeln zu kalkulieren.
* Templates – Das Aussehen des Wikis kann der Administrator über Templates festlegen. Es wurden inzwischen unterschiedliche Templates von der Entwicklergemeinde entwickelt, unter anderem ein Template, das JSPWiki ähnlich wie Wikipedia aussehen lässt.
* RSS – Die letzten Änderungen lassen sich per RSS-Web-Feed beziehen. Über ein Blog-Plugin lässt sich JSPWiki so auch als Blogging-Software verwenden – Janne Jalkanens Weblog ist ein JSPWiki. Weiterhin lässt sich, mittels eines weiteren Plugins, JSPWiki als RSS-Reader verwenden und somit die abonnierten RSS-Feeds bspw. gesammelt auf einer eigenen Seiten darstellen.
* Formulare – Formulare können über Plugins im Wiki erstellt werden. Über Formhandler, die ähnlich wie Plugins über eine Schnittstelle in Java implementiert werden können, können die Daten ausgewertet werden.
* Speicherformat – Das Wiki erlaubt es über Treiber (sog. PageProvider, „Seitenanbieter“) die Speicherart der Webseiten zu ändern. So ist diese nicht auf eine bestimmte relationale Datenbank, oder auf Datenbanken allein beschränkt. Standardmäßig werden Seiten als einfache Textdateien abgelegt. Dies macht die Installation einfach, da keine Vorkenntnisse mit relationalen Datenbanken vorausgesetzt werden.
* Zugriffskontrolle – Mit der Version 2.4 wurde eine Zugriffskontrolle mit Java JAAS bis auf Seitenebene möglich. Das Shibboleth-Projekt verwendet beispielsweise auch JSPWiki.
* XML-RPC – Zur externen Steuerung per Skript besitzt JSPWiki ein XML-RPC-Interface.
* WebDAV – JSPWiki unterstützt das WebDAV-Protokoll für den Zugriff auf Seiten. Dadurch wird es möglich, Dateianhänge über den Dateimanager des lokalen Betriebssystems zu verwalten. Janne Jalkanen hielt darüber einen Vortrag auf der Wikimania 2005.