I've added some clustering support code to xwiki. To enable
clustering, edit oscache.properties and uncomment the specified line.
One problem has to do with the need for some code to be notified when
a document has been changed by some other machine in the cluster e.g.
machine A saves a doc, broadcasts invalidate to other machines, but
machine B has code that needs to know when any doc has changed (e.g.
email notification or lucene plugin). I've tried to account for this
with the class XWikiCacheListener, but couldn't come up with a
completely satisfactory solution. Since its execution is triggered
by jgroups when it receives a cache flush event over the network,
there is no Context, and thus any notification recipient that uses
something thats not in the dummy Context I create will fail - e.g.
XWikiPageNotiification line 30 tries to use the request object and
throws a NPE - in this case we could fix it by checking if request is
null, but I don't know where else it might break. Suggestions would
be appreciated.
To see the changes added for clustering, you can: svn diff -r 1065:1066
Matt