Hi Lenya devs,

as you may have noticed, I did a quite large commit to the revision
control infrastructure. The reason for this is that the former
implementation was not thread safe. This caused various
synchronization errors (ConcurrentModificationException etc.) when
running load tests with multiple threads.

A short overview of my changes:

* Refactored XML handling in SourceNodeRCML. Instead of reading/writing
the XML document for each operation, the list of entries is now loaded
one and only converted to XML when the RCML is written.

* SourceNodeRCMLs are now singletons per source URI, i.e. for each
source URI only one RCML object is created. This allows to synchronize
access to the RCML methods, avoiding concurrent modifications.

* Check-Out is now per session and not per user, i.e. you won't run
into trouble if you have two browser windows open.


The changes may seem fundamental because of the large commit, but in
fact most changes are refactoring and the addition of synchronization
facilities. The RCML interface has changed a bit, but since it is not
supposed to be called by client code, but rather from the repository
node implementations, this shouldn't cause any incompatibilities.

-- Andreas


-- 
Andreas Hartmann, CTO
BeCompany GmbH
http://www.becompany.ch


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to