Current development on JAMWiki is primarily focused on maintenance rather than new features due to a lack of developer availability. If you are interested in working on JAMWiki please join the jamwiki-devel mailing list.

Tech:JAMWiki 1.1

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: JAMWiki 1.1 has been released. See Tech:JAMWiki 1.2 for the planning document for the next major release.

This document captures items that may be considered for implementation for the JAMWiki 1.1.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.

Contents

Items Planned for Implementation[edit]

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 1.1.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.

  • [IN PROGRESS] Further performance enhancements (for example, make use of changes in revision 3419).
  • [DONE] Add support for parser extensions, such as Wikitravel's listing tags.
  • [DEFERRED] Refactor the spam blacklist to no longer be file-based. See mediawiki:Extension:SpamBlacklist for Mediawiki's implementation.
  • [DEFERRED] Add support for wikitext in edit summaries.
  • [DEFERRED] Update the UI on image pages to more closely match Mediawiki (thumbnails, dimensions, revision dates, etc).
  • [DEFERRED] Move the system topics (StyleSheet, LeftMenu, BottomArea) to the JAMWiki: namespace.
  • [DEFERRED] 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).
  • [DONE] Implement user blocking by login & IP address.
  • [DEFERRED] Tech:FCKEditor Integration
  • [DEFERRED] Tech:Email - email integration.
  • [DEFERRED] Simplify the installation and upgrade process.
  • [DEFERRED] Potentially allow JAMWiki to be installed without the need to use an exploded WAR structure.
  • [DEFERRED] Add confirmation to Special:Admin when the user changes a value but does not save the form.
  • [DONE] Add support for the <gallery> tag. See Help:Images#Rendering a gallery of images.
  • [DONE] Add a "View Source" tab for users who do not have edit permissions, similar to Mediawiki.
  • [DONE] Support URL rendering that is the same as Mediawiki - "[1]", "[2]", etc. This should be configurable for those who want to maintain the old behavior.
  • [DEFERRED] Allow per-user customization of date & time (see Bug Reports#Date and time are not in locale formatted in JSPs).
  • [DEFERRED] Upgrade to Spring Security 3.1.
  • [DONE] Upgrade to HSQL database 2.2.
  • [DONE] Feature Requests#Universal Edit Button
  • [DEFERRED] 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.
  • [DONE] Add the ability to filter search results by namespace.
  • [DEFERRED] Special:LinkTo should display links from redirects, so if A links to B which redirects to C, then the "link to" records for "C" should show "A" via "B".
  • [DONE] Implement an option to use JCaptcha or another captcha solution for registration.

Status[edit]

Implemented[edit]

  • Add support for the <gallery> tag. See Help:Images#Rendering a gallery of images.
    • revision 3437 adds the initial support for the image gallery tag, but does not yet support the attributes for that tag. Additionally, some edge cases for error handling need to be implemented.
    • revision 3448 adds attribute handling. Edge cases have mostly been addressed in other commits. -- Ryan • (comments) • 20-Jan-2011 15:14 PST
  • Support URL rendering that is the same as Mediawiki - "[1]", "[2]", etc. This should be configurable for those who want to maintain the old behavior.
  • Add a "View Source" tab for users who do not have edit permissions, similar to Mediawiki.
  • Add an interface to allow deleting topic versions for cases such as when a password or other sensitive data is mistakenly added to a topic (JAMWIKI-22).
    • revision 3516 adds an option to the Special:Manage interface to allow users with ROLE_SYSADMIN to purge topic versions from the system.
  • Add the ability to filter search results by namespace.
    • revision 3535 adds the back-end support to include namespaces in the search index and allow searching by namespace. -- Ryan • (comments) • 15-May-2011 10:48 PDT
    • revision 3536 adds front-end support to actually implement the "filter by namespace" functionality. -- Ryan • (comments) • 15-May-2011 10:48 PDT
  • Feature Requests#Universal Edit Button
  • Implement an option to use JCaptcha or another captcha solution for registration.
  • Upgrade to HSQL database 2.2.
    • revision 3627 upgrades to HSQL 2.2.4 (Java 5) using the new Maven artifact. -- Ryan • (comments) • 07-Jul-2011 12:01 PDT
  • Add support for parser extensions, such as Wikitravel's listing tags.
    • revision 3554 is the first of what may be several commits to implement this functionality, moving the <gallery> tag functionality to a new JAMWikiCustomTagProcessor lexer. -- Ryan • (comments) • 31-May-2011 12:32 PDT
    • revision 3557 adds a JFlexCustomTagItem interface and converts the <gallery> tag to use it. Any HTML-like tag that is registered with the custom parser and implements this interface can now be used by the parser to process wiki content. Further commits will make the registry process configurable. -- Ryan • (comments) • 02-Jun-2011 16:30 PDT
    • revision 3568 adds custom tag configuration to the jamwiki-configuration.xml file, although this approach will probably be changed in a future release. -- Ryan • (comments) • 06-Jun-2011 15:22 PDT
  • Implement user blocking by login & IP address.
    • revision 3601 adds a jam_user_blocks table and the APIs necessary for adding & updating records in that table. Front-end support to follow. -- Ryan • (comments) • 02-Jul-2011 00:09 PDT
    • revision 3602 adds the Special:Block UI. Still to come is unblocking, blocklist, and support for "block" links next to user names in Special:RecentChanges and similar pages. -- Ryan • (comments) • 02-Jul-2011 09:41 PDT
    • revision 3603 adds the Special:Unblock UI for removing blocks. -- Ryan • (comments) • 02-Jul-2011 10:43 PDT
    • revision 3605 adds Special:BlockList for viewing current blocks. Still TODO is log records for blocks (Special:Logs), the ability to block account creation, and block/unblock links next to user names in Special:RecentChanges and similar pages. -- Ryan • (comments) • 02-Jul-2011 16:27 PDT
    • revision 3608 adds a Block log and records block/unblock activity to it, and also reports blocks/unblocks on Special:RecentChanges. -- Ryan • (comments) • 02-Jul-2011 23:41 PDT
    • revision 3609 adds a "Block" link where appropriate for users with the correct permission. Note that in some cases this should actually be "Unblock", but there would be a performance penalty for looking up the block status of all users so "Block" is hopefully sufficient for now. At this point I'm pretty happy with the feature set, so block/unblock functionality can probably be considered "Done" for JAMWiki 1.1. -- Ryan • (comments) • 03-Jul-2011 10:34 PDT

In Progress[edit]

  • Further performance enhancements (for example, make use of changes in revision 3419).
    • revision 3459 implements DBCP prepared statement pooling. My local benchmarks show a ~10% improvement in parsing of pages that have many topic lookups. -- Ryan • (comments) • 26-Jan-2011 12:01 PST
    • revision 3460 changes the "test on return" and "max idle connections" defaults to more sensible values. -- Ryan • (comments) • 26-Jan-2011 12:14 PST
    • Adding a link_topic_id column to jam_topic_links would greatly improve the performance of several queries, although this might negatively impact add/update performance - needs investigation. -- Ryan • (comments) • 05-Feb-2011 11:22 PST
    • revision 3515 limits the number of recent changes reloaded by the "reload recent changes" function, allowing it to scale for large sites. -- Ryan • (comments) • 12-Apr-2011 17:46 PDT
    • revision 3531 should reduce the amount of time it takes to update the search index, thus speeding up topic add/update operations. -- Ryan • (comments) • 12-May-2011 23:18 PDT
    • revision 3627 upgrades to HSQL 2.2.4 which should be significantly faster for users who are using HSQL. -- Ryan • (comments) • 07-Jul-2011 12:01 PDT

Deferred[edit]

  • Tech:FCKEditor Integration.
    • Deferred again as it looks like this would need to be built from scratch - existing options are simply not mature enough or won't integrate with a Java-based solution. -- Ryan • (comments) • 24-Jun-2011 10:22 PDT
    • revision 3637 does update the editing toolbar slightly to use a similar look & feel to CKEditor and to also add a few more features (subscript, superscript, strikethrough, ordered lists, unordered lists, indentation, first-level headings, third-level headings). -- Ryan • (comments) • 09-Jul-2011 17:57 PDT
  • Potentially allow JAMWiki to be installed without the need to use an exploded WAR structure.
    • This functionality will be more easily implemented once properties don't have to be managed entirely via properties files, which won't be possible before JAMWiki 1.2. -- Ryan • (comments) • 28-Jun-2011 23:03 PDT
  • Add support for wikitext in edit summaries.
    • It's been nearly six months since the last major release, so it's time to focus on getting JAMWiki 1.1 stable rather than implementing more new stuff. This feature will need to wait for JAMWiki 1.2. -- Ryan • (comments) • 05-Jul-2011 15:45 PDT
  • Move the system topics (StyleSheet, LeftMenu, BottomArea) to the JAMWiki: namespace.
    • It's been nearly six months since the last major release, so it's time to focus on getting JAMWiki 1.1 stable rather than implementing more new stuff. This feature will need to wait for JAMWiki 1.2. -- Ryan • (comments) • 05-Jul-2011 15:45 PDT
  • Tech:Email - email integration.
    • It's been nearly six months since the last major release, so it's time to focus on getting JAMWiki 1.1 stable rather than implementing more new stuff. This feature will need to wait for JAMWiki 1.2. -- Ryan • (comments) • 05-Jul-2011 15:45 PDT
  • Upgrade to Spring Security 3.1.
    • As of 5-July-2011 Spring Security 3.1 has not yet been released, so this upgrade will need to wait until JAMWiki 1.2. -- Ryan • (comments) • 05-Jul-2011 15:45 PDT
  • 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.
    • It turns out that this feature is a relatively complex one to implement, so it will need to wait for JAMWiki 1.2 since it is now very late in the JAMWiki 1.1 release cycle. -- Ryan • (comments) • 05-Jul-2011 15:45 PDT
  • Refactor the spam blacklist to no longer be file-based. See mediawiki:Extension:SpamBlacklist for Mediawiki's implementation.
    • This change isn't completely straightforward due to virtual wikis and other issues, so it will need to wait at least one more release cycle before time is available to figure out how best to do it. -- Ryan • (comments) • 05-Jul-2011 15:45 PDT
  • Update the UI on image pages to more closely match Mediawiki (thumbnails, dimensions, revision dates, etc).
    • In order to get JAMWiki 1.1 released this feature is being deferred to a future release. -- Ryan • (comments) • 15-Jul-2011 11:18 PDT
  • 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).
    • In order to get JAMWiki 1.1 released this feature is being deferred to a future release. -- Ryan • (comments) • 15-Jul-2011 11:18 PDT
  • Simplify the installation and upgrade process.
    • This feature will be easier to implement in JAMWiki 1.2 due to changes made in JAMWiki 1.0 - since JAMWiki supports upgrading a maximum of two minor releases then 1.2 is the first release that will be able to take advantage of those changes. -- Ryan • (comments) • 15-Jul-2011 11:18 PDT
  • Add confirmation to Special:Admin when the user changes a value but does not save the form.
    • In order to get JAMWiki 1.1 released this feature is being deferred to a future release. -- Ryan • (comments) • 15-Jul-2011 11:18 PDT
  • Allow per-user customization of date & time (see Bug Reports#Date and time are not in locale formatted in JSPs).
    • In order to get JAMWiki 1.1 released this feature is being deferred to a future release. -- Ryan • (comments) • 15-Jul-2011 11:18 PDT
  • Special:LinkTo should display links from redirects, so if A links to B which redirects to C, then the "link to" records for "C" should show "A" via "B".
    • In order to get JAMWiki 1.1 released this feature is being deferred to a future release. -- Ryan • (comments) • 15-Jul-2011 11:18 PDT

Comments[edit]