Hi, I need some help implementing some functionality that utilizes the merge capability of JCR/Jackrabbit. I have an application where users use their own personal workspace to add referenceable nodes to a parent node and commit the changes. At a later time (after making a number of these changes) they can merge their own personal workspace with another workspace where all of the changes from all of the users of the system will be contained.
The problem that I'm having right now is dealing with the conflicts that could occur as a result of the merge operation. If two users edit the same parent node and they both try to merge those changes, the second user will (obviously) fail. If the change the second user made was to add a new child node with a specific UUID (referenced elsewhere), I will need to manually merge that change into the parent. Unfortunately when I create the new child node, I'm not able to specify a UUID for that new child - a UUID that is referenced elsewhere in the workspace. How do other people deal with merging workspaces and dealing with conflicts? I do know that there is an addNode method on NodeImpl that takes a UUID but I was hoping to be able to do this without exposing Jackrabbit specific functionality. I assume that the writers of the JCR specification thought of how the merging would be done but I can't figure out an easy way of dealing with it. Thanks, Bob
