Active development of JAMWiki has ceased, and bug fixes and support will be limited at best. If you are interested in taking over management of JAMWiki please send an email to the jamwiki-devel mailing list.

Tech:JAMWiki 2.0

ktip.png This page (and all pages in the Tech: namespace) is a developer discussion about a feature that is either proposed for inclusion in JAMWiki or one that has already been implemented. This page is NOT documentation of JAMWiki functionality - for a list of documentation, see Category:JAMWiki.
Status of this feature: Initial work on JAMWiki 2.0 has begun, with development to last approximately six months after the release date of JAMWiki 1.3.

This document captures items that may be considered for implementation for the JAMWiki 2.0 release. Note that general feature requests should be discussed on the Feature Requests page, but feel free to add comments about items on this page below, or to suggest items already on the feature requests page for implementation in this release. If you would like to contribute to this release see How to Help.


Items Planned for Implementation

These are items that are on the TODO list for the next major release, although this is no guarantee that they will be implemented. Those items marked as "DONE" are committed to trunk and ready for release. Items marked as "IN PROGRESS" have code committed to trunk, but further work may be required for full completion. Items marked as "DEFERRED" will most likely not be included in JAMWiki 2.0 and will instead appear in a later release.

If a particular feature is of interest to you and you are willing to do some research, help with debugging, or write code, please leave a comment below and get involved - user enthusiasm is often a driving force behind getting features into a JAMWiki release.

  • [Done] Upgrade to Java 6.
  • Simplify the installation and upgrade process. Continue the work that was started in JAMWiki 1.2 to make upgrades simpler.
  • Tech:System Messages - Make Javascript and meta tags configurable.
  • Tech:Email - email integration. Work was started in JAMWiki 1.3 to add "forgot password" email support, but this could be expanded to include watchlist notifications and other functionality.
  • Make custom parser tags more flexible [1].
  • Change topic permissions from booleans (admin-only, read-only) to ROLE-based to allow more fine-grained control.
  • Refactor the spam blacklist to no longer be file-based. See mediawiki:Extension:SpamBlacklist for Mediawiki's implementation.
  • The Lucene index should store HTML, not wikitext. Look into the org.apache.tika.parser.html.HtmlParser parser as a way to implement this capability.
  • Solr integration. See JAMWIKI-44.
  • Add "new message" notices when a user talk page message is added. See Mediawiki's implementation.
  • Improved password salts. See JAMWIKI-36.
  • Display a broken image icon, rather than the image path, when an image is corrupt or can't be rendered (updates needed in both ImageLinkTag classes).
  • Add support for "undo" (metawikipedia:Help:Reverting#Undo) and "rollback" (metawikipedia:Help:Reverting#Rollback). Consider which may make this easier.
  • Better XSS detection, see for example
  • WYSIWYG Editor. Note that this feature has been deferred for several major releases due to complexity of the integration.
  • Further performance enhancements.
  • Mediawiki compatibility improvements.
  • Allow configuration for the default namespaces to be searched so that (for example) the default search view does not include user pages.
  • Move jamwiki-configuration.xml to a database-managed configuration tool.
  • Add optional support for mediawiki:InstantCommons to JAMWiki.
  • Make the project more modular to allow easier re-use of components. For example, it should be possible to easily use the parser as a standalone module or use the image tools in another project.
  • Update the UI to take advantage of Javascript in some cases (note: Javascript will not be required), such as when adding a page to the watchlist.



  • Upgrade to Java 6.
    • revision 4285 changes the minimum JDK requirements and begins upgrading dependencies that require Java 6+. -- Ryan • (comments) • 22:51, 17 February 2013 (PST)

In Progress

  • None.


  • None.