Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » Papyrus » Papyrus\CDO collaborative work(Movement of shapes is not reflected in remote session)
Papyrus\CDO collaborative work [message #1747943] Thu, 17 November 2016 07:08 Go to next message
Thorsten Schlathölter is currently offline Thorsten SchlathölterFriend
Messages: 309
Registered: February 2012
Location: Düsseldorf
Senior Member
Hi,
I have seen a couple of videos on you tube showing the collaborative work using Papyrus and CDO. I have my software running using both frameworks. When I open the same diagram on different clients a part of the diagram changes performed on client A are automatically shown on client B. Working changes include creation of new shapes. What is currently not automatically updated is shape movement. Looking into the CDODeltaNotifications I see that there is a notification comming in on client B which contains the update of the shapes Bounds object. But there is no adapter which would trigger a refresh on the diagram. Is this a known issue or is my launch config maybe incomplete. I know of dawn and it's responsibilty for collaborative working with CDO. So my thinking is in that direction. I have currently only 4 dawn bundles included.

org.eclipse.emf.cdo.dawn
org.eclipse.emf.cdo.dawn.gmf
org.eclipse.emf.cdo.dawn.ui
org.eclipse.emf.cdo.dawn.util


There is another issue concerning the creation of new shapes. If a new shape is created in client A it is shown in client B but client B is not able to move that shape although I am pretty sure that there are no locks on that object.

Any information on this issues would be appreciated.
Regards,
Thorsten
Re: Papyrus\CDO collaborative work [message #1747949 is a reply to message #1747943] Thu, 17 November 2016 09:05 Go to previous messageGo to next message
Xavier ZeitounFriend
Messages: 23
Registered: April 2016
Location: CEA LIST, Paris Saclay, F...
Junior Member
Hi,

could you please add some precision on how does the two client access to the model cdo stored papyrus model?
For example, the following process works :
- User A connect to a cdo server
- open a online checkout
- open the model & a class diagram containing a class A
- User B connect to a cdo server
- open a online checkout
- open the model & the same class diagram
- move a Class A (on a class diagram)
- save (since the change are commited on save)

result client A see the change in the diagram

Re: Papyrus\CDO collaborative work [message #1747950 is a reply to message #1747943] Thu, 17 November 2016 09:06 Go to previous messageGo to next message
Xavier ZeitounFriend
Messages: 23
Registered: April 2016
Location: CEA LIST, Paris Saclay, F...
Junior Member
Hi,

could you please add some precision on how does the two client access to the model cdo stored papyrus model?
For example, the following process works :
- User A connect to a cdo server
- open a online checkout
- open the model & a class diagram containing a class A
- User B connect to a cdo server
- open a online checkout
- open the model & the same class diagram
- move a Class A (on a class diagram)
- save (since the change are commited on save)

result : client A see the change in the diagram

Best,
Xavier
Re: Papyrus\CDO collaborative work [message #1747951 is a reply to message #1747943] Thu, 17 November 2016 09:06 Go to previous messageGo to next message
Xavier ZeitounFriend
Messages: 23
Registered: April 2016
Location: CEA LIST, Paris Saclay, F...
Junior Member
Hi,

could you please add some precision on how does the two client access to the model cdo stored papyrus model?
For example, the following process works :
- User A connect to a cdo server
- open a online checkout
- open the model & a class diagram containing a class A
- User B connect to a cdo server
- open a online checkout
- open the model & the same class diagram
- move a Class A (on a class diagram)
- save (since the change are commited on save)

result : client A see the change in the diagram

Best,
Xavier
Re: Papyrus\CDO collaborative work [message #1747955 is a reply to message #1747951] Thu, 17 November 2016 09:55 Go to previous message
Thorsten Schlathölter is currently offline Thorsten SchlathölterFriend
Messages: 309
Registered: February 2012
Location: Düsseldorf
Senior Member
Hi Xavier,
thanks for getting into this. First of all we have integrated CDO\Papyrus in our software and are accessing the frameworks from our own UI interface.

What we basically do is:
- open a CDOSession (S) with passiveUpdateEnabled
- open a CDOTransaction (T)
- open the model (M) in a PapyrusMultiDiagramEditor (E)
Note: we use our own implementation of ModelSet that is able to load the UmlModel into the transaction as a CDOUnit. But this is only to speed up the load process.
- open a Diagram (D) in the editor (E)

Currently we are not using an online checkout. We are simply loading the model via the transaction (T). (S) and (T) are managed by our own framework.

This is performed on both clients (A)(B) with the same model and diagram of course.

Now A adds a class (C) to the diagram. We have implemented a mechanism that automatically commits this action to CDO. So no explicit save is involved although the ModelSet.save method is called by our auto-comitter. In course of this action B sees (C) appearing in his diagram (without any action needed to be performed). Now A moves (C) by dragging it with the mouse. This action is also auto-comitted. B does NOT see the drag operation in his diagram. If B closes the diagram (D) and reopens it, the shape is at the expected position where it was moved to. Also any other action of B that would trigger a refresh on the diagram would show (C) at the correct position. So I am sure that it is only a refresh issue. I have checked that the CDODeltaNotification is received by B. As mentioned it is a delta that sets the Bounds of the class shape. But the diagram does not recognize this change and refreshes itself. Meanwhile I have added an adapter to the bounds objects that is able to trigger such refreshes in the described case but I am not sure if the problem is solved elsewhere (e.g. by some dawn component not yet deployed in my configuration).

Another thing is that B can see (C) but is not able to move it by himself.

Regards,
Thorsten





Previous Topic:SysML requirement, how to add a satisfying element
Next Topic:Setting the EClass of a Metamodel Type configuration?
Goto Forum:
  


Current Time: Mon Jan 27 19:30:01 GMT 2020

Powered by FUDForum. Page generated in 0.04009 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top