Unfortunately while reading the code of ReferenceManager it seems to be designed to work only on a single machine and not in a cluster. This seems to be confirmed by http://www.jspwiki.org/wiki/IdeaLoadBalancingAndHA but I'd like to make sure it's correct with the current version of JSPWiki. Is it?
Yes, that is correct. ReferenceManager is really designed to run only on a single machine. We'll be replacing it in 3.0...
However, note that ReferenceManager is really only a local cache for the references. This means that if you're distributing JSPWiki across multiple machines, it's fine that every single one of them has a local copy of the references. All you have to probably do is to ensure that each and all of them have a similar copy across multiple instances. This can be relatively easily done by e.g. making the work directory the same for all instances - you might need to add locking, though.
Note also that JSPWiki should be able to pick up changes in the repository automatically, so if you change one page, the other instances should be able to pick the changes up and also update the local reference cache. By default, the checking interval is 30 seconds since last access and this can be tuned in jspwiki.properties.
If it is, is there a way to substitute the ReferenceManager implementation with a custom one?
Yes, you can use the classmappings.xml to replace the ReferenceManager, but be warned that this solution can be a bit quirky.
/Janne
