Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[corona-dev] Concurrent Project Context Container modifications

 

  The functionality for concurrent PCC modifications is based on SDO mechanism ChangeSummary (pccObject.getDataGraph().getChangeSummary()). The modification of PCC works as follows:

  • Change logging is enabled on client side during PCC modifications.
  • Synchronize operation is available on client that sends the modified PCC to the server.
  • The server receives the new version of PCC and applies changes to its version of PCC as follows:
    • For each changed node in client PCC, a corresponding node on server PCC is found.
    • It is checked if server node is the same as client old version of the node. SDO supplies changeSummaryObject.getOldValues() method. The method is invoked on client's version of PCC and returns previous values of properties. Each property must be equal with server's version of node.
    • If there are no conflicts, changes are applied.
    • For each node to delete, server node properties are compared with old version of client node properties. If the node has not been changed, node is deleted.
    • For each node to add, the node is added to the corresponding parent node on the server.
  • If changes can not be applied because of change conflicts, a warning is displayed on client side. Text compare is displayed. The client must manually check for conflicting nodes and merge modifications on the server version. (work in progress)
  • The server broadcasts events to all active users informing them about PCC changes. (work in progress)

 

  Note 1: If a node is deleted, ChangeSummary contains two entries: the deleted node and the parent node of the deleted one. In the parent node, the chananged property is a list that contained the deleted one. To ensure non-conflicting updates, the change is applied once only on server. The node that corresponds to the deleted one is found on the list on server PCC and removed from the list.

  Note 2: Before applying changes, the new PCC is validated with xsd definition for correctness.

  Pawel

 


The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it.

Back to the top