Java Wiki Engines

Quick classification


What backends do they use?

WebMacroWiki use VeryLargeHashtable for persistence and the WebMacro engine for parsing and rendering. The wiki parser is open source and can be used as a directive #wiki { block of Wiki Text To Be Parsed } which is pretty cool.

FrikiServlet uses a directory of files, each in a familiar sort of header-lines, blank line, body text format.

SnipSnap uses an embedded RDMBS McKoi We moved to File-based storage and MySQL/Postgres/Oracle instead of McKoi -- StephanSchmidt

IntraBroker uses JavaDatabaseConnectivity as generic database layer and HypersonicSql as default database.

Other notes at WikiEngines, ServletBasedWiki

At this time (Feb 5, 2003) JspWiki supports RCS, a directory of plain text files, text files with diff, and has partial support for CVS. There is a patch with RDBMS (MySql?) support available. -- KenLiu

KwikWiki currently has support for MySql and the good old fashioned directory of plain text files.

VeryQuickWiki supports filesystem or RDBMS (MySQL, Postgres, Oracle, others with minor changes to init scripts)

XwikiWiki uses any RDBMS (for example MySQL) as it uses Hibernate for the database abstraction.

JaWiki needs no special DBMS, it uses the filesystem and a XML format to store the content.

CorendalWiki uses MySQL as back-end.

XoYnKi uses a directory of page files by default, but other back ends can be specified in a configuration file.

JamWiki will run without an RDBMS using an included version of HSQL, or with any JDBC-compliant RDBMS


Which ones support file attachments?

SnipSnap supports file attachments. It also combines a Wiki with a WebLog. SnipSnap has blogging all right, but it can't delete the comments on snips. The separate snip object is deleted, but the comment always remains, and is very resistant to being taken out of the db or filesystem. This makes WikiSpam more or less permanent on a SnipSnap, to say nothing of other moderation problems or simply refactoring/uncluttering.

VeryQuickWiki

JspWiki

XwikiWiki supports versionable file attachments.

CorendalWiki supports images only as file attachments.

JamWiki


How about security?

SnipSnap has role-based security (view security and method based AOP security). We add role management and finer permissions in 0.5 -- StephanSchmidt

XwikiWiki has user and groups and security at multiple levels (page, space, all + admin and programming rights)

JspWiki has quite a strong security model in the latest version

JaWiki supports a user login. Editor has functions to lock editing a page for anonymous users or all other users.

CorendalWiki provides advanced customization features for read and write access.

JamWiki uses Spring Security for role-based security


Which ones support separate collaboration groups (able to create new wikis dynamically)?

SnipSnap supports name spaces. The admin can create new wikis. -- StephanSchmidt

XwikiWiki supports 'webs' with different rights.

CorendalWiki allows groups to be defined. Group editorship can be assigned to a top article, and all articles under this article inherit by default this group editorship.

JamWiki and VeryQuickWiki offer "virtual wikis" that can be created by admins.


Versioning support?

JspWiki supports versioning through selection of a page provider

SnipSnap supports versioning and diffs in 0.5 -- StephanSchmidt Correction: Snip versioning is only available in SnipSnap 1.0 BETA, which is not officially released: see http://bugs.snipsnap.org/browse/SNIPSNAP-18

XwikiWiki supports versioning for both pages and attachments.

FrikiServlet keeps previous page version which can be restored.

JaWiki stores the previous pages and make them available in a history.

CorendalWiki supports articles and images version history.

JamWiki supports versioning of all articles and files and makes them available in a history.


Which ones support email subscribe features? I can't believe this feature isn't mundane. Sigh. How about integrating into some larger framework including bug tracking/etc (or integrate project management/bug tracking in a wiki)?

JspWiki does

SnipSnap supports integration with JiRa. -- StephanSchmidt

CorendalWiki does, including group subscriptions.


Which ones support registered users?

SnipSnap supports registered users -- StephanSchmidt

XwikiWiki supports authentication and rights.

JaWiki does.

CorendalWiki requires registration (it is targeted at intranet users)

JamWiki supports registered users. Users can self-register or edit/view anonymously (configurable via security parameters).


XMLRPC interface?

JSPWiki supports sideways access through Hula Hoop


What is the smallest in terms of number of lines of code?

XoYnKi might be. There are about 26K bytes of source code for the wiki application, 91K if you add in the app server and GUI library.


Which of these supports a FreeLink syntax?

JspWiki, XwikiWiki, and Snipsnap all support single-bracket freelink syntax. None support mediawiki syntax. Chiki supports a rather strange variant on WikiWords involving dots IIRC. CorendalWiki uses a rich text editor. JamWiki supports the majority of the Mediawiki syntax.


Which of these supports JSR-168 CorendalWiki supports this portlet specification. Wiki aticles can be incorporated into a portal.


Which of these runs just on a bare Java Runtime only, meaning no Servlet engine or J2EE?

SnipSnap comes bundled with a servlet engine, all you need to do is start run.sh or run.bat and hit the URL it tells you to go to start configuring it. There's now a Webstart version where you get a working SnipSnap server with just one click.

In certain distribution mode, XWiki can also come bundled with a servlet container (namely Glassfish or Jetty).

XoYnKi includes its own proprietary (non-J2EE) app server.


http://Java-Source.Net contains a list of java open source wiki engines: http://java-source.net/open-source/wiki-engines.


wiki in a jar http://wiki-in-a-jar.sourceforge.net/ (Only 1 jar < 100KB)


CategoryWikiImplementation WikiEngines


EditText of this page (last edited July 27, 2010) or FindPage with title or text search