• No replies
14225 Posts

Pinned topic Resource change listen and replay it [RSAv8]

‏2011-10-23T07:41:57Z |
Hi, I am Jae, and I use RSA for my research.

I am developing a plug-in that works with RSA 8.0.3. This plug-in basically connects two instances of RSA through a middleware, capture resource changes on one side, and replay the exact same changes on the other side.

To put it in a simple way, a user on one side sees on the other machine the changes that s/he is making on her/his machine.

To implement that, I first tried to use extension by implementing ResourceSetListener. It seemed my decision was quite right until the moment I saw the list of notification for each resource change is massive.

For example, I see hundreds of notifications for a single name change of a class element in a class diagram. Some changes like creation of an element such as a class element in a class diagram invokes the transactionAboutToCommit() multiple times (three, to be exact).

I'd like to ask:

(1) if it is possible to interpret the large number of notifications, and see what really happens. For example, is it possible to say that the user has changed the name attribute of a certain class element in a class diagram by looking at the list of notifications?

(2) if it is possible to reply the exact change made to the model at the other model. For example, there are two copies of RSA running on different machines, and a single user works on a single copy of RSA, and the other copy of RSA maintains the same model data, assuming the communication channel that can throw java objects back and forth has already been set up.

For (2), I have been also trying to find the CommandStack, which I believed there existed somewhere because RSA supports undo/redo, and I thought I would be able to grab the lasted Command that pushed into the stack, send it to the other instance of RSA, and execute the Command. It seems like all the CommandStack's I've found were null, and now I am not even sure if I understood EMF Commands correctly. Does RSA use something like CommandStack at all?

Thank you very much ...