Impressum / Imprint

XWiki plugins

Posted on September 10, 2006

In the beginning of the year (Update: we speak of 2005 here) I reviewed XWiki for use as our internal knowledgebase at work. Being a somewhat young project it still lacked some basic features. Especially change notification by mail and an indexed search were features marked as must have on our requirements list. Additionally we wanted to integrate searching across external documents (Javadoc, PDF- and Office documents).

So I wrote two plugins for XWiki, implementing these two functionalities.

Lucene plugin

This plugin integrates Lucene with XWiki. Download links and Installation instructions can be found on the Maven project page.

Features

  • Indexing of both page contents and attachments (where text extraction can be done, at the moment this includes OpenOffice Writer, MSWord, PDF and XML/XHTML)
  • Automatic index updating when Documents or Attachments change/are created
  • External Lucene indexes can be integrated to do combined searches on multiple indexes
  • Full power of the Lucene query language
  • Support for virtual Wikis: Allows to search one or more named virtual wikis, and global searches across all virtual wikis
  • Multi language support: search documents having translations in one of the given languages.
  • Respects XWikis user management, users doing a search only get results they are allowed to view.
  • Supports paging through search results, the number of results per page is configurable.

Todo

  • Index XWiki’s structured data
  • Support more attachment types
  • Make external index integration more flexible, atm this only works with indexes using the same field names as the plugin

Status

The plugin was developed using XWiki Version 0.9.543. Since I don’t know XWiki that long I can’t say with which older XWiki Version it will or won’t run.

Thanks to the valuable feedback of Ludovic, who tried out the early versions of the plugin in a large virtual wiki environment, it has now reached a quite stable and imho useable state. Current Version is 0.9.3 released September 12th, 2005.

Email notification plugin

This plugin allows users of Xwiki to receive notifications about changes of documents by email.

Maven generated project page.

Features

  • Users can subscribe to single documents, webs, or choose to receive notifications for the whole wiki.
  • Overlapping subscriptions (i.e. whole wiki and some single pages from this wiki subscribed) do not result in double-notifications.
  • Multiple subsequent notifications to the same document in a single notification interval are aggregated and result in the document being shown in the notificatio n mail only once (last change is shown). This could easily be extended to display the complete change history.
  • Users of course don’t get notified of their own changes.
  • The Administrator of a wiki can decide what notification intervals he wants to offer. This is done by simply defining cron-like expressions in a properties file. The user can then choose one of these defined intervals.
  • Users can edit their subscription settings by opening to their home page (XWiki.username) with the object editor. Once the user has subscribed his first document there will be an instance of class Plugins.EmailSubscriptions attached to his homepage. This instance holds all subscribed pages and webs, and the selected notifi cation interval. This data can be directly modified through the object editor.
  • Notification mails are based on a velocity template allowing easy customization.

Status

  • Seems to work, but did not get much testing. Please try it and give me feedback!

The end of the story

Unfortunately in the end we chose (Twiki) since it really seemed to be the more mature system and offered more functionality via a wide range of plugins. The plan was to do the indexed search with Twiki’s plucene plugin (Plucene is a perl port of lucene).

In fact, Plucene didn’t manage to index our external documents. It works fine for the wiki itself, but the attempt to index only some hundred MB of mixed documents ended after some hours in plucene having eaten several GB of memory. I don’t remember exactly if it crashed for other reasons then or if there simply was no swap space left.

So in the end we now have an external lucene based indexing server serving search results to a JavaScript powered search page inside the Wiki. That makes a neat combo - Scripting language based frontend connected to a Java based backend via AJAX. Or however you would like to call it ;-)

That said, I doubt I’ll have time to develop these plugins any further. Source is contained in the official XWiki repository, so development can be continued.

Eclipse-based Rails IDE

Posted on October 06, 2005

From the RubyOnRails weblog:

RadRails is a project to build a cross-platform IDE for Ruby on Rails using the Eclipse platform. It’s still very early days, but they have an alpha out you can play with.

Hm. I for my part really enjoy not using the tools I used for Java development when doing Rails projects. Especially if it saves me some hundred MB of RAM ;-)

But - as long as it attracts more users to Ruby and Rails - fine with me :-)

XWiki plugin updates

Posted on September 13, 2005

New versions of the Lucene and eMail notification plugins are available. No new features, unfortunately - but fixes for those two issues:

  • Lucene plugin died with an NPE when the Log4J log level was set above DEBUG. Stupid me ;-)
  • Email notification plugin forgot subscriptions on server restart unless the user saved them explicitly in his account settings.

Thanks to Sascha Österle for finding and reporting both bugs!

XWiki plugins moved to official XWiki repository

Posted on May 23, 2005

XWiki recently moved it’s source repositories to ObjectWeb. This seemed like the right time to formally hand the code of my plugins over to the XWiki community. Information about accessing the repository can be found there.

Email notification plugin for XWiki

Posted on May 01, 2005

I just put together a first release of my second plugin for XWiki. It adds another major feature Xiki lacked until now - receiving updates on who modified what document, and when, by email. The plugin allows users to subscribe to single documents, whole webs or to the whole wiki. Further users can choose between several notification intervals which can freely be defined by the wiki admin.

Read more on my xwiki page.

XWiki Lucene Plugin released

Posted on January 25, 2005

XWiki is a really cool Wiki built on top of proven technologies like the Radeox Wiki engine, Hibernate, Velocity and Struts.

The only thing I missed from the start was an index based search. Having some experience with Lucene I thought this would fit in well. At this place I’d like to thank the author of XWiki, Ludovic Dubost, for helping me with the xwiki side, and for the early tests he did in his large testing environment.

More info about the plugin can be found here.

Diploma thesis

Posted on November 11, 2004

In summer 2004 I graduated at the Technical University in Dresden, Germany. My diploma thesis is about the development of a plugin architecture for serving content from a Jukebox (containing possibly hundreds of DVDs, DVD-RAMs or CDs) to the web. Various protocols, including streaming protocols, should be possible to integrate into the server as plugins. As a demonstration of the architecture I had to implement a plugin for WebDAV.

Technologies used in the prototype implementation are: Java, Tomcat, Struts, the Spring Framework, Jakarta Lucene for full text search and PostgreSQL. Most of the WebDAV code is inspired by Jakarta Slide’s nice WebDAV implementation, although I had to reimplement big parts to fit my architecture. Since it’s only a prototype, I don’t support all the extensions to WebDAV, like versioning or searching, but adding these capabilities should be no problem.

Accessing the Jukebox was easy, since there is a low level driver software which maps the whole jukebox to a drive letter on a Windows box. So my server can be used without a jukebox, i.e. just accessing files on a local disk. In fact this is what I did most of the time during development - Debian doesn’t have drive letters ;-)

You can get the full (german) text here (PDF). JavaDocs are online, drop me a line if you’re interested in the project.

LaTeX is great

I used LaTeX for writing my thesis, and that was a lot of fun :) Not only I learned a lot about LaTeX, using make to build your diploma thesis PDF document simply rocks. Despite the fact that LaTeX runs on lots of platforms, there’s simply no easier way to get a consistent, good looking document.

But the really strong point of LaTeX is: it simply gets out of your way while you’re writing.

Just fire up an editor and type away. No toolbars, no assistents and no dialog windows - just think and write.